Deploying Apps

Connecting GitHub

One-click GitHub connect via device flow, plus a personal access token fallback for self-hosted or advanced setups.

Connecting GitHub isn't required — you can always paste a repo URL directly when creating an app — but it turns the New App form's repo field into a searchable picker and is what powers auto-deploy on push.

One-click connect

From Settings, click Continue with GitHub. This uses the same device authorization flow the gh CLI and many desktop tools use — the honest constraint being that a shipped desktop app can't safely embed a client secret the way a server-side "Sign in with GitHub" button can, so device flow is the real one-click option available to it.

What happens automatically:

  1. DeployOS requests a short one-time code and copies it to your clipboard.
  2. Your browser opens to GitHub's device-activation page.
  3. You paste the code (already on your clipboard) and approve access.
  4. DeployOS polls in the background and connects the moment you approve — no manual "I'm done" step.

Once connected, your GitHub login shows in Settings, and the New App form gets a repo picker — search your repos, pick one, and choose a branch — instead of a bare URL field.

Personal access token (advanced)

Behind an Advanced disclosure on the same card, you can instead paste a personal access token with repo scope. Useful if device flow isn't available to you, or you'd rather manage access via a token you control directly. A rejected token shows a clear "check its scopes" error rather than a silent failure.

Disconnecting

The same Settings card lets you disconnect — this only removes DeployOS's stored access; it doesn't revoke anything on GitHub's side (do that from github.com → Settings → Applications if you want to fully revoke it).

Private repositories without connecting GitHub

You don't have to connect an account at all. Paste a private repo's git@github.com:... SSH URL directly into the New App form, and DeployOS shows a Get deploy key helper instead — see Deploying Your First App for that path, which scopes access to one repo on one server rather than your whole GitHub account.