Files
Terraform/roles/ind/downloader/docker-compose.yml
2025-03-02 14:08:32 -06:00

115 lines
3.3 KiB
YAML

networks:
media-network:
name: media-network
driver: bridge
ipam:
driver: default
config:
- subnet: ${DOCKER_SUBNET:?err}
gateway: ${DOCKER_GATEWAY:?err}
services:
gluetun:
image: qmcgaw/gluetun:latest
container_name: gluetun
restart: always
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun:/dev/net/tun
ports:
- "8888:8888/tcp" # Gluetun Local Network HTTP proxy
- "8388:8388/tcp" # Gluetun Local Network Shadowsocks
- "8388:8388/udp" # Gluetun Local Network Shadowsocks
- "${RUTORRENT_PORT}:8200" # WebUI Portal: qBittorrent
- "${QBIT_PORT_TCP:?err}:44172/tcp"
- "${QBIT_PORT_UDP:?err}:44172/udp"
env_file:
- ./docker-compose.env
volumes:
- ${FOLDER_FOR_CONFIGS:?err}/gluetun:/gluetun
environment:
- PUID=${PUID:?err}
- PGID=${PGID:?err}
- TZ=${TIMEZONE:?err}
- VPN_SERVICE_PROVIDER=${VPN_SERVICE_PROVIDER:?err}
- OPENVPN_USER=${VPN_USERNAME}
- OPENVPN_PASSWORD=${VPN_PASSWORD}
- SERVER_COUNTRIES=${SERVER_COUNTRIES}
- SERVER_REGION=${SERVER_REGION}
- SERVER_CITIES=${SERVER_CITIES}
- SERVER_HOSTNAMES=${SERVER_HOSTNAMES}
- FIREWALL_OUTBOUND_SUBNETS=${LOCAL_SUBNET:?err}
- OPENVPN_CUSTOM_CONFIG=${OPENVPN_CUSTOM_CONFIG}
- VPN_TYPE=${VPN_TYPE}
- VPN_ENDPOINT_IP=${VPN_ENDPOINT_IP}
- VPN_ENDPOINT_PORT=${VPN_ENDPOINT_PORT}
- WIREGUARD_PUBLIC_KEY=${WIREGUARD_PUBLIC_KEY}
- WIREGUARD_PRIVATE_KEY=${WIREGUARD_PRIVATE_KEY}
- WIREGUARD_PRESHARED_KEY=${WIREGUARD_PRESHARED_KEY}
- WIREGUARD_ADDRESSES=${WIREGUARD_ADDRESSES}
- HTTPPROXY=on
- SHADOWSOCKS=on
# NOTE: Gluetun VPN container MUST ONLY connect to the media-network
networks:
- media-network
geoip-updater:
image: crazymax/geoip-updater:latest
container_name: geoip-updater
networks:
- rtorrent-rutorrent
volumes:
- "./data/geoip:/data"
env_file:
- "./geoip-updater.env"
restart: always
rtorrent-rutorrent:
image: crazymax/rtorrent-rutorrent:latest
container_name: rtorrent-rutorrent
networks:
- media-network
expose:
- "${RT_DHT_PORT}/udp"
- "${XMLRPC_PORT}"
- "${RUTORRENT_PORT}"
- "${WEBDAV_PORT}"
- "${RT_INC_PORT}"
ports:
- target: ${RT_DHT_PORT}
published: ${RT_DHT_PORT}
protocol: udp
- target: ${RUTORRENT_PORT}
published: ${RUTORRENT_PORT}
protocol: tcp
- target: ${WEBDAV_PORT}
published: ${WEBDAV_PORT}
protocol: tcp
- target: ${RT_INC_PORT}
published: ${RT_INC_PORT}
protocol: tcp
env_file:
- "rtorrent-rutorrent.env"
- ".env"
volumes:
- "./data:/data"
- "/data:/downloads"
- "./passwd:/passwd"
ulimits:
nproc: 65535
nofile:
soft: 32000
hard: 40000
restart: always
rtorrent-logs:
image: bash
container_name: rtorrent-rutorrent-logs
command: bash -c 'tail -f /log/*.log'
network_mode: none
depends_on:
- rtorrent-rutorrent
volumes:
- "./data/rtorrent/log:/log"
restart: always