20 de abril de 2013

Transmission, torrents no RPi


E o prato de hoje é... tarte!

Vamos aprender a correr um cliente de Transmission no Raspberry Pi, assim podemos comandar remotamente o download de torrents e talvez mais tarde até realizar downloads automáticos por feed RSS, mas isso já foge ao âmbito deste tópico.

Para começar temos que instalar alguns pacotes de transmission com o seguinte comando:

sudo apt-get install transmission-cli transmission-common transmission-daemon


De seguida recomendamos criar 3 pastas dentro de uma pasta maior chamada transmission (ou outro nome, é à escolha).

sudo mkdir ~/transmission/complete
sudo mkdir ~/transmission/downloading
sudo mkdir ~/transmission/torrents

O nome das pastas é facultativo, mas estes são os nomes que recomendamos já que justificam a sua utilidade:
-Em /complete ficam os ficheiros acabados de baixar
-Em /downloading aqueles que ainda estão a ser baixados e
-Em /torrents... bem... os torrents!

A configuração default do transmission implica a atribuição de permissões ao grupo debian-transmission, logo é melhor atribuirmos permissões ao nosso utilizador para a pasta transmission. Em primeiro lugar adicionamo-nos ao grupo debian-transmission com:

sudo usermod -a -G debian-transmission nome_de_utilizador

e de seguida atribuimos só para ter a certeza das ownerships e permissions ao grupo:

sudo chown -R nome_de_utilizador:debian-transmission ~/transmission
sudo chmod -R 755 ~/transmission

Não esquecer de substituir "nome_de_utilizador" pelo nome adequado.

Finalmente é preciso editar um ficheiro de configuração existente na directoria /etc/transmission-daemon/.
Em primeiro lugar é preciso ter a certeza que o transmission está parado, caso contrário o ficheiro de configuração é revertido ao estado original de quando o transmission foi iniciado, quando o transmission parar de novo. Para o parar executamos o seguinte comando:

sudo /etc/init.d/transmission-daemon stop

Agora editamos o ficheiro desejado com o nano:

sudo nano /etc/transmission-daemon/settings.json

Para vermos a descrição do que o que cada propriedade da configuração faz podemos seguir este link https://trac.transmissionbt.com/wiki/EditConfigFiles

O conteúdo exemplo de um ficheiro settings.json está apresentado de seguida:


{
    "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": true,
    "blocklist-updates-enabled": true,
    "blocklist-url": "http://www.example.com/blocklist",
    "cache-size-mb": 4,
    "dht-enabled": true,
    "download-dir": "/media/HardDrive/transmission/completed",
    "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": "/media/HardDrive/transmission/downloading",
    "incomplete-dir-enabled": true,
    "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": "bla1bla2bla3bla4bla5bla6bla7bla8bla9",
    "rpc-port": 9091,
    "rpc-url": "/transmission/",
    "rpc-username": "pi",
    "rpc-whitelist": "127.0.0.1",
    "rpc-whitelist-enabled": false,
    "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,
    "watch-dir": "/media/HardDrive/transmission/torrents",
    "watch-dir-enable": true
}


Aconselhamos alterar os parâmetros:
"download-dir": (directoria de downloads completos)
"incomplete-dir": (directoria de downloads em andamento)
"watch-dir": (directoria de torrents - torrents colocados nesta pasta iniciarão o download automaticamente)
"rpc-username": (username)
"rpc-password": (password - escrever a password naturalmente, será encoded automaticamente, não se preocupem com guardar passes não codificadas)
"rpc-port": (porta desejada caso queiram alterar)

Guardar o ficheiro com CTRL+X e reiniciar o transmission com o comando:

sudo /etc/init.d/transmission-daemon start

Finalmente podem aceder ao endereço do RPi num browser seguido de :porta.
No meu exemplo: http://rubenberry.dnsdynamic.com:9091/

Inserem o nome de utilizador e palavra passe escolhida e a interface é clara o suficiente para dispensar instruções.

É recomendada a utilização de um disco externo para armazenamento massivo para o caso de se querer utilizar o RPi como um media center (lá chegaremos num post futuro) ou se o pacote baixado for demasiado grande para o SD.

Aproveitem para fazer port-forward à porta escolhida e assim passam a poder comandar downloads remotamente o que é fantástico.

Até uma próxima!

Sem comentários: