Workflow status is tracked in GitHub. This local document is retained as an engineering spec/evidence record.
TMBB-FEAT-013 - Docker delivery - compose + profiles + Gluetun + GHCR trackmulebb image¶
Summary¶
The Docker form of the suite bundle: a committed docker-compose.yml driven by
compose profiles + .env, an optional Gluetun namespace for the P2P
clients, and the minimal trackmulebb GHCR image (ghcr.io/emulebb/trackmulebb).
The setup CLI generates/updates the compose (setup --target docker, TMBB-FEAT-010)
so there is one source of truth, no wiring drift. Design:
emulebb-tooling/docs/active/SUITE-DOCKER.md.
Why This Matters¶
Gives the suite a second runtime substrate (containers) sharing the same
TrackMuleBB brain and selectable bundle. The trackmulebb image is one of the
four enabling-prerequisite images for the Docker bundle.
Intended Shape¶
- Compose in
trackmulebb/docker/; TrackMuleBB runs as a plain service (nodocker.sock). - Profiles per component (
rust,qbbb,trackmulebb,prowlarr,sonarr,radarr, sabnzbd,bountarr,plex,gluetun); TrackMuleBB always present, >=1 P2P client, dependency enforcement. - Single
/datavolume (torrents/ usenet/ ed2k/ media/) → hardlinks + atomic move (Model 1: eD2K through Arr). - Optional Gluetun: only P2P containers use
network_mode: "service:gluetun"; their ports published on the gluetun service; control plane reaches them atgluetun:<port>. hide.me via Gluetun custom OpenVPN mode (no auto port-forward). - Publish
ghcr.io/emulebb/trackmulebb(Python via uv) from this repo's CI. - Bind-mounts under the project dir (
./config/<app>,./data); Plex in bridge + ports.
Acceptance Criteria¶
- [ ]
ghcr.io/emulebb/trackmulebb:latest+ version tag pushed by CI. - [ ]
docker/compose + profiles +.envstart the selected bundle; >=1 P2P client enforced. - [ ] Optional Gluetun routes only the P2P clients (fail-closed); control plane wired to
gluetun:<port>. - [ ]
setup --target dockeremits/updates the compose (no hand-editing required).
Notes¶
- Companion to the Windows-local form (TMBB-FEAT-010). The bountarr image is
tracked in
itlezy/bountarrand bundled via TMBB-FEAT-012.