GitHub - NetwindHQ/gha-outrunner: Ephemeral VM and container runners for GitHub Actions — no Kubernetes required

2 min read Original article ↗

CI Release Go Report Card License: MIT

Ephemeral GitHub Actions runners, no Kubernetes required.

How gha-outrunner works

outrunner provisions fresh Docker containers or VMs for each GitHub Actions job, then destroys them when the job completes. It uses GitHub's scaleset API to register as an autoscaling runner group.

Why outrunner?

GitHub's Actions Runner Controller (ARC) requires Kubernetes. If you're running on bare metal or a simple VPS, you shouldn't need a cluster just to get ephemeral runners. outrunner gives you the same isolation guarantees with Docker, libvirt, or Tart. No additional orchestrator needed.

Read more about why outrunner, the architecture, and the security model.

Provisioners

Provisioner Host OS Runner OS How it works
Docker Linux, macOS Linux Container per job. Fastest startup.
libvirt Linux Windows, Linux KVM VM from qcow2 golden image with CoW overlays. QEMU Guest Agent for command execution.
Tart macOS (Apple Silicon) macOS, Linux (ARM64) VM clone per job. Tart guest agent for command execution.

See the provisioner reference for lifecycle details and runner image requirements for what each backend expects.

Get Started

Install outrunner for your platform:

Each guide gets you to a working Docker runner in minutes.

All packages and binaries are on the Releases page.

Going Further

Other backends

Custom runner images

Reference

Used by

  • delo.so - Desktop, offline-first CAD for makers. Uses outrunner for CI, build and test pipelines.

Using outrunner? Open a PR to add your project.

Author

Built by Paweł Subocz at Netwind.