115 lines
3.3 KiB
YAML
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:
|
|
- "./docker-compose.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 |