Run model: scheduled-CLI Kopia in the nas-support LXC, not a server or Docker app
Date: 2026-06-28 Status: Accepted Decision: hl-cbln Deciders: Sean Brandt
Context
Section titled “Context”Kopia can run as a scheduled CLI, a long-running server (web UI + metrics), or a containerized app. The hl-36m6 nas-support LXC already exists with curation tooling and a Homebrew-installed kopia, and the repo already standardizes on the router-kopia-backup scheduled-CLI role.
Decision
Section titled “Decision”Run Kopia as a scheduled CLI (a systemd timer) inside the nas-support LXC, cloning the proven router-kopia-backup shape and reusing the brew-installed binary. Outbound-only — no web UI or ingress.
Rationale
Section titled “Rationale”- Reuses a battle-tested role and the existing sandbox + binary; one host serves both backup and rmlint/ncdu curation.
- The backup is outbound-only and needs no web UI; operational visibility comes from a freshness dead-man’s-switch and telemetry, not a running server.
Alternatives Considered
Section titled “Alternatives Considered”- Kopia server (rejected): adds a long-running TLS/auth surface for visibility obtainable more cheaply.
- Dedicated TrueNAS Docker app (rejected): sidesteps the idmap ACLs but splits NAS tooling across two runtimes and diverges from the sandbox model.
Consequences
Section titled “Consequences”- Positive: minimal new surface; no persistent daemon; reuses proven patterns.
- Negative: no built-in dashboard (mitigated by the ntfy dead-man’s-switch plus a fast-follow ClickStack gauge).
- Neutral: runs as root inside the sandbox (the ACL grant is to container-root).