Torrentezni akarunk az otthoni szerverünkön, elvégre bármikor szükségünk lehet néhány Linux ISO-ra. Az ilyen műveletekhez VPN-szolgáltatást veszünk igénybe, amelyet a Gluetun VPN-klienssel érünk el, Docker használatával. A választott torrent-kliensünk a Transmission, ehhez a LinuxServer.io projekt Docker-image-ét szemeltük ki.
A compose.yaml
konfig:
services:
gluetun:
image: qmcgaw/gluetun
container_name: gluetun
restart: unless-stopped
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun:/dev/net/tun
environment:
- TZ=${TIMEZONE}
- VPN_SERVICE_PROVIDER=mullvad
- VPN_TYPE=wireguard
- WIREGUARD_PRIVATE_KEY=${MULLVAD_WG_PRIVATE_KEY}
- WIREGUARD_ADDRESSES=${MULLVAD_WG_ADDRESSES}
- SERVER_COUNTRIES=${MULLVAD_SERVER_COUNTRIES}
- OWNED_ONLY=yes
volumes:
- ./gluetun:/gluetun
ports:
# transmission
- ${TRANSMISSION_WEB_UI_PORT}:9091
- 51413:51413/tcp
- 51413:51413/udp
transmission:
image: lscr.io/linuxserver/transmission:latest
container_name: transmission
restart: unless-stopped
network_mode: service:gluetun
user: 1000:1000
environment:
- TZ=${TIMEZONE}
- PUID=1000
- PGID=1000
- USER=${TRANSMISSION_WEB_UI_USER}
- PASS=${TRANSMISSION_WEB_UI_PASS}
volumes:
- ./transmission:/config
- ${BASE_DIR}/servarr/torrents:/servarr/torrents
A változókhoz, titkokhoz a .env
:
TIMEZONE=Europe/Copenhagen
MULLVAD_SERVER_COUNTRIES=Denmark
MULLVAD_WG_ADDRESSES=12.34.56.78/32
MULLVAD_WG_PRIVATE_KEY="ezittkamukulcs"
BASE_DIR=/srv
TRANSMISSION_WEB_UI_USER=myuser
TRANSMISSION_WEB_UI_PASS="ezittkamujelszo"
TRANSMISSION_WEB_UI_PORT=9091
Létrehozzuk a szükséges mappákat, elindítjuk a szolgáltatásokat, majd a http://homeserver:9091
URL-en érjük el a torrent kliensünket.
$ chmod 600 .env
$ mkdir {gluetun,transmission}
$ docker compose up -d
$ docker compose down
A mappabeállításokat módosítanunk kell a transmission/settings.json
fájlban (ezt nem szkripteltem):
{
"download-dir": "/servarr/torrents/complete",
"incomplete-dir": "/servarr/torrents/incomplete"
}
Így tesztelhetjük, hogy működik-e a VPN:
$ docker compose exec transmission sh -c "curl -s ipinfo.io" | jq