services: ### START DOWNLOAD 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: - ${PATH_ETC}/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 - 8686:8686 # Lidarr - 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: - ${PATH_ETC}/transmission:/config - /storage/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: - ${PATH_ETC}/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: - ${PATH_ETC}/radarr:/config - /storage/media:/media # Access to media library - /storage/transmission/downloads:/downloads # Access to transmission downloads 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: - ${PATH_ETC}/sonarr:/config - /storage/media:/media # Access to media library - /storage/transmission/downloads:/downloads # Access to transmission downloads depends_on: vpn: condition: service_started restart: true required: true prowlarr: condition: service_started restart: true required: true restart: unless-stopped lidarr: container_name: lidarr profiles: - download image: lscr.io/linuxserver/lidarr:latest network_mode: "service:vpn" environment: - PUID=1000 - PGID=1000 - TZ=${TZ} volumes: - ${PATH_ETC}/lidarr:/config - /storage/media:/media # Access to media library - /storage/transmission/downloads:/downloads # Access to transmission downloads 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=${BITMAGENT_DB_PASS} - TMDB_API_KEY=${TMDB_API_KEY} volumes: - ${PATH_ETC}/bitmagnet:/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: - ${PATH_ETC}/bitmagnet-postgres:/var/lib/postgresql/data restart: unless-stopped environment: - POSTGRES_PASSWORD=${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 ports: - 5055:5055 environment: - TZ=${TZ} - LOG_LEVEL=debug volumes: - ${PATH_ETC}/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 restart: unless-stopped lidatube: container_name: lidatube profiles: - download image: thewicklowwolf/lidatube:latest volumes: - ${PATH_ETC}/lidatube:/lidatube/config - /storage/lidatube:/lidatube/downloads - /etc/localtime:/etc/localtime:ro environment: - attempt_lidarr_import=True ports: - 5000:5000 restart: unless-stopped aurral: container_name: aurral profiles: - download image: ghcr.io/lklynet/aurral:latest ports: - 3001:3001 environment: - DOWNLOAD_FOLDER=${DL_FOLDER:-./data/downloads} volumes: - ${PATH_ETC}/aurral:/app/backend/data - /storage/aurral:/app/downloads restart: unless-stopped ### END DOWNLOAD ### START APP navidrome: profiles: - app container_name: navidrome image: deluan/navidrome:latest user: 1000:1000 ports: - "4533:4533" volumes: - ${PATH_ETC}/navidrome:/data - /storage/media/Music:/music restart: unless-stopped metube: profiles: - app image: ghcr.io/alexta69/metube container_name: metube ports: - "8081:8081" volumes: - ./bin/metube-options.json:/config/metube-options.json # Use config from repo :) - /storage/metube/downloads:/downloads environment: - YTDL_OPTIONS_FILE=/config/metube-options.json restart: unless-stopped gitea: profiles: - app container_name: gitea image: docker.gitea.com/gitea:1.26.1 ports: - 3000:3000 - 222:22 volumes: - ${PATH_ETC}/gitea-data:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro environment: - USER_UID=1000 - USER_GID=1000 - GITEA__database__DB_TYPE=postgres - GITEA__database__NAME=gitea - GITEA__database__USER=${GITEA_DB_USERNAME} - GITEA__database__PASSWD=${GITEA_DB_PASSWORD} - GITEA__database__HOST=giteadb:5432 restart: unless-stopped depends_on: - giteadb giteadb: profiles: - app container_name: gitea-postgres image: docker.io/library/postgres:14 environment: - POSTGRES_USER=${GITEA_DB_USERNAME} - POSTGRES_PASSWORD=${GITEA_DB_PASSWORD} - POSTGRES_DB=gitea volumes: - ${PATH_ETC}/gitea-postgres:/var/lib/postgresql/data healthcheck: test: - CMD-SHELL - pg_isready start_period: 20s interval: 10s restart: unless-stopped ### END APP