Better-PaaS
Guides

GitHub & Cloudflare

Connect GitHub to browse and deploy your repos, and Cloudflare to manage DNS for custom domains.

Better-PaaS connects to two outside services to make deploying smoother: GitHub for browsing and deploying your repositories, and Cloudflare for creating DNS records for custom domains without leaving the dashboard. Both are managed under Settings → Integrations.

GitHub

Connecting GitHub lets you skip pasting Git URLs by hand. Once linked, the deploy wizard can:

  • Browse your repositories and pick one from a list.
  • Select a branch from a dropdown.
  • Browse folders to choose a root directory (handy for monorepos).
  • Auto-detect the framework so build, install, and start commands are filled in for you.

A connected token is also what lets Better-PaaS clone private repositories.

Connecting

Go to Settings → Integrations (or connect during onboarding).

Create a personal access token (PAT) on GitHub with the repo scope. The connect dialog links you straight to the right page.

Paste the token and save. Better-PaaS verifies it, then stores it encrypted at rest on your server — it never leaves the box.

Public repos don't need a token

You can always deploy a public repository by pasting its URL. The GitHub connection is about browsing your repos and cloning private ones.

Disconnect any time from Settings → Integrations; the stored token is removed.

Cloudflare

If your domain's DNS is hosted on Cloudflare, you can point a custom domain at your server straight from the dashboard — no clicking around the Cloudflare panel.

Connecting

Create a Cloudflare API token scoped to edit DNS for your zone.

In Settings → Integrations, paste the token. Better-PaaS verifies it against Cloudflare before saving, so you get immediate feedback. It's stored encrypted at rest.

Creating a DNS record

With Cloudflare connected, when you add a custom domain Better-PaaS can create or update the A record that points the hostname at your server's public IP. The record is created DNS-only (un-proxied) on purpose, so Caddy keeps full control of TLS and can complete the Let's Encrypt HTTP-01 challenge.

Longest-zone matching

Better-PaaS picks the most specific zone in your connected account, so app.foo.example.com correctly resolves to the example.com zone.

Next step

On this page