Raspberry Pi – torrentowy serwer – część 2, czyli treść właściwa
Witam ponownie - część druga - bardziej treściwa niż poprzednia.
Dyski USB podłączone do Raspberry Pi działają? Mają się dobrze? Prędkości po sieci pewnie tragiczne, ale cóż poradzić. Na to pomysłu wciąż nie mam, chyba że inwestujemy w jakiś dobre pudełko NAS, ale coś czuję że przy moich obecnych i przyszłych wydatkach to zupełnie nie przejdzie.
No chyba, że wygram na loterii :)
Wracając do Raspberry Pi jako serwera dla torrentów. Jeśli już mamy gdzie przechowywać te nasze wszystkie linuxy, to może zainstalujemy w końcu i serwer?
Lista wymagań
Będziemy potrzebować Raspberry Pi z zainstalowanym system Raspbian (w moim przypadku dystrybucja wheezy), statyczny adres IP w sieci LAN i jeśli chcemy mieć dostęp z zewnątrz (np. z pracy, ze szkoły, z internetu mobilnego) to warto byłoby mieć stały zewnętrzny adres IP lub chociaż dynamiczną nazwę domeny. Większość (jak nie wszystko) wykonywaliśmy już w poprzedniej części poradnika Raspberry Pi jako serwer VPN już działa? (link tutaj). oraz w poprzedniej części Raspberry Pi jako serwer torrentów (część 1)
Instalacja deluge
Instalujemy daemona Deluge wraz z interfejsem webowym:
W konsoli:
sudo apt-get install deluged deluge-webui
Następnie uruchamiamy program deluged oraz zamykamy go, aby móc edytować plik konfiguracyjny (uruchomienie programu tworzy plik konfiguracyjny, ale edytowanie go w trakcie pracy programu mija się z celem, stąd musimy program zamknąć)
deluged
pkill deluged
Następnie musimy dodać "użytkownika" do konfiguracji serwera deluge:
sudo nano ~/.config/deluge/auth
W otwartym pliku wpisujemy nazwę użytkownika: hasło oraz poziom użytkownika.
Na początek polecam skorzystać z praw admina (poziom 10). Poszczególne poziomy (np. tylko dla ograniczonych użytkowników) możemy ustawić później.
Przykładowy wpis:
Uwaga: Należy się upewnić, że nie przeskoczyliśmy do "następnej" linii po wpisaniu tych danych. Deluge ma trochę bugów i jednym z nich jest błąd odczytywania pustej linii z tego pliku. Podobno poprawili to w którejś wersji ale nie jestem 100% pewny.
Przydałoby się też dorzucić skrypt autostartu:
wget http://quidsup.net/sh/init-deluge.sh
nano init-deluge.sh
W otwartym pliku należy zmienić nazwę użytkownika w 16‑tej linii:
Wychodzimy z edytora za pomocą CTRL+X i potwierdzamy zapis pliku.
Kopia/treść pliku init-deluge.sh (na wypadek gdyby link powyżej był nieaktywny):
#! /bin/sh ### BEGIN INIT INFO # Provides: deluged # Required-Start: $network $remote_fs $syslog # Required-Stop: $network $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start deluged at boot time # Description: Start DelugeD and Deluge-Web. ### END INIT INFO #Author QuidsUp #Last Modified 26 Jan 2013 #Required -- To be changed! USER=username #Set Username here. PORT=8112 #Set port number for web interface (default 8112) PIDFileDeluge=/var/run/deluged.pid PIDFileWeb=/var/run/deluge-web.pid case "$1" in start) echo "Starting Deluge" start-stop-daemon --start --chuid $USER --name deluged --pidfile $PIDFileDeluge \ --background --make-pidfile --exec /usr/bin/deluged -- --do-not-daemonize start-stop-daemon --start --chuid $USER --name deluge-web --pidfile $PIDFileWeb \ --background --make-pidfile --exec /usr/bin/deluge-web -- --port $PORT ;; stop) echo "Stopping Deluge" start-stop-daemon --stop --chuid $USER --name deluged --pidfile $PIDFileDeluge start-stop-daemon --stop --chuid $USER --name deluge-web --pidfile $PIDFileWeb ;; restart|force-reload) echo "Stopping Deluge for Restart" start-stop-daemon --stop --chuid $USER --name deluged --pidfile $PIDFileDeluge start-stop-daemon --stop --chuid $USER --name deluge-web --pidfile $PIDFileWeb sleep 5s echo "Restarting Deluge" start-stop-daemon --start --chuid $USER --name deluged --pidfile $PIDFileDeluge \ --background --make-pidfile --exec /usr/bin/deluged -- --do-not-daemonize start-stop-daemon --start --chuid $USER --name deluge-web --pidfile $PIDFileWeb \ --background --make-pidfile --exec /usr/bin/deluge-web -- --port $PORT ;; status) echo "Checking Status of Deluge" if (test -f $PIDFileDeluge); then PIDVal=$(head -1 $PIDFileDeluge) if [ -e /proc/$PIDVal ]; then echo -n "DelugeD Running on Process ID: " echo $PIDVal echo ps -H $PIDVal else echo "DelugeD Not Running but PID File Exists" exit 1 fi else echo "No PID File found for DelugeD" fi ;; *) echo "Usage: deluge {start|stop|restart|force-reload|status}" >&2 exit 1 ;; esac exit 0
------------------------------------------------------------
Następnie jedna komenda po drugiej, każda zatwierdzana enterem:
sudo su
mv init-deluge.sh /etc/init.d
cd /etc/init.d
mv init-deluge.sh deluge
chmod 755 deluge
update-rc.d deluge defaults
service deluge start
Podstawowy serwer powinien teraz już działać.
Możemy sprawdzić poprzez komendę:
sudo service --status-all
lub otworzyć deluge z linii poleceń za pomocą komendy:
deluge-console
Na liście usług powinniśmy odnaleźć deluge z symbolem plusika jeśli sprawdzaliśmy usługi za pomocą service status-all
Polecam dodać możliwość zdalnego zalogowania się poprzez zmianę konfiguracji: W przeglądarce wpisujemy adres IP Raspberry na porcie 8112
Domyślne hasło to deluge Po zalogowaniu się otwieramy ustawienia:
aby w zakładce "Inne" zaznaczyć "Allow remote connections".
W ten sposób będziemy mogli dodawać źródła czy łączyć się z serwerem z zewnętrznych źródeł. Jak już tu jesteśmy to polecam zmienić hasło do interfejsu webowego poprzez zakładkę "Interface"
Restartujemy serwer deluge z okna terminalu:
sudo service deluge restart
Instalujemy klienta w systemie Windows
Ze strony http://deluge-torrent.org/ pobieramy klienta dla systemów Windows.
Po instalacji uruchamiamy program i od razu otwieramy ustawienia (Edit > Preferences > Interface), odznaczamy "Classic Mode".
Zamykamy i uruchamiamy program ponownie. W oknie wpisujemy adres naszego raspberry pi oraz nazwę i hasło użytkownika.
Jeśli wszystko działa super poprawnie, polecam na chwilę wyłączyć deluge na raspberry pi i dodatkowo edytować jeden plik, aby interfejs webowy automatycznie łączył się do serwera deluge w przypadku jeśli restartujemy raspberry pi.
sudo service deluge stop
pkill deluged
sudo nano ~/.config/deluge/web.conf
W linii default hostname należy wpisać po prostu IP localhosta (127.0.0.1) aby webowy interfejs domyślnie podłączał się pod serwer deluge pracujący na tej samej maszynie.
Zapisujemy CTRL+X i odpalamy ponownie serwer:
sudo service deluge start
No teoretycznie serwer już działa ale pozostaje jeden malutki problem. Domyślne ustawienia serwera deluge wskazują miejsce zapisu plików na kartę SD naszego Raspberry. Ja raczej polecam zapisywać to co ściągamy na podłączonym dysku twardym (po to przecież podłączaliśmy te wszystkie dyski co nie?).
Deluge domyślnie używa tylko trzech katalogów jednakże pełna opcja to 4 foldery/katalogi na:
pliki pobierane pliki pobrane katalog obserwujący pliki backup
Jeśli mamy nasz dysk dostępny w /media/Samsung to za pomocą komendy mkdir tworzymy wystarczającą ilość podkatalogów które ustawimy w konfiguracji deluge
sudo mkdir /media/Samsung/Deluge/pobrane
sudo mkdir /media/Samsung/Deluge/pobierane
sudo mkdir /media/Samsung/Deluge/obserwowane
sudo mkdir /media/Samsung/Deluge/kopia
Następnie otwieramy klienta i w ustawieniach (Edit>Preferences>Downloads) wpisujemy po kolei te same foldery jakie przed chwilą stworzyliśmy.
Na koniec pozostaje nam jeszcze zainstalować klienta na Androidzie
Ze sklepu Play Store pobieramy Transdrone
Po uruchomieniu wchodzimy w kreatora dodawania serwera.
Wybieramy nowy serwer (Add server):
Następnie, zwykły własny serwer (pierwsza opcja, custom server)
Wybieramy typ serwera: Deluge 1.2+
Po czym wypełniamy następujące pola. Nazwa serwera: Wedle własnego uznania Adres IP: Wpisujemy adres IP Raspberry Pi Nazwa użytkownika i hasło (to samo co podawaliśmy w pliku "auth.conf") Hasło deluge web: czyli takie jak ustawiliśmy przy konfiguracji interfejsu webowego
Jeśli wszystko zrobiliśmy poprawnie to na telefonie możemy odwiedzić np. Ubuntu - Pobieranie Alternatywne i wybrać plik torrentowy
W Transdrone pojawi się stan pobierania.
I tak prawdę mówiąc to wszystko. Oczywiście polecam przekierować sobie na routerze porty 58846 oraz 8112 abyśmy mogli też korzystać z serwera będąc z dala od domu.
Coś jeszcze? Tak - jeśli mamy plik o rozszerzeniu .torrent - to można taki plik umieścić w katalogu /media/Samsung/obserwowane a Deluge automatycznie doda plik do pobierania
Gdybyśmy chcieli pobawić się w dodatkowe funkcje lub sprawdzić jak rzeczy wyglądają z poziomu konsoli, to w terminalu wpisujemu deluge-console
W razie pytań lub gdyby ktoś miał problemy to zapraszam to kontaktu.
Oryginalna instrukcja jak to zrobić oraz źródła, bez których nigdy bym nic nie zrobił: Dostępna tutaj filmik na youtubie (wymagana znajomość języka angielskiego