On this page
Installing the Xodiac agent — all platforms
Enrol first: Devices → Enrol token → pick an install method below.
Linux / macOS (bash — systemd, OpenRC, or nohup fallback)
curl -fsSL https://SERVER/scripts/install-agent.sh | bash -s -- \ --server https://SERVER --token ENROL_TOKEN [--region us-east]
FreeBSD / OpenBSD / NetBSD (rc.d service)
Same one-liner — the installer detects init and writes an rc.d script. Supported arches: amd64, arm64.
OpenWrt / routers (procd)
Same one-liner on the device — detects /etc/rc.common and registers a procd service. Or build a package: ./scripts/build-ipk.sh <binary> <ver> <arch>
scp → opkg install xodiac-agent<ver><arch>.ipk
Windows (PowerShell, as Administrator)
iex "& { $(irm https://SERVER/scripts/install-agent.ps1) } \ -Server https://SERVER -Token ENROL_TOKEN [-Region us-east]"
Docker / container
docker run -d --name xodiac-agent --restart unless-stopped \
-e SERVER=https://SERVER -e TOKEN=ENROL_TOKEN \
[-e REGION=us-east] xodiac-agent
Or compose: SERVER=… TOKEN=… docker compose up -d (see docker-compose.yml —
uncomment /var/run/docker.sock for the docker plugin, /proc for host metrics).
Architectures shipped
linux {amd64, arm64, armv7, 386} · windows/amd64 · freebsd {amd64, arm64} · openbsd/amd64 · netbsd/amd64 · darwin {amd64, arm64} All binaries + .sha256 sidecars under /releases/xodiac-agent-<os>-<arch>.
Runtime notes
- Conf dir: /etc/xodiac-agent (agent.json + conf.d/*.json for plugin creds)
- State: /var/lib/xodiac-agent/state.json (enrolment keys — keep on upgrade)
- Self-update: signed Ed25519, atomic binary swap, service-manager restart
- SIGHUP: reload conf.d creds + re-pull platform config without restart
-test-plugins: run every conf.d plugin once and print entities/metrics — verify creds before enrol (creds-less plugins need an empty conf.d/<name>.json)