Files
archive-clients/deploy/production/helium/README.md
T

1.6 KiB

Helium archive-node deployment

This directory contains the non-secret manifests for the dedicated helium archive node. Install the files into these separate compose projects:

  • ~/Repositories/compose/qbittorrent-helium/compose.yaml
  • ~/Repositories/compose/syncthing-helium/compose.yaml
  • ~/Repositories/compose/ArchiveControl-archive/{compose.yaml,client.toml}

The qBittorrent API and Syncthing GUI/API bind only to loopback. Syncthing transport/discovery ports are published normally. qBittorrent data and Syncthing route folders both live under /media/Data2; the Archive Control container therefore mounts /media/Data2 once at /data/storage so archive placements can hardlink rather than make a full copy.

/media/Data2/Downloading already contains unrelated files. The fresh qB instance must not import or manage them; only Archive Control-created torrents are managed.

Before the first client start, run the repository preflight on the target host (replace container names if that host uses different compose project names):

python3 scripts/preflight-deployment.py \
  --client-config ~/Repositories/compose/ArchiveControl-archive/client.toml \
  --client-container archive-control-helium-archive-client-1 \
  --syncthing-container helium-syncthing-syncthing-1 \
  --qbittorrent-container helium-qbittorrent-qbittorrent-1

It is read-only: it checks the configured API roots resolve to the same host paths as the client roots, that both data roots share one client bind mount for hardlinks, secret-file permissions, filesystem capabilities, and the local qB and Syncthing APIs. It does not send the control token or modify any container.