Files
infra/12_torrent/docker-compose.yml
T

261 lines
8.4 KiB
YAML
Raw Normal View History

2026-07-08 16:00:01 +02:00
services:
2026-07-15 15:40:01 +02:00
gluetun:
2026-07-28 21:10:01 +02:00
image: qmcgaw/gluetun:latest
restart: unless-stopped
2026-07-15 15:40:01 +02:00
cap_add:
- NET_ADMIN
devices:
2026-07-28 20:30:01 +02:00
- /dev/net/tun:/dev/net/tun
2026-07-15 15:40:01 +02:00
environment:
2026-07-28 21:10:01 +02:00
- VPN_SERVICE_PROVIDER=custom
- VPN_TYPE=wireguard
2026-07-15 15:50:01 +02:00
- VPN_PORT_FORWARDING=on
2026-07-28 20:30:01 +02:00
- VPN_PORT_FORWARDING_PROVIDER=private internet access
2026-07-28 21:10:01 +02:00
- VPN_PORT_FORWARDING_USERNAME=${PIA_USER}
- VPN_PORT_FORWARDING_PASSWORD=${PIA_PASSWORD}
- SERVER_NAMES=${PIA_SERVER_NAME}
2026-07-28 20:30:01 +02:00
- VPN_PORT_FORWARDING_STATUS_FILE=/gluetun/forwarded_port
2026-07-15 15:40:01 +02:00
- TZ=Europe/Paris
2026-07-28 21:10:01 +02:00
- FIREWALL_OUTBOUND_SUBNETS=10.10.0.0/24
- HEALTH_VPN_DURATION_INITIAL=30s
- HEALTH_VPN_DURATION_ADDITION=30s
- HEALTH_VPN_INTERVAL=30s
2026-07-28 21:20:01 +02:00
- HEALTH_VPN_ENDPOINT_IP= 1.1.1.1
2026-07-28 21:10:01 +02:00
- DNS_ADDRESS=1.1.1.1
2026-07-28 21:20:01 +02:00
- WIREGUARD_MTU= 1280
2026-07-28 20:30:01 +02:00
- VPN_PORT_FORWARDING_UP_COMMAND=/bin/sh -c 'wget -O- -nv --retry-connrefused --post-data "json={\"listen_port\":{{PORT}},\"current_network_interface\":\"{{VPN_INTERFACE}}\",\"random_port\":false,\"upnp\":false}" http://127.0.0.1:8090/api/v2/app/setPreferences'
- VPN_PORT_FORWARDING_DOWN_COMMAND=/bin/sh -c 'wget -O- -nv --retry-connrefused --post-data "json={\"listen_port\":0,\"current_network_interface\":\"lo\"}" http://127.0.0.1:8090/api/v2/app/setPreferences'
2026-07-15 15:40:01 +02:00
volumes:
- /home/docker/DenGate:/gluetun
2026-07-28 21:10:01 +02:00
- /home/docker/DenGate/nl_netherlands-so.conf:/gluetun/wireguard/wg0.conf:ro
2026-07-15 15:40:01 +02:00
ports:
2026-07-28 20:30:01 +02:00
- 6881:6881
- 6881:6881/udp
2026-07-28 21:10:01 +02:00
- 8085:8090
- 8787:8080
- 9696:9696
- 7878:7878
- 8989:8989
- 5055:5055
2026-07-15 15:40:01 +02:00
- 9117:9117
- 8191:8191
2026-07-28 21:10:01 +02:00
- 8265:8265
- 8266:8266
2026-07-15 15:40:01 +02:00
networks:
tan-network:
ipv4_address: 10.10.0.120
labels:
- traefik.enable=true
- traefik.docker.network=tan-network
- traefik.http.routers.qbittorrent.rule=Host(`torrent.luckyden.org`)
- traefik.http.routers.qbittorrent.entrypoints=websecure
- traefik.http.routers.qbittorrent.tls.certresolver=cloudflare
- traefik.http.routers.qbittorrent.service=qbittorrent
- traefik.http.services.qbittorrent.loadbalancer.server.port=8090
- traefik.http.routers.neko.rule=Host(`neko.luckyden.org`)
- traefik.http.routers.neko.entrypoints=websecure
- traefik.http.routers.neko.tls.certresolver=cloudflare
- traefik.http.routers.neko.service=neko
- traefik.http.services.neko.loadbalancer.server.port=8080
- traefik.http.routers.prowlarr.rule=Host(`prowlarr.luckyden.org`)
- traefik.http.routers.prowlarr.entrypoints=websecure
- traefik.http.routers.prowlarr.tls.certresolver=cloudflare
- traefik.http.routers.prowlarr.service=prowlarr
- traefik.http.services.prowlarr.loadbalancer.server.port=9696
- traefik.http.routers.radarr.rule=Host(`radarr.luckyden.org`)
- traefik.http.routers.radarr.entrypoints=websecure
- traefik.http.routers.radarr.tls.certresolver=cloudflare
- traefik.http.routers.radarr.service=radarr
- traefik.http.services.radarr.loadbalancer.server.port=7878
- traefik.http.routers.sonarr.rule=Host(`sonarr.luckyden.org`)
- traefik.http.routers.sonarr.entrypoints=websecure
- traefik.http.routers.sonarr.tls.certresolver=cloudflare
- traefik.http.routers.sonarr.service=sonarr
- traefik.http.services.sonarr.loadbalancer.server.port=8989
- traefik.http.routers.seerr.rule=Host(`jellyseerr.luckyden.org`)
- traefik.http.routers.seerr.entrypoints=websecure
- traefik.http.routers.seerr.tls.certresolver=cloudflare
- traefik.http.routers.seerr.service=seerr
- traefik.http.services.seerr.loadbalancer.server.port=5055
- traefik.http.routers.tdarr.rule=Host(`tdarr.luckyden.org`)
- traefik.http.routers.tdarr.entrypoints=websecure
- traefik.http.routers.tdarr.tls.certresolver=cloudflare
- traefik.http.routers.tdarr.service=tdarr
- traefik.http.services.tdarr.loadbalancer.server.port=8265
healthcheck:
2026-07-28 21:10:01 +02:00
test: ["CMD-SHELL", "/gluetun-entrypoint healthcheck"]
interval: 10s
2026-07-15 15:50:01 +02:00
timeout: 5s
2026-07-28 21:10:01 +02:00
start_period: 90s
retries: 12
2026-03-21 14:12:55 +01:00
2026-07-08 16:00:01 +02:00
qbittorrent:
image: lscr.io/linuxserver/qbittorrent:latest
restart: unless-stopped
2026-07-15 15:40:01 +02:00
network_mode: service:gluetun
2026-07-08 16:00:01 +02:00
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Paris
- WEBUI_PORT=8090
2026-07-28 20:40:01 +02:00
- DOCKER_MODS=ghcr.io/gabe565/linuxserver-mod-vuetorrent
2026-07-08 16:00:01 +02:00
volumes:
- /home/docker/BitDen/config:/config
- /mnt/bindmounts/multimedia/Downloads:/downloads
2026-07-15 15:40:01 +02:00
depends_on:
gluetun:
condition: service_healthy
2026-07-08 16:00:01 +02:00
2026-07-08 11:00:01 +02:00
neko:
image: ghcr.io/m1k1o/neko/firefox:latest
restart: unless-stopped
shm_size: 2gb
2026-07-15 15:40:01 +02:00
network_mode: service:gluetun
2026-07-08 11:00:01 +02:00
volumes:
- /home/docker/BrowDen/firefox:/home/neko/.mozilla/firefox
environment:
- NEKO_WEBRTC_EPR=52000-52100
- NEKO_WEBRTC_ICELITE=1
- NEKO_WEBRTC_NAT1TO1=192.168.0.9
- NEKO_MEMBER_MULTIUSER_USER_PASSWORD=${NEKO_USER_PASS}
- NEKO_MEMBER_MULTIUSER_ADMIN_PASSWORD=${NEKO_ADMIN_PASS}
2026-07-15 15:40:01 +02:00
depends_on:
gluetun:
condition: service_healthy
2026-07-08 16:00:01 +02:00
prowlarr:
image: lscr.io/linuxserver/prowlarr:latest
restart: unless-stopped
2026-07-15 15:40:01 +02:00
network_mode: service:gluetun
2026-07-08 16:00:01 +02:00
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Paris
volumes:
- /home/docker/ProwDen/config:/config
2026-07-15 15:40:01 +02:00
depends_on:
gluetun:
condition: service_healthy
2026-07-08 16:00:01 +02:00
jackett:
image: lscr.io/linuxserver/jackett:latest
restart: unless-stopped
2026-07-15 15:40:01 +02:00
network_mode: service:gluetun
2026-07-08 16:00:01 +02:00
environment:
- FLARESOLVERR_URL=http://127.0.0.1:8191
- PUID=1000
- PGID=1000
- TZ=Europe/Paris
- AUTO_UPDATE=true
volumes:
- /home/docker/ProwDen/jackett/config:/config
- /home/docker/ProwDen/jackett/downloads:/downloads
2026-07-15 15:40:01 +02:00
depends_on:
gluetun:
condition: service_healthy
2026-07-08 16:00:01 +02:00
flaresolverr:
image: ghcr.io/flaresolverr/flaresolverr:latest
restart: unless-stopped
2026-07-15 15:40:01 +02:00
network_mode: service:gluetun
2026-07-08 16:00:01 +02:00
environment:
- TZ=Europe/Paris
- LOG_LEVEL=info
2026-07-15 15:40:01 +02:00
depends_on:
gluetun:
condition: service_healthy
2026-07-08 16:00:01 +02:00
radarr:
image: lscr.io/linuxserver/radarr:latest
restart: unless-stopped
2026-07-15 15:40:01 +02:00
network_mode: service:gluetun
2026-07-08 16:00:01 +02:00
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Paris
volumes:
- /home/docker/RadDen/config:/config
- /mnt/bindmounts/multimedia/Médias:/movies
- /mnt/bindmounts/multimedia/Downloads:/downloads
2026-07-15 15:40:01 +02:00
depends_on:
gluetun:
condition: service_healthy
2026-07-08 16:00:01 +02:00
sonarr:
image: lscr.io/linuxserver/sonarr:latest
restart: unless-stopped
2026-07-15 15:40:01 +02:00
network_mode: service:gluetun
2026-07-08 16:00:01 +02:00
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Paris
volumes:
- /home/docker/SonDen/config:/config
- /mnt/bindmounts/multimedia/Médias:/tv
- /mnt/bindmounts/multimedia/Downloads:/downloads
2026-07-15 15:40:01 +02:00
depends_on:
gluetun:
condition: service_healthy
2026-07-08 16:00:01 +02:00
seerr:
image: ghcr.io/seerr-team/seerr:latest
restart: unless-stopped
init: true
2026-07-15 15:40:01 +02:00
network_mode: service:gluetun
2026-07-08 16:00:01 +02:00
environment:
- LOG_LEVEL=debug
- TZ=Europe/Paris
volumes:
- /home/docker/DenRequest/config:/app/config
2026-07-15 15:40:01 +02:00
depends_on:
gluetun:
condition: service_healthy
2026-07-08 16:00:01 +02:00
tdarr:
image: ghcr.io/haveagitgat/tdarr:latest
restart: unless-stopped
2026-07-15 15:40:01 +02:00
network_mode: service:gluetun
2026-07-08 16:00:01 +02:00
environment:
- TZ=Europe/Paris
- PUID=1000
- PGID=1000
- UMASK_SET=002
- serverIP=0.0.0.0
- serverPort=8266
- webUIPort=8265
- auth=true
- authSecretKey=${RENDEN_SECRET_KEY}
- apiKey=${RENDEN_API_KEY}
- internalNode=true
- inContainer=true
- ffmpegVersion=6
- nodeName=RenDen_node
- NVIDIA_DRIVER_CAPABILITIES=all
- NVIDIA_VISIBLE_DEVICES=all
volumes:
- /home/docker/RenDen/server:/app/server
- /home/docker/RenDen/configs:/app/configs
- /home/docker/RenDen/logs:/app/logs
- /mnt/bindmounts/multimedia/Médias/Séries:/media/séries
- /mnt/bindmounts/multimedia/Médias/Films:/media/films
- /mnt/bindmounts/multimedia/Médias/Animes:/media/animes
- /mnt/bindmounts/multimedia/Médias/Animations:/media/animations
- /mnt/bindmounts/multimedia/Médias/Animes Jeunesse:/media/animes jeunesse
- /tmp/tdarr/transcodes:/temp
devices:
- /dev/dri:/dev/dri
2026-07-15 15:40:01 +02:00
depends_on:
gluetun:
condition: service_healthy
2026-07-08 16:00:01 +02:00
2026-03-21 14:12:55 +01:00
networks:
tan-network:
2026-07-15 15:50:01 +02:00
external: true