Add initial commit of new media management docker stack

Includes transmission, gluetun, sonarr, radarr stacks
Includes framework for adding plex, tautulli, prowlarr, overseerr, requestrr, and trash guides sync stacks
Includes port-watcher docker container that monitors gluetun port forwarding file and sets transmission peer_port automatically
This commit is contained in:
Chris King
2025-03-12 10:47:54 -07:00
parent 2abb9cb5d2
commit ff4bea25f6
9 changed files with 202 additions and 0 deletions

View File

@@ -0,0 +1,74 @@
services:
transmission:
image: lscr.io/linuxserver/transmission:latest
environment:
DOCKER_MODS: linuxserver/mods:transmission-env-var-settings
PUID: 998 # media user
PGID: 998 # media group
UMASK: "002"
TZ: America/Los_Angeles
TRANSMISSION_DOWNLOAD_DIR: ${TORRENTARR_DOWNLOAD_DIR:?error}/complete
TRANSMISSION_INCOMPLETE_DIR: ${TORRENTARR_DOWNLOAD_DIR:?error}/incomplete
TRANSMISSION_SPEED_LIMIT_UP: "3750"
TRANSMISSION_SPEED_LIMIT_UP_ENABLED: "true"
TRANSMISSION_WATCH_DIR_ENABLED: "false"
TRANSMISSION_RPC_PORT: ${TORRENTARR_TRANSMISSION_RPC_PORT:?error}
TRANSMISSION_RPC_AUTHENTICATION_REQUIRED: "false"
volumes:
- ./transmission_config:/config
- ${TORRENTARR_DOWNLOAD_DIR:?error}:${TORRENTARR_DOWNLOAD_DIR:?error}
network_mode: "service:gluetun"
restart: unless-stopped
depends_on:
gluetun:
condition: service_healthy
gluetun:
image: qmcgaw/gluetun
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun:/dev/net/tun
volumes:
- gluetun_forwarding:/tmp/gluetun_forwarding
ports:
- ${TORRENTARR_TRANSMISSION_RPC_PORT:?error}:${TORRENTARR_TRANSMISSION_RPC_PORT:?error}
restart: unless-stopped
environment:
VPN_SERVICE_PROVIDER: protonvpn
VPN_TYPE: wireguard
VPN_PORT_FORWARDING: on
VPN_PORT_FORWARDING_STATUS_FILE: /tmp/gluetun_forwarding/forwarded_port
PORT_FORWARD_ONLY: "on"
SERVER_COUNTRIES: United States
SERVER_CITIES: Los Angeles
UPDATER_PERIOD: 24h
secrets:
- wireguard_private_key
port-watcher:
build: ../port-watcher
volumes:
- gluetun_forwarding:/watch
environment:
PORT_FILE: /watch/forwarded_port
TRANSMISSION_HOST: gluetun
TRANSMISSION_PORT: ${TORRENTARR_TRANSMISSION_RPC_PORT:?error}
restart: unless-stopped
healthcheck:
test: ["CMD", "test", "-f", "/watch/forwarded_port"]
interval: 10s
timeout: 60s
retries: 10
start_period: 10s
depends_on:
transmission:
condition: service_started
gluetun:
condition: service_healthy
volumes:
gluetun_forwarding:
secrets:
wireguard_private_key:
file: ./secrets/wireguard_private_key