Install
Every release ships static binaries for Linux AMD64 and ARM64, plus a multi-arch container image. Pick whichever fits your fleet — all three end up with the same daemon and the same Galaxy API on top.
Bare metal (systemd)
Fetch a binary from the releases page. Then--install as root bootstraps everything: the orbitron user and group, directories, config files, a systemd unit and a logrotate script — then enables and starts the daemon.
$ sudo ./bin/orbitron --install
$ sudo systemctl status orbitron # active (running)
# create an admin token (script-friendly: -q)
$ sudo orbitron --generate-token -q
# hot-reload config.yml, no downtime
$ sudo systemctl reload orbitronsystemctl reload sends a SIGHUP: the daemon re-reads/etc/orbitron/config.yml, re-validates it (including OIDC discovery when enabled) and rebuilds the HTTP server on the same address. If the new config fails to validate, the running daemon is left untouched.
Docker / Compose
The GHCR image runs non-root with git and openssh-client bundled. Config is rendered entirely from ORBITRON_* environment variables — no file to mount. Persist the cache on a volume.
services:
orbitron:
image: ghcr.io/chrisvanmeer/orbitron:latest
restart: unless-stopped
ports:
- "8080:8080"
environment:
ORBITRON_LISTEN_ADDR: "0.0.0.0:8080"
ORBITRON_STORAGE_PATH: "/var/lib/orbitron/storage"
ORBITRON_REQUIRE_AUTH_PULL: "false"
volumes:
- orbitron-cache:/var/lib/orbitron/storage
volumes:
orbitron-cache:On first start the admin token is printed to the container logs:
$ docker compose logs orbitron | grep "ADMIN TOKEN"
orbitron | [2026-09-23 08:12:04] ADMIN TOKEN: obt_xxxx...HashiCorp Nomad
A battle-tested orbitron.nomad.hcl ships in the repo — service, volume, health check against /healthz and secrets via env already wired up.
$ nomad run orbitron.nomad.hcl
$ nomad status orbitronCLI & tokens
# Generate an administrative Bearer token
sudo orbitron --generate-token
# Raw token output for script exports
export ORBITRON_TOKEN=$(sudo orbitron --generate-token -q)
# Revoke a token
sudo orbitron --revoke-token <TOKEN>
# Interactively scan + prune unreferenced versions (window: --days, default 90)
sudo orbitron --prune
# Run with a custom config
orbitron --config /etc/orbitron/config.yml
# Show version
orbitron --version