18e468c88f
VPN kill switch via shared network namespace, TorGuard WireGuard through gluetun's custom provider. compose.yaml is the maintained version; compose.personal.yaml is the variant actually running, kept as-is. Verified against gluetun's own settings summary: SOCKSPROXY/SOCKSPROXY_PORT are not real variables and the SOCKS5 server never starts; HTTPPROXY_PORT is deprecated; pyload-ng listens on 8000, not 8880. .gitignore: ignore wg*.conf and *.ovpn everywhere, because add gluetun/compose.yaml gluetun/compose.personal.yaml gluetun/.env.example gluetun/README.md .gitignore/init/** would otherwise commit a WireGuard private key dropped in a service's init/ dir. Un-ignore compose.personal.yaml narrowly, so compose.override.yaml stays out.
61 lines
1.4 KiB
YAML
61 lines
1.4 KiB
YAML
services:
|
|
gluetun:
|
|
image: qmcgaw/gluetun
|
|
container_name: gluetun
|
|
cap_add:
|
|
- NET_ADMIN
|
|
devices:
|
|
- /dev/net/tun:/dev/net/tun
|
|
environment:
|
|
- VPN_SERVICE_PROVIDER=custom
|
|
- VPN_TYPE=wireguard
|
|
|
|
# Enable SOCKS5 proxy
|
|
- SOCKSPROXY=on
|
|
- SOCKSPROXY_PORT=1080
|
|
|
|
# Optional HTTP proxy
|
|
- HTTPPROXY=on
|
|
- HTTPPROXY_PORT=8888
|
|
|
|
ports:
|
|
- "9880:9880/tcp" # Qbittorrent Web UI
|
|
- "8880:8880/tcp" # PyLoad Web-UI
|
|
- "9980:1080/tcp" # Socks Proxy
|
|
- "9998:8888/tcp" # HTTP Proxy
|
|
volumes:
|
|
- /etc/localtime:/etc/localtime:ro
|
|
- ./wg0.conf:/gluetun/wireguard/wg0.conf
|
|
restart: unless-stopped
|
|
|
|
qbittorrent:
|
|
image: linuxserver/qbittorrent:latest
|
|
container_name: qbittorrent
|
|
environment:
|
|
- PUID=${PUID}
|
|
- PGID=${PGID}
|
|
- TZ=${TZ}
|
|
- WEBUI_PORT=9880
|
|
- TORRENTING_PORT=6881
|
|
volumes:
|
|
- ./config:/config
|
|
- '${TEMPDISK}/downloads/torrents:/downloads'
|
|
network_mode: "service:gluetun"
|
|
depends_on:
|
|
- gluetun
|
|
restart: unless-stopped
|
|
|
|
pyload-ng:
|
|
image: lscr.io/linuxserver/pyload-ng:latest
|
|
container_name: pyload-ng
|
|
environment:
|
|
- PUID=${PUID}
|
|
- PGID=${PGID}
|
|
- TZ=${TZ}
|
|
volumes:
|
|
- ./pyloadconfig:/config
|
|
- ${TEMPDISK}/downloads/pyload:/downloads
|
|
network_mode: "service:gluetun"
|
|
depends_on:
|
|
- gluetun
|
|
restart: unless-stopped |