Skip to content

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.

Terminal window
chmod +x QuartermasterCollectorSetup-linux-x64.run
./QuartermasterCollectorSetup-linux-x64.run

The guided flow mirrors the Windows wizard:

  1. Explains what will happen, then installs to ~/.local/share/quartermaster (override with --prefix).
  2. 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.
  3. Offers the Local Companion (advanced) for a private provenance/Drift dashboard (default No), then installs an explicit collector scan command. It does not install a systemd timer, cron entry, or other persistence.
  4. Offers to run the first scan immediately.

The machine scans only when you run the collector, with secrets redacted on-device before upload.

Every prompt has a flag, so fleets and dotfile scripts can install headlessly:

Terminal window
./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
Terminal window
~/.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.

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=oneshot
ExecStart=%h/.local/share/quartermaster/collector scan
ExecStart=%h/.local/share/quartermaster/collector jobs

Then create ~/.config/systemd/user/quartermaster-collector.timer:

[Unit]
Description=Hourly Quartermaster collector scan
[Timer]
OnBootSec=5min
OnUnitActiveSec=1h
RandomizedDelaySec=5min
Persistent=true
[Install]
WantedBy=timers.target

Enable, inspect, or remove it explicitly:

Terminal window
systemctl --user daemon-reload
systemctl --user enable --now quartermaster-collector.timer
systemctl --user list-timers quartermaster-collector.timer
systemctl --user disable --now quartermaster-collector.timer

If 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>&1

Uninstalling 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.

  • Releases: every collector-v* tag builds both architectures in CI and attaches them to the GitHub release, each with a .sha256 sidecar — verify with sha256sum -c QuartermasterCollectorSetup-linux-x64.run.sha256.
  • Build it yourself: node installer/unix/build.mjs --platform linux (needs only tar + xz; builds on any OS).

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.