Skip to content

Register an External Runner

For builds on a separate machine or for isolating the build environment, register an external runner.

What you need

  • Role: admin or owner (for registration)
  • The Oore CI daemon running with OORED_RUNNER_MODE=external (or in addition to the embedded runner)
  • A user session token for registration
  • The runner machine must have all prerequisites installed

1. Register the runner

On the runner machine:

bash
oore runner register \
  --daemon-url http://<daemon-host>:8787 \
  --token <session_token> \
  --name "mac-mini-builder"
FlagDefaultEnv varDescription
--daemon-urlhttp://127.0.0.1:8787OORE_DAEMON_URLDaemon URL
--tokenOORE_SESSION_TOKENUser session token for authentication
--nameDisplay name for the runner

This creates a runner record on the daemon and writes a config file at ~/.oore/runner.json with the runner's token.

2. Start the runner

bash
oore runner start
FlagDefaultDescription
--daemon-urlFrom configDaemon URL (overrides config)
--config~/.oore/runner.jsonRunner config file path

The runner process:

  1. Reads the config file for its token and daemon URL
  2. Sends periodic heartbeats to the daemon
  3. Polls for available jobs
  4. Executes claimed builds

3. Verify

  1. Go to Settings > Runners in the web UI
  2. The external runner should appear as online
  3. Trigger a test build and verify it's picked up

Runner lifecycle

StateMeaning
onlineRunner is healthy, sending heartbeats, ready for jobs
busyRunner is executing a build
offlineRunner hasn't sent a heartbeat recently
drainingRunner is finishing current work and won't accept new jobs

Stopping the runner

Stop the oore runner start process (Ctrl+C or kill the process). The daemon marks it as offline after heartbeat timeout.

API endpoints

MethodPathDescription
POST/v1/runners/registerRegister a new runner
GET/v1/runnersList all runners
POST/v1/runners/{runner_id}/heartbeatSend heartbeat
POST/v1/runners/{runner_id}/claimClaim next available job

Self-hosted mobile CI, built for Flutter.