a2f3410e42
Add per-site and per-box inventories, consolidate shared network design, and relocate the switch and access-point references under the home site.
3.2 KiB
3.2 KiB
jackflix
The media stack — acquisition, library, streaming and photos. Torrent traffic is routed through an AirVPN WireGuard tunnel so downloads only flow while the VPN is up.
- Source:
shill/containers/jackflix/(default.nix,networking.nix) - Host: NixOS container on
shill(bind-mounts/mnt/mediaread-write) - nixpkgs:
mine
Role
| Service | Port | Purpose |
|---|---|---|
| Jellyfin | 8096 |
streaming, published as jackflix.nul.ie |
| Transmission | 9091 |
BitTorrent client (transmission_4), published as torrents.nul.ie (SSO) |
| Jackett | 9117 |
indexer aggregator, jackett.nul.ie (SSO) |
| FlareSolverr | — | Cloudflare challenge solver for Jackett |
| Radarr | 7878 |
movies, radarr.nul.ie (SSO) |
| Sonarr | 8989 |
TV, sonarr.nul.ie (SSO) |
Jellyseerr (seerr) |
5055 |
request portal, gib.nul.ie (openFirewall on) |
| PhotoPrism | 2342 |
photos, photos.nul.ie; password auth, sqlite DB, originals/import under /mnt/media/photoprism |
| copyparty | 3923 |
file sharing, stuff.nul.ie; serves /mnt/media/public (read-only to everyone) and /priv → /mnt/media/stuff (admin for dev), share creation, indexing (e2dsa/e2t), file-magic checks |
All published through middleman as shown. A shared media group plus a group-writable
umask on Radarr/Sonarr gives the apps coordinated access to the media volume.
Network assignments
See the consolidated network assignments table (this box: jackflix).
VPN download path
networking.nix
defines a vpn WireGuard netdev to AirVPN NL using a key and PSK from age secrets:
- Policy routing keeps colony traffic on the main table while everything else falls through to the
VPN's dedicated table, so the services stay reachable on the
ctrsnetwork while outbound torrent traffic exits via AirVPN.DNSDefaultRouteis disabled onhost0; the VPN provides DNS. transmissionandjackettbindsTosystemd-networkd-wait-online@vpn.service— they only run while the tunnel is up.- AirVPN forwards a peer port to Transmission (
peer-port); the firewall accepts it and drops other new inbound TCP fromvpn, while non-VPN input is limited to the service ports (netdata, Transmission, Jackett, Radarr, Sonarr, Jellyfin, PhotoPrism) plus copyparty's3923from the base config and Jellyseerr's5055.
Storage
Media lives on the shared /mnt/media volume (bind-mounted read-write from shill); Transmission
downloads into /mnt/media/downloads/torrents with a .incomplete directory and configured
bandwidth and seed-ratio limits.
Notable config files
nixos/boxes/colony/vms/shill/containers/jackflix/default.nix— container definition and the media servicesnixos/boxes/colony/vms/shill/containers/jackflix/networking.nix— AirVPN WireGuard netdev, policy routing and VPN firewall rules