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)