Skip to main content
vee
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage
Edit page

github-runner

Self-hosted GitHub Actions runner on an Ubuntu cloud image with a rootless container stack (containerd + BuildKit + nerdctl via RootlessKit). Outbound-only: the runner reaches GitHub over HTTPS long-polling, with no inbound port forwarding.

Create

vee create ci-1 --template github-runner \
  --runner-url https://github.com/Benehiko/vee

You are prompted for a registration token interactively.

Defaults

SettingValue
Memory4G
CPUs4
Disk20G qcow2 (COW overlay on Ubuntu image)
NetworkUser-mode NAT (outbound only)
DisplayNone (headless)
UEFINo
Useradmin

Flags

FlagDefaultDescription
--runner-url(required)GitHub repo or org URL to register the runner against
--runner-labelsself-hosted,linux,kvmRunner labels
--runner-ssh-keyfalseGenerate a per-instance GitHub SSH key instead of the shared global key

Credentials & reinstall

Runner registration credentials are persisted to the host, age-encrypted, at ~/.vee/runner-creds/<name>.age. This lets vee create --reinstall <name> rejoin GitHub as the same runner without a fresh token. Manage keys and snapshots with vee runner.

See docs/github-runner.md for credential persistence, SSH-key rollout, and disk garbage collection.