Deluge Torrent
Olyan torrentszolgáltatást szerettem volna a szerverre telepíteni, amelyet valamilyen módon elérhetek távolról, és lehetőleg telefonról is menedzselhető. A Deluge-ban egy remek szoftvert ismertem meg. A szokásos népszerű funkciók megtalálhatók benne (torrent áthelyezés, autoadd, sávszélesség-használat, priorizálás, stb.), ám ezeken felül is tartogat meglepetéseket.
Telepítése és beállítása részletesen megtalálható a hivatalos oldalon. Alapvetően két részre bontható:
-Deluge Daemon
-Deluge WebUI
Hirdetés
A Daemon intézi a torrentek letöltését/visszatöltését, és minden egyéb funkciót. A WebUI egy http felületet ad, amelyhez távolról is lehet kapcsolódni. Ugyanehhez a webfelülethez csatlakozik pl. a TransDrone Android app is, tehát telefonról is kényelmesen irányítható.
Mindkettőhöz 1-1 systemd service-t szükséges készíteni a megfelelő paraméterekkel. A service-ek első indítása után generálódnak a config fájlok. A web.conf-ban a "default daemon" címét érdemes kitölteni (alapból üres, a GUI-ban pedig nem szerepel), mert így a WebUI nem fogja kérdezgetni, hogy hová csatlakozzon, és a háttérben futó service a webfelület megnyitása nélkül is kapcsolatban lesz a daemonnal. Esetemben ez az érték "127.0.0.1:58846" volt, hiszen localhoston van mindkét fél.
Deluge WebUI felület böngészőből
Az igazi ütőkártya azonban a GTK+ felület, (pl. Ubuntu desktopon), melyet be lehet úgy konfigurálni, hogy távoli Deluge Daemon-hoz csatlakozzon. Tehát bármely kliensről elérhető ugyanaz a daemon, amely így egy központi helyre tölt le, és onnan fel. Mindez ugyanolyan felhasználói élményt ad a kliensen, mintha helyi torrent szoftvert használnánk, de valójában egy szerver szolgáltatását vesszük igénybe.
Deluge GTK+ Ubuntu desktopról, távoli kiszolgálóhoz csatlakozva
A Deluge használata során egy érdekes problémába ütköztem: oprendszer indításakor a daemon kicsit tovább „szüttyög” mint kellene, és nem figyel időben a megadott porton. Emiatt a WebUI-nak nincs mihez csatlakoznia (default daemon), és ettől szépen meg is áll a tevékenysége, nem segít rajta egyik systemd service újraindítása sem. Többféleképpen lehetett volna orvosolni ezt a problémát, az én megoldásom egy bash script lett, aminek eredménye a WebUI service-ben az indítás előfeltételeként (ExecStartPre) van jelen. A script a szóban forgó portot vizsgálja, és csak akkor indulhat a WebUI, ha a porton figyel a daemon.
Portfigyelő bash script:
#!/bin/bash
if [ -n "$(ss -ln src :58846 | grep 58846)" ]; then
exit 0
fi
exit 1
Deluge WebUI Systemd Service:
[Unit]
Description=Deluge WebUI
After=network-online.target deluged.service
Requires=deluged.service
#Ha nem indult el, elindítja, ha elindult békén hagyja. Ha nem tudja elindítani, önmaga sem indul el.
[Service]
Type=simple
User=uzsito
Group=uzsito
UMask=002
ExecStartPre=/home/uzsito/.config/deluge/listencheck.sh
#Ha itt exit code 0, a service megy tovább. Ha 1, a service failured state lesz, majd restartol.
ExecStart=/usr/bin/deluge-web -l /var/log/deluge/web.log -L warning
Restart=on-failure
RestartSec=3
[Install]
WantedBy=multi-user.target
UPDATE: Transdrone frissítés, WebUI helyett natív Deluge-daemon elérés
A cikk még nem ért véget, kérlek, lapozz!