Usando o raspberry para administrar os arquivos de torrents.

Um uso que eu acho muito bom no raspberry é para baixar torrents, primeiro porque você deixa de ter que se preocupar com torrents no seu computador, e como ele fica ligado direto e gasta bem menos energia que um notebook por exemplo, é bem interessante.

O meu raspberry usa o Raspbian como sistema operacional, e para administrar os torrents eu uso o Transmission.

Primeiro temos que instalar o Transmission, que é fácil com o apt.

1
2
3
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install transmission-daemon

Aqui, no meu rasp_levins (que é o nome do meu raspberry aqui) tem um hd externo ligado nele, para ele sempre ser montado já na inicialização, eu alterei o arquivo fstab, que monta os drives na inicialização do linux.

proc /proc proc defaults 0 0 PARTUUID=0ce2607c-01 /boot vfat defaults 0 2 PARTUUID=0ce2607c-02 / ext4 defaults,noatime 0 1 # a swapfile is not a swap partition, no line here # use dphys-swapfile swap[on|off] for that # Montagen do hd_externo UUID=38F25F26F25EE7A0 /media/hd_externo ntfs-3g uid=1000,gid=1000,umask=007 0 0

Então como ele é sempre montado no /media/hd_externo, eu criei duas pastas la. Detalhe que ele é formatado como ntfs, para compatibilidade com windows, se precisar, mas eu uso o pacote ntfs-3g para funcionar o sistema de permissões do linux.

1
2
mkdir -p /media/hd_externo/Torrent_completo
mkdir -p /media/hd_externo/Torrent_emprogresso

Outra coisa a se fazer é permitir que o transmission escreva nesses locais, ele roda como o usuario “debian-transmission”, como o hd_externo é do usuario pi e do grupo pi, com permissão 770

drwxrwx--- 1 pi pi 8192 Aug 20 18:21 hd_externo

A gente adiciona o “debian-transmission para conseguir usar o hd_externo

1
sudo usermod -a -G pi debian-transmission

Feito isso, a gente so precisa configurar o Transmission, alterado o arquivo json que fica todas as configurações dele

1
sudo emacs /etc/transmission-daemon/settings.json

O meu ficou assim:

{ "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-url": "http://list.iblocklist.com/?list=ydxerpxkpcfqjaybcssw&fileformat=p2p&archiveformat=gz", "cache-size-mb": 4, "dht-enabled": true, "download-dir": "/media/hd_externo/Torrent_completo", "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/hd_externo/Torrent_completo", "incomplete-dir-enabled": true, "lpd-enabled": false, "max-peers-global": 200, "message-level": 1, "peer-congestion-algorithm": "", "peer-id-ttl-hours": 6, "peer-limit-global": 200, "peer-limit-per-torrent": 50, "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": "{2d15be92741a1b2cd87ef7af39931c1b088499b0A8PoYK7r", "rpc-port": 9091, "rpc-url": "/transmission/", "rpc-username": "rasp_levins", "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 }

Eu alterei o “download-dir”, alterei o “incomplete-dir” e habilitei seu uso com “incomplete-dir-enabled”: true, por padrão ele joga todos os arquivos na mesma pasta, habilitei autenticação em “rpc-enabled”, troquei o “rpc-username” e “rpc-password”, e ao salvar o arquivo e reiniciar o transmission, ele usa um hash na senha, para ninguém ler sua senha nesse arquivo.

Para reiniciar o transmission no terminal eu uso

1
sudo service transmission-daemon reload

E depois disso é so acessar ele pelo ip do seu raspberry na porta 9091, se você não alterou a porta no arquivo acima, aqui em casa eu acesso com o link http://192.168.0.3:9091, ja que eu fixei o ip do rasp_levins.

Espero que ninguém me julgue pelo que estou baixando até o momento desse post heheh, agora outra coisa que eu fiz, é que como já tenho o raspberry rodando um kiosk mode, como visto no tópico passado, eu quis deixar rodando la um pequeno quadradinho para indicar se o torrent está ligado, se tem algo sendo baixado, para saber que estou consumindo banda e algumas estatísticas simples de uso. Isso foi relativamente fácil porque o Transmission tem uma interface php, disponível na página deles, nesse repositório do github, dai podemos usar essa classe para tirar algumas informações e deixar elas aparecendo, no meu caso ficou assim:

Todo o código dessa página do kiosk-mode está no repositório que eu fiz no github, e depois vou explicar melhor o código no README.md do repositório.

Bem é isso ai, estou tomando coragem para voltar a estudar mais seriamente, ainda tenho projeto para terminar de escrever mas o desanimo anda forte, mas vamos levando a vida. Até a Próxima.