Files
soupclown/docker-compose/compose.yaml
T

213 lines
5.5 KiB
YAML

services:
vpn:
container_name: vpn
profiles:
- download
image: qmcgaw/gluetun:v3.40
cap_add:
- NET_ADMIN # Quin does not like these
devices:
- /dev/net/tun:/dev/net/tun
volumes:
- ${DOWNLOAD_ETC_PATH}/gluetun:/gluetun
environment:
- VPN_SERVICE_PROVIDER=private internet access
- SERVER_REGIONS=Netherlands
- OPENVPN_USER=${PIA_USERNAME}
- OPENVPN_PASSWORD=${PIA_PASSWORD}
- UPDATER_PERIOD=24h
ports:
- 9091:9091 # Transmission
- 51413:51413 # Transmission
- 51413:51413/udp # Transmission
- 9696:9696 # Prowlarr
- 7878:7878 # Radarr
- 8989:8989 # Sonarr
- 3333:3333 # bitmagnet API and WebUI port
- 3334:3334/tcp # bitmagnet BitTorrent ports
- 3334:3334/udp # bitmagnet BitTorrent ports
# - 5055:5055 # seerr
# - 8112:8112 # Deluge
# - 6881:6881 # Deluge
# - 6881:6881/udp # Deluge
# - 58846:58846 # idk Deluge
- 7474:7474 # Autobrr
restart: unless-stopped
transmission:
container_name: transmission
profiles:
- download
image: lscr.io/linuxserver/transmission:latest
network_mode: "service:vpn"
environment:
- TZ=${TZ}
- PUID=1000
- PGID=1000
volumes:
- ${DOWNLOAD_ETC_PATH}/transmission:/config
- /mnt/media2/app_data/transmission/downloads:/downloads
restart: unless-stopped
prowlarr:
container_name: prowlarr
profiles:
- download
image: lscr.io/linuxserver/prowlarr:latest
network_mode: "service:vpn"
environment:
- TZ=${TZ}
- PUID=1000
- PGID=1000
volumes:
- ${DOWNLOAD_ETC_PATH}/prowlarr:/config
depends_on:
vpn:
condition: service_started
restart: true
required: true
restart: unless-stopped
radarr:
container_name: radarr
profiles:
- download
image: lscr.io/linuxserver/radarr:latest
network_mode: "service:vpn"
environment:
- PUID=1000
- PGID=1000
- TZ=${TZ}
volumes:
- ${DOWNLOAD_ETC_PATH}/radarr:/config
- /mnt/tmpMedia/app_data/jellyfin/media:/soupclown/localmedia
- /mnt/media2/app_data/jellyfin/media:/soupclown/localmedia2
- /mnt/media2/app_data/transmission/downloads:/downloads #optional
depends_on:
vpn:
condition: service_started
restart: true
required: true
prowlarr:
condition: service_started
restart: true
required: true
restart: unless-stopped
sonarr:
container_name: sonarr
profiles:
- download
image: lscr.io/linuxserver/sonarr:latest
network_mode: "service:vpn"
environment:
- PUID=1000
- PGID=1000
- TZ=${TZ}
volumes:
- ${DOWNLOAD_ETC_PATH}/sonarr:/config
- /mnt/tmpMedia/app_data/jellyfin/media:/soupclown/localmedia
- /mnt/media2/app_data/jellyfin/media:/soupclown/localmedia2
- /mnt/media2/app_data/transmission/downloads:/downloads #optional
depends_on:
vpn:
condition: service_started
restart: true
required: true
prowlarr:
condition: service_started
restart: true
required: true
restart: unless-stopped
bitmagnet:
container_name: bitmagnet
profiles:
- download
image: ghcr.io/bitmagnet-io/bitmagnet:latest
restart: unless-stopped
network_mode: "service:vpn"
environment:
- POSTGRES_PASSWORD=${DOWNLOAD_BITMAGENT_DB_PASS}
- TMDB_API_KEY=${TMDB_API_KEY}
volumes:
- ${SOUPCLOWN_ETC_PATH}/downloadin/bitmagnet/etc:/root/.config/bitmagnet
command:
- worker
- run
- --keys=http_server
- --keys=queue_server
# disable the next line to run without DHT crawler
- --keys=dht_crawler
depends_on:
postgres:
condition: service_healthy
postgres:
container_name: bitmagnet-postgres
profiles:
- download
image: postgres:16-alpine
network_mode: "service:vpn"
volumes:
- ${SOUPCLOWN_ETC_PATH}/downloadin/bitmagnet/postgresdata:/var/lib/postgresql/data
restart: unless-stopped
environment:
- POSTGRES_PASSWORD=${DOWNLOAD_BITMAGENT_DB_PASS}
- POSTGRES_DB=bitmagnet
- PGUSER=postgres
shm_size: 1g
healthcheck:
test:
- CMD-SHELL
- pg_isready
start_period: 20s
interval: 10s
seerr:
container_name: seerr
profiles:
- download
image: ghcr.io/seerr-team/seerr:latest
init: true
restart: unless-stopped
ports:
- 5055:5055
environment:
- TZ=${TZ}
- LOG_LEVEL=debug
volumes:
- ${SOUPCLOWN_ETC_PATH}/seer:/app/config
healthcheck:
test: wget --no-verbose --tries=1 --spider http://localhost:5055/api/v1/status || exit 1
start_period: 20s
timeout: 3s
interval: 15s
retries: 3
navidrome:
profiles:
- app
container_name: navidrome
image: deluan/navidrome:latest
user: 1000:1000
ports:
- "4533:4533"
volumes:
- ${SOUPCLOWN_ETC_PATH}/navidrome:/data
- /mnt/mega/app_data/beets/beetsMusic/:/music1
restart: unless-stopped
metube:
profiles:
- app
image: ghcr.io/alexta69/metube
container_name: metube
restart: unless-stopped
ports:
- "8081:8081"
volumes:
- /mnt/media2/app_data/metube/downloads:/downloads
- ./bin/metube-options.json:/config/metube-options.json
environment:
- YTDL_OPTIONS_FILE=/config/metube-options.json