Linux installer
QuartermasterCollectorSetup-linux-x64.run (and -arm64) is a self-contained
installer for the collector — the Linux
sibling of the Windows and
macOS installers. It
bundles a portable Node binary, so the machine needs no Node install and no
git clone, and everything happens per-user — no root required.
Install
Section titled “Install”chmod +x QuartermasterCollectorSetup-linux-x64.run./QuartermasterCollectorSetup-linux-x64.runThe guided flow mirrors the Windows wizard:
- Explains what will happen, then installs to
~/.local/share/quartermaster(override with--prefix). - Prompts for your Worker URL and admin token (input hidden). The
admin token is used once to pair and is never stored; only the
revocable device-scoped token lands on disk (
~/.quartermaster/, mode 0600). Re-running over an existing pairing keeps it. - Offers the Local Companion (advanced) for a private provenance/Drift
dashboard (default No), then installs an explicit
collector scancommand. It does not install a systemd timer, cron entry, or other persistence. - Offers to run the first scan immediately.
The machine scans only when you run the collector, with secrets redacted on-device before upload.
Unattended installs
Section titled “Unattended installs”Every prompt has a flag, so fleets and dotfile scripts can install headlessly:
./QuartermasterCollectorSetup-linux-x64.run --yes \ --url https://quartermaster.<you>.workers.dev \ --name my-linux-box \ --admin-token "$QM_ADMIN_TOKEN" # or just export QM_ADMIN_TOKEN--roots a,b— scan roots (default: the~/.{tool}dirs that exist)--name machine-name— display name registered in the Devices dashboard--local-companion— install the full loopback provenance/Drift companion--no-local-companion— explicitly keep only the thin collector--skip-connect— install now, pair later with<prefix>/collector connect--uninstall— run the uninstaller of an existing install
After install
Section titled “After install”~/.local/share/quartermaster/collector status # config + tracked count + server health~/.local/share/quartermaster/collector scan # incremental scan now~/.local/share/quartermaster/quartermaster-companion open # local #/drift~/.local/share/quartermaster/quartermaster-companion stop~/.local/share/quartermaster/uninstall.sh # remove (keeps pairing)The companion installs native dependencies only after opt-in, downloads the
embedding model on first start, binds to 127.0.0.1:8765, and keeps a separate
local SQLite registry. Its Drift reports are not synchronized into the personal
Worker dashboard, and it never starts automatically.
Optional: schedule scans yourself
Section titled “Optional: schedule scans yourself”Scheduling is deliberately separate from installation. For systemd, review
and create ~/.config/systemd/user/quartermaster-collector.service:
[Unit]Description=Quartermaster collector scan and jobs poll
[Service]Type=oneshotExecStart=%h/.local/share/quartermaster/collector scanExecStart=%h/.local/share/quartermaster/collector jobsThen create ~/.config/systemd/user/quartermaster-collector.timer:
[Unit]Description=Hourly Quartermaster collector scan
[Timer]OnBootSec=5minOnUnitActiveSec=1hRandomizedDelaySec=5minPersistent=true
[Install]WantedBy=timers.targetEnable, inspect, or remove it explicitly:
systemctl --user daemon-reloadsystemctl --user enable --now quartermaster-collector.timersystemctl --user list-timers quartermaster-collector.timersystemctl --user disable --now quartermaster-collector.timerIf systemd user services are unavailable, the equivalent opt-in cron entry is:
@hourly "$HOME/.local/share/quartermaster/collector" scan && "$HOME/.local/share/quartermaster/collector" jobs >> "$HOME/.local/share/quartermaster/collector.log" 2>&1Uninstalling removes program files and cleans up timer/cron state created by
older installers. It deliberately leaves ~/.quartermaster, so re-installing never needs re-pairing —
this also preserves the companion’s SQLite registry and model cache. Revoke the
device server-side and delete that directory to fully disconnect and remove
local companion data.
Get the installer
Section titled “Get the installer”- Releases: every
collector-v*tag builds both architectures in CI and attaches them to the GitHub release, each with a.sha256sidecar — verify withsha256sum -c QuartermasterCollectorSetup-linux-x64.run.sha256. - Build it yourself:
node installer/unix/build.mjs --platform linux(needs onlytar+xz; builds on any OS).
Requirements
Section titled “Requirements”x86_64 or aarch64 with glibc (the official Node binaries) — that covers Debian/Ubuntu, Fedora, Arch, openSUSE, WSL, and friends. On Alpine/musl the installer refuses; use the manual collector setup with your own Node ≥ 18 instead.