- collect-compose.yml: Fetches all compose files from docker_hosts - collect-env-templates.yml: Creates .env.example with secrets redacted - deploy-compose.yml: Pushes compose files to hosts (with optional restart) - diff-compose.yml: Shows differences before deploying Collected 23 compose files from 7 hosts: - replicant: 12 stacks (arr-stack, mealie, portainer, etc) - docker666: 4 stacks (unifi, gluetun, uptime, utils) - databases: 3 stacks (postgres, forgejo, utils) - download-stack: 2 stacks (download-stack, utils) - media-transcode: 1 stack (utils) - network-services: 1 stack (utils) - immich: 1 stack (utils)
119 lines
3.3 KiB
YAML
119 lines
3.3 KiB
YAML
services:
|
|
gluetun:
|
|
image: qmcgaw/gluetun:v3
|
|
container_name: gluetun
|
|
cap_add:
|
|
- NET_ADMIN
|
|
devices:
|
|
- /dev/net/tun:/dev/net/tun
|
|
environment:
|
|
- VPN_SERVICE_PROVIDER=protonvpn
|
|
- VPN_TYPE=wireguard
|
|
- WIREGUARD_PRIVATE_KEY=${WIREGUARD_PRIVATE_KEY}
|
|
- SERVER_COUNTRIES=United States
|
|
- SERVER_CITIES=Secaucus,Chicago,New York
|
|
- TZ=America/New_York
|
|
- PUID=1000
|
|
- PGID=1000
|
|
- HTTPPROXY=on
|
|
- HTTPPROXY_LISTENING_ADDRESS=:38888
|
|
- HTTPPROXY_STEALTH=on
|
|
- BLOCK_ADS=on
|
|
- BLOCK_MALICIOUS=on
|
|
- HTTP_CONTROL_SERVER_ADDRESS=:8000
|
|
ports:
|
|
- 33000:3000 # ruTorrent web interface (via Gluetun)
|
|
- 38888:38888 # Gluetun HTTP proxy server
|
|
- 38443:443 # HTTPS/SSL traffic passthrough
|
|
- 35000:5000 # Additional application port
|
|
- 51413:51413 # ruTorrent BitTorrent incoming connections
|
|
- 6789:6789 # NZBGet web interface (via Gluetun)
|
|
- 8999:80 # HTTP traffic/alternative web interface port
|
|
- 38000:8000 # Gluetun control server API
|
|
- 38388:8388 # Shadowsocks proxy (TCP/UDP) - currently disabled
|
|
volumes:
|
|
- ./gluetun:/gluetun
|
|
networks:
|
|
- download
|
|
restart: unless-stopped
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: '1.0'
|
|
memory: 512M
|
|
reservations:
|
|
memory: 128M
|
|
labels:
|
|
- "autoheal=true"
|
|
- "com.centurylinklabs.watchtower.enable=true"
|
|
- "homepage.group=Downloads"
|
|
- "homepage.name=Gluetun"
|
|
- "homepage.icon=gluetun.png"
|
|
- "homepage.widget.type=gluetun"
|
|
- "homepage.widget.url=http://192.168.1.122:38000"
|
|
|
|
nzbget:
|
|
image: lscr.io/linuxserver/nzbget:latest
|
|
container_name: nzbget
|
|
environment:
|
|
- PUID=1000
|
|
- PGID=1000
|
|
- TZ=America/New_York
|
|
volumes:
|
|
- ./nzbget:/config
|
|
- /mnt/nas/downloads/nzbget:/downloads
|
|
- /mnt/nas/media:/media
|
|
network_mode: service:gluetun
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: '2.0'
|
|
memory: 2G
|
|
reservations:
|
|
memory: 256M
|
|
depends_on:
|
|
- gluetun
|
|
restart: unless-stopped
|
|
labels:
|
|
- "autoheal=true"
|
|
- "com.centurylinklabs.watchtower.enable=true"
|
|
- "homepage.group=Downloads"
|
|
- "homepage.name=NZBGet"
|
|
- "homepage.icon=nzbget.png"
|
|
- "homepage.href=https://nzb.3ddbrewery.com"
|
|
- "homepage.widget.type=nzbget"
|
|
- "homepage.widget.url=http://192.168.1.122:6789"
|
|
|
|
rutorrent:
|
|
image: lscr.io/linuxserver/rutorrent:latest
|
|
container_name: rutorrent
|
|
environment:
|
|
- PUID=1000
|
|
- PGID=1000
|
|
- TZ=America/New_York
|
|
volumes:
|
|
- ./rutorrent:/config
|
|
- /mnt/nas/downloads/rutorrent:/downloads
|
|
- /mnt/nas/media:/media
|
|
network_mode: service:gluetun
|
|
depends_on:
|
|
- gluetun
|
|
restart: unless-stopped
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: '2.0'
|
|
memory: 2G
|
|
reservations:
|
|
memory: 256M
|
|
labels:
|
|
- "autoheal=true"
|
|
- "com.centurylinklabs.watchtower.enable=true"
|
|
- "homepage.group=Downloads"
|
|
- "homepage.name=ruTorrent"
|
|
- "homepage.icon=rutorrent.png"
|
|
- "homepage.href=https://rutorrent.3ddbrewery.com"
|
|
|
|
networks:
|
|
download:
|
|
external: true
|