Bon alors j’ai eu un weekend un peu chargé, du coup je ne m’en occupe que maintenant, mais voilà une petit tuto pour faire du Pi un serveur de DL (SABNZBD+Sickbeard) doublé d’un media center (XBMC)
1. La distrib’
Pour commencer, il faut choisir une distribution. J’ai préféré démarrer d’une distribution media center et d’installer sickbeard/Sab dessus. Mon choix s’est porté sur Xbian, que j’ai trouvé plus fluide que OpenElec et surtout, supportant le SSH (Oui parce que vous allez voir, on va taper de la ligne de code )
Ca se télécharge ici : et apparemment maintenant il y a un chouette installer pour Windows (Pour Linux et Mac, il faudra passer par une méthode manuelle, voir l’onglet Manual sur le lien)
2. Démarrer sur de bonnes bases
Maintenant que Xbian est installé sur votre SD et la SD insérée dans votre framboise, il va falloir démarrer la bête. Ensuite, une fois XBMC affiché, allez dans System > System Info > Network.
(Le mien est sur 192.168.2.17)
Profitez-en pour modifier le port de l’interface web afin qu’il n’y ait pas de conflit avec les autres applis, perso j’ai mis 8082. Ca se passe dans System > Settings > Service > Web Server si mes souvenirs sont bons.
Retournez à votre PC préféré, téléchargez et lancez Putty : et indiquez l’adresse de votre Raspberry puis cliquez sur Open.
On va vous demander un login (xbian) et un mot de passe (raspberry). Le même mot de passe sera à retaper si demandé par le système en cas d’utilisation de la commande sudo (Oui je sais, c’est le B.A-BA mais on ne sait jamais )
Vous pourrez le changer à l’aide de la commande passwd :
sudo passwd xbian
De même attendez à chaque fois que le système vous rende la main avant de taper d’autres commandes.
Bref, on arrive donc sur le menu de config de Xbian
Vous pourrez modifier deux ou trois bidules ici, notamment dans settings qui vous permettra de configurer l’adresse IP de la bestiole (Networking > Lan > Fixed) ou l’heure système (System > Timezone) même si XBMC s’en tape et ne prend que ses propres paramètres horaires ^^
Sélectionnez ensuite Return jusqu’à ce que vous ayez accès à l’invite de commande.
On va maintenant procéder à la mise à jour du système histoire d’être tranquille de ce côté-là :
sudo apt-get update
sudo apt-get -y upgrade
C’est le firmware qui se voit ensuite updaté, à l’aide de Git que nous allons donc installer :
sudo apt-get -y install git
On va pouvoir faire effectivement l’update du firmware :
git clone git://github.com/Hexxeh/rpi-update.git
cd rpi-update
sudo ./rpi-update
Puis rebooter la bête :
sudo reboot
3. Installer SABnzbd et Sickbeard
Hola, hola, pas tout de suite, il y a un ou deux prérequis, genre python, ou par2 pour vérifier les fichiers de newsgroup. On va donc les installer en preum’s :
sudo apt-get -y install python2.6 python-cheetah python-openssl par2
Ensuite, SABnzbd étant relativement chafouin sur la version de rar qu’il peut utiliser, on va installer une version précise (La version de raspbian, en fait)
sudo sh -c "echo \"deb-src http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi\" >> /etc/apt/sources.list"
sudo apt-get update
sudo apt-get -y build-dep unrar-nonfree
sudo apt-get source -b unrar-nonfree
sudo dpkg -i unrar*.deb
On va enfin créer un groupe d’utilisateurs afin de gérer facilement les permissions sur les différents dossiers créés :
sudo addgroup nzb
3.1 SABnzbd
Là, on rentre dans le vif du sujet, c’est parti pour l’install de SAB !
Histoire d’être sûr d’utiliser la dernière version (0.7.7 ce soir) on va aller récupérer l’adresse du fichier sur SourceForge
Cliquez ensuite sur le dossier correspondant à la dernière version puis faites un clic droit sur le fichier finissant par src.tar.gz (GZ !). Sélectionnez copier l’adresse du lien puis entrez les commandes suivantes :
wget http://sourceforge.net/projects/sabnzbdplus/files/sabnzbdplus/0.7.7/SABnzbd-0.7.7-src.tar.gz
Par défaut, SourceForge rajoute /download à la fin de l’url, pensez bien à le supprimer, ou wget vous téléchargera une bête page HTML.
On va ensuite procéder à l’installation de SABnzbd à proprement parler :
tar xzf SABnzbd-0.7.7-src.tar.gz
sudo mv SABnzbd-0.7.7 /usr/local/sabnzbd
Pensez à changer le numéro de version
On créé ensuite un utilisateur à qui on va donner les droits d’accès aux fichiers de config (c’est mieux) et un dossier pour les données :
sudo useradd --system --user-group --no-create-home --groups nzb sabnzbd
sudo chown -R sabnzbd:nzb /usr/local/sabnzbd
sudo mkdir /var/sabnzbd
sudo chown sabnzbd:nzb /var/sabnzbd
Tout devrait fonctionner, on va donc tester tout ça et créer les fichiers de config (N’oubliez pas de changer l’IP )
sudo su sabnzbd -c "/usr/local/sabnzbd/SABnzbd.py -f /var/sabnzbd -s 192.168.2.17:8080"
Vous pouvez ensuite taper http://192.168.2.17:8080 dans votre navigateur préféré et admirer l’interface de SABnzbd qui s’offre à vous. Je vous conseille d’ailleurs de suivre l’excellent tuto de Coldo pour la config de Sick et Sab, que vous trouverez ici : Les newsgroups pour les nuls : SABnzbd+, Sickbeard & CouchPotato - Software - GeekZone
Les plus courageux pourront rendre le serveur web accessible depuis l’extérieur de leur réseau, mais ce n’est pas le sujet de ce tuto (excuse également appelée « J’ai la flemme » ^^)
Dernière remarque, le Pi n’étant pas une bête de course, limitez le nombre de connexions. Même si votre provider vous permet 120 connexions, une limite haute à 5 me parait plus sage (Vu la consommation ridicule du machin, de toutes façons, c’est pas hyper grave si il doit DL un peu plus longtemps )
Bref, tuons donc le processus afin de s’occuper de l’installation de Sickbeard, avec un petit CTRL+C des familles.
3.2 Sickbeard
L’installation ressemble étrangement à celle de SABnzbd, avec création d’utilisateur, changement de droits, etc. Le téléchargement de l’appli est par contre plus aisée puisqu’on a recours à un simple Git :
sudo useradd --system --user-group --no-create-home –groups nzb sickbeard
git clone git://github.com/midgetspy/Sick-Beard.git
sudo mv Sick-Beard /usr/local/sickbeard
sudo chown -R sickbeard:nzb /usr/local/sickbeard
sudo chmod ug+rw /usr/local/sickbeard/autoProcessTV/
sudo mkdir /var/sickbeard
sudo chown sickbeard:nzb /var/sickbeard
cd /usr/local/sickbeard/autoProcessTV
sudo mv autoProcessTV.cfg.sample autoProcessTV.cfg
On lance le serveur :
sudo su sickbeard -c "/usr/local/sickbeard/SickBeard.py --datadir /var/sickbeard --config /var/sickbeard/sickbeard.ini"
Et sous vos yeux ébahis, l’entrée de l’url http://192.168.2.17:8081 affiche l’interface du logiciel barbu.
4. Les démarrages auto
Oui parce que c’est un peu relou de devoir se connecter au Pi à chaque fois qu’on veut lancer le serveur. On va donc se faire 2 petits scripts afin de démarrer les services automatiquement.
Pour SAB :
sudo nano /etc/init.d/sabnzbd
Et on colle dedans le script suivant :
[CODE]#!/bin/sh
BEGIN INIT INFO
Provides: SABnzbd
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 SABnzd at boot time
Description: Start SABnzbd.
END INIT INFO
case « $1 » in
start)
echo « Starting SABnzbd. »
/usr/bin/sudo -u sabnzbd -H /usr/local/sabnzbd/SABnzbd.py -d -f /var/sabnzbd/sabnzbd.ini
;;
stop)
echo « Shutting down SABnzbd. »
p=ps aux | grep -v grep | grep SABnzbd.py | tr -s \ | cut -d ' ' -f 2
if [ -n « $p » ]; then
kill -2 $p > /dev/null
while ps -p $p > /dev/null; do sleep 1; done
fi
;;
*)
echo « Usage: $0 {start|stop} »
exit 1
esac
exit 0[/CODE]
Sauvegardez avec CTRL+O et fermez avec CTRL+X
On donne ensuite les droits, on précise qu’il faut lancer le script au démarrage et on démarre le service :
sudo chmod 755 /etc/init.d/sabnzbd
sudo update-rc.d sabnzbd defaults
sudo /etc/init.d/sabnzbd start
Même chose pour SickBeard :
sudo nano /etc/init.d/sickbeard
Puis le script lui-même
[CODE]#!/bin/sh
BEGIN INIT INFO
Provides: SickBeard
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 SickBeard at boot time
Description: Start SickBeard.
END INIT INFO
case « $1 » in
start)
echo « Starting SickBeard. »
/usr/bin/sudo -u sickbeard -H /usr/local/sickbeard/SickBeard.py -d --datadir /var/sickbeard --config /var/sickbeard/sickbeard.ini
;;
stop)
echo « Shutting down SickBeard. »
p=ps aux | grep -v grep | grep SickBeard.py | tr -s \ | cut -d ' ' -f 2
if [ -n « $p » ]; then
sb_api_key=grep -m 1 api_key ${sb_config} | cut -d ' ' -f 3
;
sb_port=grep -m 1 web_port ${sb_config} | cut -d ' ' -f 3
;
wget -q --delete-after http://localhost:${s…cmd=sb.shutdown
while ps -p $p > /dev/null; do sleep 1; done
fi
;;
*)
echo « Usage: $0 {start|stop} »
exit 1
esac
exit 0[/CODE]
Les droits et le démarrage auto :
sudo chmod 755 /etc/init.d/sickbeard
sudo update-rc.d sickbeard defaults
sudo /etc/init.d/sickbeard start
5. Le stockage
Différentes écoles, ceux qui ont un NAS et ceux qui creusent et ceux qui ont un périphérique USB branché sur le Pi.
On montera de toutes façons le support de stockage dans le dossier /var/multimedia, donc autant le créer tout de suite :
sudo mkdir -p /var/multimedia/
5.1 Avec un NAS
C’est le plus simple, même si ça doit dépendre des NAS. Avec le mien, configuré en CIFS, ça donne ça :
On ouvre le fichier des montages automatiques :
sudo nano /etc/fstab
On ajoute une ligne à la fin pour que le dossier /var/multimedia du Pi pointe dessus et on active le montage :
//192.168.2.16/NAS /var/multimedia cifs user=login,password=azerty1234
sudo mount -a
A vous bien sûr de mettre les infos qui vont bien
5.2 Avec un périph USB
J’ai trouvé ça un peu plus chiant et pour tout dire, ça n’a pas marché chez moi (Mais je noobise en Linux, quelqu’un me corrigera peut-être sûrement.)
Bref. D’abord, faites en sorte que le disque soit formaté en ext4, c’est mieux si vous souhaitez télécharger des fichiers de plus de 4Go
Ensuite, on procède comme pour avec un NAS, sauf qu’il faut connaître l’identifiant de la partition du periph’ usb de stockage. En général, c’est sda1, mais si jamais c’est pas ça, bah ça marchera pas ^^
sudo nano /etc/fstab
Et on ajoute la ligne supplémentaire :
/dev/sda1 /var/multimedia ext4 users,umask=1000,rw,auto 0 0
sudo mount -a
On va ensuite créer les dossiers pour que tout ce petit monde fonctionne correctement, avant de donner les droits pour que les applis puissent écrire dedans (Si cette dernière étape renvoie une erreur, pas d’inquiétude, ça peut marcher quand même) :
sudo mkdir -p /var/multimedia/tv
sudo mkdir -p /var/multimedia/incoming/sabnzbd/incomplete
sudo mkdir -p /var/multimedia/incoming/sabnzbd/complete
sudo mkdir -p /var/multimedia/incoming/sabnzbd/complete_tv
sudo mkdir -p /var/multimedia/incoming/sickbeard
sudo chown –R sabnzbd :nzb /var/multimedia
Pour la configuration de SABnzbd, ça se passe comme ça chez McDolan’s (en plus du tuto de Coldo linké plus haut)[ul]
[li]General/Host = 0.0.0.0[/li][li]Folders/Temporary Download Folder = /var/multimedia/incoming/sabnzbd/incomplete[/li][li]Folders/Completed Download Folder = /var/multimedia/incoming/sabnzbd/complete[/li][li]Post-Processing Scripts Folder = /usr/local/sickbeard/autoProcessTV[/li][/ul]
Et pour Sickbeard :[ul]
[li]General/Misc/Launch Browser = off[/li][li]Search Settings/NZB Search/Method = SABnzbd[/li][li]Search Settings/NZB Search/Host = http://localhost:8080[/li][li]Search Settings/NZB Search/API Key = la clé API qu’on trouve dans SABnzbd>Configuration>General[/li][li]Search Settings/NZB Search/Category = tv[/li][li]Post Processing/Keep Original Files = off[/li][/ul]
Enfin, ne pas oublier lors des ajouts de séries dans Sickbeard de renseigner le répertoire parent /var/multimedia/tv
Voilà, c’est tout pour ce petit tuto. Je tiens à remercier mes parents, sans qui je ne serais pas là ce soir, mais également mon équipe et mes assistants (c’est à dire mon chat), ainsi que ce site : http://www.cylindric…pberrypi-setup/ sur lequel je me suis très très lourdement appuyé pour écrire mon petit laïus (même si j’ai corrigé des machins et rajouté des trucs qui n’étaient pas très clairs pour moi, c’est quand même bien pompé )
A noter d’ailleurs que vous pourrez aussi installer CouchPotato en le suivant, chose que je n’ai pas faite car je n’en avais pas l’utilité.
N’hésitez pas à me signaler les éventuelles erreurs, même si « pour moi ça marche » comme ça, c’est peut-être pas le cas partout.