structure & meta
This commit is contained in:
parent
da6d838193
commit
b25ce65735
284 changed files with 461 additions and 1000 deletions
115
posts/2012/2012-12-04-installer-sabnzbd-derriere-nginx.md
Executable file
115
posts/2012/2012-12-04-installer-sabnzbd-derriere-nginx.md
Executable file
|
|
@ -0,0 +1,115 @@
|
|||
<!-- title: Installer SABnzbd derrière Nginx -->
|
||||
<!-- category: Hébergement -->
|
||||
|
||||
[SABnzbd](http://sabnzbd.org/), comme son nom ne l'indique pas vraiment, est un
|
||||
lecteur de news binaires. <!-- more -->Il permet de récupérer des fichiers depuis
|
||||
[Usenet](http://fr.wikipedia.org/wiki/Usenet). C'est une application serveur,
|
||||
qu'on héberge derrière un serveur Web, et qui offre une interface de gestion
|
||||
depuis un navigateur. Il faut bien sûr l'associer à un compte chez un
|
||||
fournisseur Usenet. Je ne détaille pas plus l'utilisation de l'outil, le site
|
||||
officiel est suffisamment documenté, mais plutôt son installation dans le
|
||||
cadre de l'auto-hébergement avec le serveur Web Nginx en frontal et non pas le
|
||||
traditionnel Apache.
|
||||
|
||||
Depuis [la page de téléchargement](http://sabnzbd.org/download/) on peut
|
||||
télécharger les sources Python. Les manipulations suivantes sont réalisées
|
||||
sur une Debian 6 avec Python, Nginx et OpenSSH installés.
|
||||
|
||||
|
||||
``` shell
|
||||
# on installe sous /srv
|
||||
cd /srv
|
||||
wget http://sourceforge.net/projects/sabnzbdplus/files/sabnzbdplus/0.7.6/
|
||||
SABnzbd-0.7.6-src.tar.gz/download -O SABnzbd-0.7.6-src.tar.gz
|
||||
tar xvf SABnzbd-0.7.6-src.tar.gz && rm -f SABnzbd-0.7.6-src.tar.gz
|
||||
# on crée un lien symbolique /srv/sabnzbd pour gérer aisément les futures mises à jour
|
||||
ln -s SABnzbd-0.7.6 sabnzbd
|
||||
```
|
||||
|
||||
L'étape suivante consiste à démarrer SABnzbd pour définir sa configuration
|
||||
générale et **aussi restreindre l'adresse d'écoute** à l'interface localhost
|
||||
(127.0.0.1) pour forcer le passage par Nginx et son authentification que nous
|
||||
allons mettre en place par la suite. On peut automatiser le démarrage en
|
||||
rajoutant un script sabnzbd sous /etc/init.d tel que celui-ci :
|
||||
|
||||
``` shell
|
||||
### BEGIN INIT INFO
|
||||
# Provides: sabnzd
|
||||
# Required-Start: $local_fs $remote_fs
|
||||
# Required-Stop: $local_fs $remote_fs
|
||||
# Should-Start: $all
|
||||
# Should-Stop: $all
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Short-Description: Start/stop Sabnzbd
|
||||
# Description: Start/stop Sabnzbd
|
||||
### END INIT INFO
|
||||
|
||||
PATH=/sbin:/bin:/usr/sbin:/usr/bin
|
||||
|
||||
. /lib/lsb/init-functions
|
||||
|
||||
if [ "$#" -ne 1 ]; then
|
||||
log_failure_msg "Usage: /etc/init.d/sabnzd" \
|
||||
"{start|stop}"
|
||||
exit 2
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
python /srv/sabnzbd/SABnzbd.py -d -f /root/.sabnzbd/sabnzbd.ini
|
||||
exit $?
|
||||
;;
|
||||
stop)
|
||||
/usr/bin/wget -q --delete-after "http://localhost:7777/sabnzbd/api?mode=shutdown
|
||||
&apikey;=24be83f61210daad59aa0e90223ccd4f"
|
||||
exit $?
|
||||
;;
|
||||
*)
|
||||
log_failure_msg "Usage: /etc/init.d/sabnzbd" \
|
||||
"{start|stop}"
|
||||
exit 2
|
||||
;;
|
||||
esac
|
||||
|
||||
log_failure_msg "Unexpected failure, please file a bug."
|
||||
exit 1
|
||||
```
|
||||
|
||||
On active ce script sous Debian avec update-rc.d sabnzbd defaults. Finalement on
|
||||
configure Nginx comme proxy. Je me suis borné à un accès HTTP protégé par
|
||||
une authentification utilisateur / mot de passe mais HTTPS est recommandé.
|
||||
|
||||
``` nginx
|
||||
server {
|
||||
listen 80;
|
||||
server_name www.yourserver.yourdomain;
|
||||
root /var/www/www;
|
||||
access_log /var/log/nginx/www.access.log;
|
||||
error_log /var/log/nginx/www.error.log;
|
||||
|
||||
location /sabnzbd {
|
||||
auth_basic "Restricted area";
|
||||
auth_basic_user_file /var/www/htpasswd;
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header X-Forwarded-Server $host;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_pass http://127.0.0.1:7777/sabnzbd;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Pour la création du fichier d'authentification **htpasswd** je vous renvoie à
|
||||
la [FAQ de Nginx](http://wiki.nginx.org/Faq#How_do_I_generate_an_htpasswd_file_w
|
||||
ithout_having_Apache_tools_installed.3F) car plusieurs méthodes sont possibles.
|
||||
Gare à sécuriser son accès et à le placer hors des répertoires servis par
|
||||
Nginx. A ce stade SABnzbd fonctionne à moitié :-) En effet SABnzbd ne va pas
|
||||
servir toutes les ressources (HTML / CSS) et il faut les lier statiquement à
|
||||
Nginx.
|
||||
|
||||
``` shell
|
||||
# on lie les ressources statiques du thème Plush
|
||||
mkdir -p /var/www/www/sabnzbd
|
||||
ln -s /srv/sabnzbd/interfaces/Plush/templates/static /var/www/www/sabnzbd/static
|
||||
ln -s /srv/sabnzbd/interfaces/Config/templates/staticcfg /var/www/www/sabnzbd/staticcfg
|
||||
```
|
||||
Loading…
Add table
Add a link
Reference in a new issue