qbit + VPN
This commit is contained in:
@@ -0,0 +1,51 @@
|
|||||||
|
{
|
||||||
|
"name": "Gluetun + qBittorrent (Mullvad VPN)",
|
||||||
|
"id": "gluetun-qbittorrent",
|
||||||
|
"available": true,
|
||||||
|
"short_desc": "Mullvad'a WireGuard ile baglanan Gluetun VPN gecidi + arkasinda calisan qBittorrent. Kill-switch dahil, tum torrent trafigi VPN'den geser.",
|
||||||
|
"author": "y1lm0z",
|
||||||
|
"port": 61235,
|
||||||
|
"categories": ["network", "utilities"],
|
||||||
|
"description": "Tek dosyada iki container: Gluetun, Mullvad'a WireGuard ile baglanip kill-switch (VPN kopunca internet de kesilir) sagliyor. qBittorrent ise kendi agini kullanmiyor, Gluetun'un ag namespace'ini 'network_mode: service:gluetun' ile paylasiyor - bu sayede tum torrent trafigi zorunlu olarak VPN tunelinden geciyor. qBittorrent, Gluetun VPN'e baglanip saglikli olana kadar baslamiyor (depends_on + healthcheck). WebUI'ye Gluetun'un actigi 61235 portundan erisiliyor.",
|
||||||
|
"tipi_version": 1,
|
||||||
|
"version": "latest",
|
||||||
|
"source": "https://github.com/qdm12/gluetun",
|
||||||
|
"website": "https://github.com/qdm12/gluetun-wiki",
|
||||||
|
"exposable": true,
|
||||||
|
"force_expose": false,
|
||||||
|
"https": false,
|
||||||
|
"no_gui": false,
|
||||||
|
"supported_architectures": ["arm64", "amd64"],
|
||||||
|
"form_fields": [
|
||||||
|
{
|
||||||
|
"type": "password",
|
||||||
|
"label": "WireGuard Private Key",
|
||||||
|
"hint": "Mullvad hesabinda 'WireGuard configuration' sayfasindan indirdigin .conf dosyasindaki PrivateKey degeri",
|
||||||
|
"required": true,
|
||||||
|
"env_variable": "WIREGUARD_PRIVATE_KEY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"label": "WireGuard Addresses",
|
||||||
|
"hint": "Ayni .conf dosyasindaki Address alani, IPv4 kismi (orn. 10.64.222.10/32)",
|
||||||
|
"placeholder": "10.64.222.10/32",
|
||||||
|
"required": true,
|
||||||
|
"env_variable": "WIREGUARD_ADDRESSES"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"label": "Sunucu Sehirleri (opsiyonel)",
|
||||||
|
"hint": "Virgulle ayrilmis Mullvad sehir adlari, orn: Bucharest,Amsterdam. Bos birakirsan rastgele sunucu secilir.",
|
||||||
|
"required": false,
|
||||||
|
"env_variable": "SERVER_CITIES"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"label": "Firewall Outbound Subnets",
|
||||||
|
"hint": "Docker ve LAN aginin WebUI'ye erisebilmesi icin izinli subnetler.",
|
||||||
|
"default": "172.16.0.0/12,192.168.0.0/16,10.0.0.0/8",
|
||||||
|
"required": false,
|
||||||
|
"env_variable": "FIREWALL_OUTBOUND_SUBNETS"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
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=mullvad
|
||||||
|
- VPN_TYPE=wireguard
|
||||||
|
- WIREGUARD_PRIVATE_KEY=${WIREGUARD_PRIVATE_KEY}
|
||||||
|
- WIREGUARD_ADDRESSES=${WIREGUARD_ADDRESSES}
|
||||||
|
- SERVER_CITIES=${SERVER_CITIES}
|
||||||
|
- FIREWALL_OUTBOUND_SUBNETS=${FIREWALL_OUTBOUND_SUBNETS:-172.16.0.0/12,192.168.0.0/16,10.0.0.0/8}
|
||||||
|
- TZ=${TZ}
|
||||||
|
ports:
|
||||||
|
# qBittorrent WebUI - host:container, ikisi ayni numara (61235)
|
||||||
|
- 61235:61235
|
||||||
|
# qBittorrent torrent peer portu (TCP+UDP), asagidaki
|
||||||
|
# TORRENTING_PORT ile ayni olmak zorunda
|
||||||
|
- 61234:61234
|
||||||
|
- 61234:61234/udp
|
||||||
|
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
|
||||||
|
- TORRENTING_PORT=61234
|
||||||
|
volumes:
|
||||||
|
- ${APP_DATA_DIR}/data/config:/config
|
||||||
|
- ${APP_DATA_DIR}/data/downloads:/downloads
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
x-runtipi:
|
||||||
|
schema_version: 2
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
# Gluetun + qBittorrent (Mullvad VPN)
|
||||||
|
|
||||||
|
Tek uygulama, iki container: **Gluetun** (VPN geçidi) ve **qBittorrent** (torrent istemcisi). qBittorrent kendi ağını kullanmıyor, `network_mode: service:gluetun` ile Gluetun'un ağ namespace'ini paylaşıyor — bu yüzden tüm torrent trafiği zorunlu olarak Mullvad tüneli üzerinden geçiyor. VPN koparsa qBittorrent'in de interneti anında kesilir (kill switch).
|
||||||
|
|
||||||
|
## Kurulum
|
||||||
|
|
||||||
|
1. Mullvad hesabı sayfasından **WireGuard configuration** oluştur, indirilen `.conf` dosyasını aç.
|
||||||
|
2. `PrivateKey` değerini **WireGuard Private Key** alanına, `Address` değerinin IPv4 kısmını **WireGuard Addresses** alanına yapıştır.
|
||||||
|
3. İstersen **Sunucu Şehirleri** alanına bir şehir yaz (örn. `Bucharest`), boş bırakırsan rastgele seçilir.
|
||||||
|
4. Kur, başlat. Gluetun VPN'e bağlanana kadar qBittorrent otomatik bekliyor (`depends_on` + healthcheck), o yüzden ilk açılışta birkaç saniye WebUI'ye erişemeyebilirsin, normal.
|
||||||
|
|
||||||
|
## Erişim
|
||||||
|
|
||||||
|
```
|
||||||
|
http://sunucu-ip:61235
|
||||||
|
```
|
||||||
|
|
||||||
|
İlk girişte qBittorrent geçici bir şifre üretir, container loglarından (`docker logs qbittorrent`) görebilirsin.
|
||||||
|
|
||||||
|
## Portlar
|
||||||
|
|
||||||
|
- **61235** → WebUI (host ve container tarafında aynı numara)
|
||||||
|
- **61234** (TCP+UDP) → torrent peer portu
|
||||||
|
|
||||||
|
Bu iki port bilinçli olarak yaygın kullanılan varsayılanlar (8080, 6881, 51413, 58846 gibi) ve Linux'un otomatik/ephemeral port aralığı (`32768-60999`) dışında seçildi — kalabalık bir sunucuda başka uygulamalarla çakışma ihtimalini azaltmak için.
|
||||||
|
|
||||||
|
## Sonarr / Radarr entegrasyonu
|
||||||
|
|
||||||
|
İndirme istemcisi olarak eklerken host adresi bu sunucu, port **61235**. `/downloads` klasörünü Sonarr/Radarr ile aynı host yoluyla paylaşırsan hardlink taşıma sorunsuz çalışır.
|
||||||
|
|
||||||
|
## İleride başka bir şeyi VPN'lemek istersen
|
||||||
|
|
||||||
|
Aynı `docker-compose.yml` dosyasına üçüncü bir servis ekleyip ona da `network_mode: "service:gluetun"` yazman yeterli — aynı dosyada oldukları için ekstra container ismi/proje eşleştirmesi gerekmiyor. O servisin ihtiyaç duyduğu portu **gluetun** servisinin `ports:` listesine eklemeyi unutma (ağı gerçekten sahiplenen o olduğu için port yayınlamayı da o yapmak zorunda).
|
||||||
Reference in New Issue
Block a user