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