services: gluetun: image: qmcgaw/gluetun:latest container_name: gluetun cap_add: - NET_ADMIN devices: - /dev/net/tun:/dev/net/tun sysctls: # Debian 13 + yeni kernel'de gorulen "default route not found" # crash-loop hatasi icin: IPv6'yi bu container icin kapatiyoruz. - net.ipv6.conf.all.disable_ipv6=1 environment: - VPN_SERVICE_PROVIDER=protonvpn - VPN_TYPE=wireguard - WIREGUARD_PRIVATE_KEY=${WIREGUARD_PRIVATE_KEY} - WIREGUARD_ADDRESSES=${WIREGUARD_ADDRESSES} - SERVER_COUNTRIES=${SERVER_COUNTRIES} - FIREWALL_OUTBOUND_SUBNETS=${FIREWALL_OUTBOUND_SUBNETS:-172.16.0.0/12,192.168.0.0/16} - TZ=${TZ} # ProtonVPN'in NAT-PMP port forwarding'i: Gluetun otomatik port # ister, degistiginde asagidaki komutla qBittorrent'in dinleme # portunu ANINDA gunceller - elle hicbir sey yapman gerekmiyor. - VPN_PORT_FORWARDING=on - VPN_PORT_FORWARDING_PROVIDER=protonvpn - VPN_PORT_FORWARDING_UP_COMMAND=/bin/sh -c 'wget -O- -nv --retry-connrefused --post-data "json={\"listen_port\":{{PORTS}}}" http://127.0.0.1:61235/api/v2/app/setPreferences' ports: # Sadece WebUI'yi host'a aciyoruz. Torrent peer portu artik ProtonVPN'in # NAT-PMP ile atadigi DINAMIK port - bu, VPN tunelinin (tun0) uzerinden # geliyor, Docker'in host network'unden degil, o yuzden burada ayrica # bir port yayinlamaya gerek yok (Gluetun kendi firewall'unda otomatik # izin veriyor). - 61235:61235 volumes: - ${APP_DATA_DIR}/data/gluetun:/gluetun restart: unless-stopped x-runtipi: is_main: true internal_port: 61235 qbittorrent: image: lscr.io/linuxserver/qbittorrent:latest container_name: qbittorrent # Kendi agi yok, gluetun'un ag namespace'ini paylasiyor - tum # trafik VPN tunelinden geciyor (kill switch qbittorrent'i de kapsar). network_mode: "service:gluetun" depends_on: gluetun: condition: service_healthy environment: - PUID=1000 - PGID=1000 - TZ=${TZ} - WEBUI_PORT=61235 # Baslangic degeri - Gluetun VPN_PORT_FORWARDING_UP_COMMAND ile # baglanir baglanmaz gercek atanan portla otomatik degistiriyor. - TORRENTING_PORT=61234 volumes: - ${APP_DATA_DIR}/data/config:/config - ${APP_DATA_DIR}/data/downloads:/downloads restart: unless-stopped x-runtipi: schema_version: 2