lunedì 9 dicembre 2013

Torrent su Raspberry

Su richiesta di un amico ho provato a creare una torrent machine basata su Raspberry (ovviamente i concetti ed i comandi sono applicabili su qualsiasi Linux Box)


(il sistema e' nato per funzionare headless ovvero senza tastiera, mouse e monitor ma per le fasi di sviluppo ho usato un po' di aiuto)

Ci sono molti tutorial su Internet e questa cerca di essere il riassunto e la via piu' breve per mettere in funzione questa impostazione

Si parte da una installazione pulita di Raspbian (niente Noobs che ruba spazio per nulla sulla SD) su una schedina da almeno 8 Giga in modo da lasciare spazio ai dati (non e' infatti previsto l'utilizzo di un disco esterno)

Si installa quindi transmission-daemon
apt-get install transmission-daemon

si stoppa il servizio
/etc/init.d/transmission-deamon stop

e si edita il file /etc/transmission-deamon/settings.json
(sono evidenziate in giallo le modifiche. In pratica si cambia la username e la password del servizio, la directory dove sono salvati file viene spostata nella dir torrent della home dell'utente pi in modo da semplificare il recupero in sftp e si abilita le connessioni esterne da qualsiasi host)
----------------------------------
{
    "alt-speed-down": 50,
    "alt-speed-enabled": false,
    "alt-speed-time-begin": 540,
    "alt-speed-time-day": 127,
    "alt-speed-time-enabled": false,
    "alt-speed-time-end": 1020,
    "alt-speed-up": 50,
    "bind-address-ipv4": "0.0.0.0",
    "bind-address-ipv6": "::",
    "blocklist-enabled": false,
    "blocklist-url": "http://www.example.com/blocklist",
    "cache-size-mb": 4,
    "dht-enabled": true,
    "download-dir": "/home/pi/torrent",
    "download-limit": 100,
    "download-limit-enabled": 0,
    "download-queue-enabled": true,
    "download-queue-size": 5,
    "encryption": 1,
    "idle-seeding-limit": 30,
    "idle-seeding-limit-enabled": false,
    "incomplete-dir": "/home/pi/torrent",
    "incomplete-dir-enabled": false,
    "lpd-enabled": false,
    "max-peers-global": 200,
    "message-level": 2,
    "peer-congestion-algorithm": "",
    "peer-limit-global": 240,
    "peer-limit-per-torrent": 60,
    "peer-port": 51413,
    "peer-port-random-high": 65535,
    "peer-port-random-low": 49152,
    "peer-port-random-on-start": false,
    "peer-socket-tos": "default",
    "pex-enabled": true,
    "port-forwarding-enabled": false,
    "preallocation": 1,
    "prefetch-enabled": 1,
    "queue-stalled-enabled": true,
    "queue-stalled-minutes": 30,
    "ratio-limit": 2,
    "ratio-limit-enabled": false,
    "rename-partial-files": true,
    "rpc-authentication-required": true,
    "rpc-bind-address": "0.0.0.0",
    "rpc-enabled": true,
    "rpc-password": "{efaed872245cfe54c92e668423872cf02458117bTl0EeuAR",
    "rpc-port": 9091,
    "rpc-url": "/transmission/",
    "rpc-username": "kappadocio",
    "rpc-whitelist": "*.*.*.*",
    "rpc-whitelist-enabled": true,
    "scrape-paused-torrents-enabled": true,
    "script-torrent-done-enabled": false,
    "script-torrent-done-filename": "",
    "seed-queue-enabled": false,
    "seed-queue-size": 10,
    "speed-limit-down": 100,
    "speed-limit-down-enabled": false,
    "speed-limit-up": 100,
    "speed-limit-up-enabled": false,
    "start-added-torrents": true,
    "trash-original-torrent-files": false,
    "umask": 18,
    "upload-limit": 100,
    "upload-limit-enabled": 0,
    "upload-slots-per-torrent": 14,
    "utp-enabled": true


}
----------------------------------

si riavvia il servizio
/etc/init.d/transmission-deamon start

a questo punto si sono due modi di interagire con il demone
1) via Browser
si puo' comandare lo scaricamento dei torrent indirizzando il browser all'indirizzo del server sulla porta 9091
per esempio
http://192.168.0.101:9091
si effettua il login e si effettua l'upload del file torrent o della url (per esempio del magnetic link)

Inserire un torrent

File in download
Mi ero scordato che la directory in uso al demone deve essere scrivibile al servizio, altrimenti si genera questo errore. Basta, da root, un chmod 777 /home/pi/torrent (non ci sono problemi di sicurezza sulla macchina)

Errore se la directory non e' abilitata in scrittura



1) via Cellulare
Ci sono applicazioni Android che permettono di comandare Transmission via cellulare. La piu' semplice e gratuita e' Remote Transmission, piuttosto banale nell'utilizzo

Login al server

Schermata di download
Impressioni di uso
Il sistema e' semplice e funzionale ma necessita comunque di un po' di amministrazione. Per errore ho tentato il download di un file enorme che ha saturato subito la SD Card. Risultato file system saturato e sistema che non si e' avviato al reboot (ho dovuto ricreare la torrent machine da zero)
L'interazione da telefono e' pessima ed al massimo l'applicazione Android puo' essere utile per monitorare come stanno andando le cose ma non per editare la lista dei download

ps. i file impiegati per il download sono stati cancellati subito dopo la creazione degli screenshot
pss : il case di plastica standard della Raspberry e' veramente orribile, si chiude con difficolta' e non permette il passaggio del flat cable delle GPIO