Seedbox "complète" sous Debian 10 avec Rtorrent, Rutorrent, Emby, Couchpotato

Rédigé par citizenz - - 4 commentaires
SEEDBOX COMPLETE SOUS DEBIAN 10

Pourquoi créer une seedbox ?
- partager facilement les médias libres (films, animés, OS, etc.)

Cette seedbox sera composée de :
- Debian 10
- Rtorrent
- Rutorrent
- Emby
- Couchpotato
- phpsysinfo


Il reprend l'installation sur un serveur de type VPS Hetzner (https://hetzner.com/ ) + un volume monté en /home


Serveur VPS Hetzner CX21 (2 cpu, 4 GB RAM, 40 GB SSD, 1 Gbps): 5.88 €/M
+ volume supplémentaire de 200 GB monté en /home/seedbox pour fichiers médias : 9,60 €/M

AVANTAGES
- proc performant
- connexion 1 Gbps
- volume à la dimension voulue
- payable à l'heure

INCONVÉNIENTS
- VPS (ressource théoriquement partagées)
- Petit espace de stockage
- Trafic (Out) limité à... 20 TB
- Plus cher qu'un "petit" serveur Dédié Kimsufi ou Online

Postulats de départ :
- J'utilise la même annotation que le tuto de ex-rat : <username> signifie qu'il faut remplacer par son véritable nom d'utilisateur, <votre.domaine.com> signifie qu'il faut remplacer par son véritable nom de domaine, etc.
- Installation "fraîche" d'une Debian 10.
- Le Volume de 200 GB est monté en /home/<username>

--------------------------------------------
AVERTISSSEMENT :
Cet article n'a pas pour but de décrire la mise en place d'un "système" servant à "pirater" des oeuvre sous droit(s) d'auteur.
La seedbox devra être utilisée à des fins de test ou de partage de médias sous licences libres ou licences de libre diffusion (GPL, Creative commons, etc.).
--------------------------------------------


TUTORIEL : Go !
Une fois le serveur installé avec une Debian 10, on met à jour et on installe quelques applis :
sudo apt update && apt upgrade -y
sudo apt install -y sudo nano vim-nox htop git mc screen ntp rkhunter fail2ban ufw curl


On crée un utilisateur qui aura les droits sudo (il ne s'agit pas de l'utilisateur de la seedbox. Il s'agit d'un "vrai" utilisateur avec les droits sudo) :
sudo adduser citizenz
sudo adduser citizenz sudo


On crée le /home de l'utilisateur <username> (fichiers multimédia) :
sudo mkdir /home/<username>

On configure le fstab pour "monter" le volume à chaque redémarrage.
Pour trouver la config exacte de ce volume, dans votre Panel Hetzner, pour votre serveur :
- menu Volumes
- Trois petits points au bout de la ligne de votre volume puis Configuration

Sur mon serveur, ça donne ça :
sudo echo "/dev/disk/by-id/scsi-0HC_Volume_2942248 /home/<username> ext4 discard,nofail,defaults 0 0" >> /etc/fstab

Redémarrage nécessaire :
sudo reboot

L'essentielle de la config de base du système est prête, on va désormais suivre le tutoriel de ex_rat :
https://mondedie.fr/d/10831-tuto-installer-rutorrent-sur-debian-10-nginx-php-fpm


Après un reboot, on a accès à :
ruTorrent Webui
URL : XXX.XXX.XXX.XXX/rutorrent

SFTP
IP : XXX.XXX.XXX.XXX
Port : 22

Pour obtenir de l'aide plus facilement, un script de debug est dispo, qui permet d'obtenir un lien vers un récap' complet de vos fichiers de conf en rapport avec le tuto.
cd /tmp
git clone https://github.com/exrat/Script-Debug-MonDedie
cd Script-Debug-MonDedie
chmod a+x Script-Debug-Mondedie.sh && ./Script-Debug-Mondedie.sh


Vous aurez accès à un lien sur Pastebin. En ouvrant le lien dans votre navigateur vous verrez une "copie" des infos de votre système concernant votre seedbox.
En fin de fichier, il peut y avoir des erreurs qui s'affichent. Elles permettront certainement de voir où se situe votre problème de config et cela permettra d'y remédier rapidement.

#########################################
AJOUTS PERSOS
#########################################

-----------------------------------------
1/ Letsencrypt (HTTPS)
-----------------------------------------
Votre fichier Nginx de configuration pour votre seedbox (vhost) ne comporte pas de nom de domaine.
Si vous souhaitez en configurer un, il va falloir légèrement modifier le fichier.
Par contre, même si la connexion sur l’adresse IP + SSL restera possible, votre seedbox sera associée à un nom de domaine. A vous de voir si vous voulez faire ça (anonymat, etc.).

sudo nano /etc/nginx/sites-enable/seedbox.conf

Début du fichier :
server {   
listen 80 default_server;   
server_name _;

On va remplacer par : <votre.domaine.com> à remplacer par votre vrai nom de domaine ou sous-domaine... par exemple : seedbox.mondmaine.com
server {   
listen 80;   
server_name <votre.domaine.com>;

Vérifiez toujours que votre configuration Nginx ne comporte pas d'erreur - avant de relancer Nginx - avec la commande :
sudo nginx -t

Vous devriez avoir quelque chose comme ça si tout va bien :
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

On va ajouter le plugin Nginx de Letsencrypt (certbot). Très pratique pour Nginx, cela permettra de générer "tout ce qu'il faut" et de configurer automatiquement votre fichier Nginx vhost pour HTTPS.
On installe quelques dépendances :
sudo apt install python3-acme python3-certbot python3-mock python3-openssl python3-pkg-resources python3-pyparsing python3-zope.interface

Puis on installe le plugin Nginx pour certbot (letsencrypt) :
sudo apt install python3-certbot-nginx

On va demander un certificat SSL Letsencrypt avec la commande suivante :
* évidemment <www.your_domain> et <your_domain> sont à adapter avec votre VRAI domaine
** vous n'êtes pas obligé de déclarer un www. et vous pouvez juste faire : certbot --nginx -d <your_domain>
sudo certbot --nginx -d www.<votre.domaine.com>-d <votre.domaine.com>

1/ Vous devrez ensuite rentrer une adresse E-mail qui servira à vous envoyer des infos de renouvellement du certificat - valable 90 jours mais renouvelable - ou des infos de sécurité.
2/ Acceptez les termes du service.
3/ Vous pouvez répondre non à la question d'après qui consiste à donner votre e-mail.
4/ Enfin vous choisirez la manière dont le HTTPS sera configuré :
- soit en entrant l'URL HTTPS directement dans le navigateur, à savoir que vous aurez aussi le choix de rester en HTTP (choix 1)
- soit en redirigeant toutes les demandes sur HTTPS (choix 2)
Moi je prends le 2ème choix.

Une fois fait, vous aurez votre certificat Letsencrypt installé pour votre domaine et votre fichier vhost Nginx aura été reconfiguré automatiquement pour tenir compte de la nouvelle configuration.
En vous reconnectant sur votre seedbox, vous pourrez voir que le cadenas vert est apparu (sous Firefox). Votre seedbox est désormais accessible en HTTPS.

Petit ajout pour HTTP2 :
Vers la fin du fichier vhost Nginx seedbox.conf, vous verrez cette ligne :
listen 443 ssl; # managed by Certbot

Ajoutez http2 en fin de ligne, juste avant le point-virgule :
listen 443 ssl http2; # managed by Certbot

Redémarrez Nginx :
sudo /etc/init.d/nginx restart

HTTP2 va permettre d'apporter certaines fonctionnalités. Vous retrouvez toutes les infos ici : https://blog.eleven-labs.com/fr/http2-nest-pas-le-futur-cest-le-present/


-----------------------------------------------
2/ Emby
-----------------------------------------------
Emby (anciennement Media Browser) est un serveur multimédia conçu pour organiser, lire et diffuser du contenu audio et vidéo sur une variété de périphériques.
Très pratique (à mon goût...), il va permettre d'organiser tous les fichiers multimédia, les lire, etc.

On va prendre le lien pour Debian 9, Debian 10 n'existe pas... encore :
wget -nv http://download.opensuse.org/repositories/home:emby/Debian_9.0/Release.key -O Release.key
sudo apt-key add - < Release.key
sudo apt-get update
sudo echo 'deb http://download.opensuse.org/repositories/home:/emby/Debian_9.0/ /' > /etc/apt/sources.list.d/emby-server.list
sudo apt-get update
sudo apt-get install emby-server

Pour permettre à Emby de démarrer automatiquement à chaque reboot :
systemctl enable embyserver.service
systemctl start emby-server.service

Vous devriez pourvoir accéder à Emby sur le port 8096 de votre serveur/seedbox.
Exemple : http://<your_domain>:8096

(Attention pas d'accès en HTTPS, ca ne fonctionne pas chez moi...)
Lors de votre première connexion, plusieurs options de configuration vous seront proposées. Rien de compliqué.


--------------------------------------------
3/ Couchpotato
--------------------------------------------
CouchPotato est un téléchargeur automatique NZB et torrent.
Vous pouvez garder une liste de "films que je veux" et il recherchera les NZBs/torrents de ces films toutes les X heures.
Une fois qu'un film est trouvé, il téléchargera le torrent dans un répertoire spécifié.
Il correspond à la version "films" de SickRage.

J'ai choisi de mettre les fichier de Couchpotato dans /opt

sudo apt install git-core python python-cheetah
cd /opt
sudo git clone https://github.com/CouchPotato/CouchPotatoServer.git couchpotato
sudo cp couchpotato/init/ubuntu.default /etc/default/couchpotato
sudo nano /etc/default/couchpotato

Adaptez le fichier /etc/default/couchpotato comme ceci :
CP_USER=<username>
CP_HOME=/opt/couchpotato
CP_DATA=/opt/couchpotato
CP_PIDFILE=/var/run/couchpotato/couchpotato.pid
PYTHON_BIN=/usr/bin/python

Création d'un fichier service systemd :
sudo cp couchpotato/init/couchpotato.service /etc/systemd/system/couchpotato.service
sudo nano /etc/systemd/system/couchpotato.service

On adapte le path du ExecStart dans /etc/systemd/system/couchpotato.service :
ExecStart=/opt/couchpotato/CouchPotato.py

Pour permettre à Couchpotato de démarrer automatiquement à chaque reboot :
sudo systemctl enable couchpotato
sudo systemctl start couchpotato

Vous devriez pourvoir accéder à Couchpotato sur le port 5050 de votre serveur/seedbox.
Exemple : http://<your_domain>:5050

P.S. : Couchpotato c'est bien, mais on y trouve surtout des médias en langue anglaise (GB/US)... Il y a peu de médias FR.
La faute au "Searchers", c'est à dire aux sites de torrents référencés. Dommage qu'il ne soit pas possible d'en ajouter.

--------------------------------------------
4/ phpsysinfo
--------------------------------------------
PhpSysInfo (PSI) est une interface web, écrite avec le langage PHP, qui permet d'afficher des informations concernant le système et le matériel sur lequel elle est installée.
phpSysInfo est distribué sous GNU GPL version 2.

On télécharge la dernière version de phpsysinfo dans /var/www :
cd /var/www
wget https://github.com/phpsysinfo/phpsysinfo/archive/v3.3.1.tar.gz
tar xvfz v3.3.1.tar.gz
mv phpsysinfo-3.3.1/ phpsysinfo
chown -R www-data:www-data phpsysinfo
cd phpsysinfo
cp phpsysinfo.ini.new phpsysinfo.ini

Tout devrait fonctionner "tel quel".
Si vous voulez mettre phpsysinfo en FR :
nano phpsysinfo.ini
DEFAULT_LANG="fr"

--------------------------------------------
Résumé des accès :
--------------------------------------------
PAGE D'ACCUEIL : https://<your_domain> : y'a rien ! A vous de voir pour y mettre une page d'accueil, une "plateforme" type muximux (https://github.com/mescon/Muximux), etc.

RUTORRENT : https://<your_domain>/rutorrent - Connectez vous avec votre nom d’utilisateur <username> + mot de passe créés grâce au tuto de ex_rat

EMBY :  http://<your_domain>:8096 - Connectez vous avec votre nom d’utilisateur <username> + mot de passe créés grâce au tuto de ex_rat

COUCHPOTATO : http://<your_domain>:5050 - Connectez vous avec votre nom d’utilisateur <username> + mot de passe créés grâce au tuto de ex_rat

PHPSYSINFO : http://<your_domain>/phpsysinfo

PS : si vous avez installé un firewall (type UFW), pensez à ouvrir les ports suivants :
80 + 443 : HTTP + HTTPS
5050 : Couchpotato
8096 : Emby
Pensez aussi à SSH (généralement sur le port 22) et votre ou vos port(s) Rtorrent !

OneProvider : la Dacia des serveurs dédiés !

Rédigé par citizenz - - 7 commentaires
Je viens de découvrir Oneprovider .
OneProvider est une compagnie Canadienne qui offre une gamme complète de solutions en ligne : serveurs dédiés, virtuels, colocation dans plus 145 villes à travers le monde.
C'est en fait une filiale de Online... et des serveurs Online "reconditionnés"... ou "qui ont fait leur temps", etc.
Il y a notamment une gamme de serveurs dédiés impressionnante dans une bonne trentaine de villes d'Europe, d'Amérique du Nord et du sud, d'Asie, d'Afrique et d'Océanie. La gamme de serveur est très étendue (niveau proc, RAM, DD, etc.).

Avec les "Summer sell " vous pouvez trouver un dédié basé en France pour 6.99 €/m TTC !  C'est pas cher... mais certaine chose sont minimalistes.
Le panel de gestion client est plutôt pas mal fait, la gestion du serveur est plutôt pratique.
Mais première surprise lors de l'install ou de la reinstall de l'OS du serveur dédié, pas possible de choisir autre chose que des versions "anciennes" des OS (Debian v8, Ubuntu 14.04, ...) Ça commence à dater un peu.
Pourtant, sur l'annonce au moment de l'achat il est bien noté que Debian 9 fait partie des OS disponibles tout comme Ubuntu 18.04.
Par contre, sur simple demande au support, ils vous l'installent (Debian 9) après que vous leur ayez affirmé que vous êtes au courant que la réinstall va effacer toutes les données du serveur.

 

Mais à 6.99 €/mois, le serveur dédié que j'ai choisi (Intel Atom C2350 - 1.7 GHz, 4GB Ram DDR3, 1 TB HDD SATA et surtout une connexion à 1 Gb/s unmetered) est quand même pas mal !
Le processeur est assez limité mais pour un "petit" serveur web ou une seedbox, c'est parfait ! La connexion à 1 GB/s est parfaite !

Mais moi, je voulais me faire un serveur avec une Debian 10 O_o !!!

Donc pas d'autre alternative que d'upgrader à la main l'OS installé.
Plutôt que de passer de Jessie à Buster directement (je pense que ce n'est pas indiqué : vous confirmez ?), j'ai préféré upgrader vers Strech dans un premier temps, puis vers Buster dans un deuxième temps.
Voila comment je m'y suis pris et c'est en fait très simple.

Première chose à faire : s’assurer qu’on est bien à jour sur Jessie :
$ su
# apt update
# apt full-upgrade
# reboot


Puis on met à jour le fichier /etc/apt/sources.list en remplaçant jessie par stretch :
$ su
# sed -i 's|jessie|stretch|' /etc/apt/sources.list

Vérifiez aussi les dépôts dans /etc/apt/sources.list.d/

Puis on met à jour vers Stretch (v9) :
# apt update
# apt full-upgrade
# reboot

Bingo ! On est sous Debian Strech (9).

 

Vérifiez avec :
$ lsb_release -a

Vous aurez peut-être quelques fichiers à supprimer :
#apt autoremove
#reboot

Si tout est bon, on passe de Strech (9) à Buster (10) avec la même procédure :
$ su
# sed -i 's|stretch|buster|' /etc/apt/sources.list
# apt update
# apt full-upgrade
# reboot

Bingo (2) ! On est sous Debian Buster (10).

Vérifiez avec :
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 10 (buster)
Release:        10
Codename:       buster

$ uname -a
Linux AMS-144116 4.19.0-5-amd64 #1 SMP Debian 4.19.37-5 (2019-06-19) x86_64 GNU/Linux

Bien que vous soyez en Debian 10 (Buster), vous garderez la version Debian 8 sur votre panel d'administration client OneProvider.

 

[TUTO] Auto-héberger un noeud DUNITER sous Debian/Ubuntu

Rédigé par citizenz - - 15 commentaires
Article mis à jour le 21/11/17.
Reprenons ce que nous dit https://yeuxdelibad.net/Blog/?d=2017/11/08/16/00/51-debuter-avec-duniter-1-puis-heberger-un-noeud :
Pour rappel : Duniter est un logiciel. Son but est de permettre la production d'une nouvelle valeur numérique (ou électronique) ayant toutes les caractéristiques d'une « monnaie libre ». Nom de code de cette nouvelle valeur : la Ğ1 (prononcez « June », \ʒɥn\). La Ğ1 est désormais bien réelle : les toutes premières unités ont été créées le 8 mars 2017, et de nouvelles sont produites chaque jour par ses membres.

Le petit tuto ci-dessous reste non exhaustif voir même "simpliste" et n'aborde pas l'idée, le projet ou la philosophie de Duniter, de la Ğ1, etc. Il rappelle simplement les différentes étapes d'installation d'un "nœud" Duniter sous Debian/Ubuntu qui permettra de participer aux calculs nécessaires aux échanges de Ğ1.

J'utilise un PC sous Ubuntu 16.04 64 bits à la maison (auto-hébergé).
Connexion ADSL2 : Freebox V6 (+/- 7 MB/s)
PC : Intel i5, RAM 8 GB, SSD 120 GB

C'est parti :

a - On télécharge le paquet Debian (Debian/Ubuntu, ...) (version à vérifier sur le github Duniter ) :
$ wget https://github.com/duniter/duniter/releases/download/1.6.13/duniter-server-v1.6.13-linux-x64.deb

b - On installe le serveur Duniter :
$ sudo dpkg -i duniter-server-v1.6.13-linux-x64.deb

c - On génère la clé :
$ duniter wizard key

Réponse aux questions :
------Modify you keypair? (y/N) y
------Key's salt : mettez ici un mot de passe, une phrase, ce que vous voulez...
------Key's password : mettez ici un mot de passe

d - On configure le réseau :
$ duniter wizard network

Réponse aux questions :
---IPv4 interface : déplacez-vous, le cas échéant avec les flèche du clavier pour choisir la bonne adresse Interne (Privée) et validez. Sur mon réseau local (MAISON), je suis connecté sur ma Freebox V6 en DHCP fixe. En l'occurrence, mon adresse IP internet est : 192.168.0.75
---IPv6 interface : déplacez-vous dans la liste avec les flèches du clavier pour choisir l'adresse et validez. Choisissez "none" si vous n'avez pas d'IPv6.
---Port : 10901
---Remote IPv4 : ici, on vous demande votre adresse IP publique (avec ma Freebox, c'est du type 82.xxx.xxx.xxx)
---Remote port : 10901
---Does this server has a DNS name? y ou n (répondez "y" si vous voulez héberger le nœud sur un serveur possédant un nom de domaine. Exemple : g1.spacejerk.fr)

e - On lance la synchronisation :
$ duniter sync g1.duniter.org 443
Prenez votre mal en patience, ça peut être assez long (20 minutes ou +..., selon votre connexion et votre matériel)

f - On lance le serveur :
Moi, je lance le serveur avec l'interface web, plus pratique :
$ duniter webstart --webmhost 192.168.0.75
Remarquez ici que je rajoute un argument à la commande duniter webstart : "--webmhost" me permet de spécifier l'adresse IP privée de mon réseau interne Freebox
Vous aurez alors accès à votre "interface web" à cette adresse : http://MON-DOMAINE:9220 ou bien http://MON-IP:9220

g - N'oubliez pas d'ouvrir le port suivant dans votre firewall (si vous en avez un) :
10901/tcp = serveur

g bis - Si comme moi votre Freebox est confgurée en mode "routeur", il faut faire une redirection de ports vers votre IP privée (10901)

Attention : l'ouverture du port 9220 sur la box ou le firewall rend l'administration Duniter disponible à *tout utilisateur extérieur* et il devient extrêmement facile de dérober la clé privée si vous n'avez pas de protection supplémentaire (YunoHost, restriction d'accès par IP, ...)

Maintenant se pose la question : comment se connecter "proprement" à l'interface web du nœud, sans ouvrir le port 9220 ? elois sur le forum Duniter nous donne une très bonne astuce à base de SSH :
ssh -L PORT_LOCAL:localhost:9220 user@ip -p SSH_PORT

Ce qui donnerait chez moi, depuis mon PC maison :
ssh -L 8999:localhost:9220 citizenz@MON_IP -p 5001

Puis on tape l'adresse suivante dans son navigateur préféré :
http://localhost:8999

Et zou ! On arrive directement sur l'espace web d'admin du nœud ! C'est magique ! :D

h - S'inscrire sur CESIUM
Cesium est une application vous permettant de gérer votre compte en monnaie libre Ğ1.
URL : https://g1.duniter.fr 
Il va falloir créer un compte. C'est nécessaire pour être inscrit dans le registre public du Ğ1. Vous créerez en même temps un "porte-feuille".
Remplissez complètement les infos demandées dans votre compte.
/!\ Retenez bien votre identifiant secret et votre mot de passe, essentiels pour vous connecter.
Vous devez créez un compte "membre" pour pouvoir plus tard participer au dividende universel....

N.B. : En rentrant ses propres identifiant et mot de passe de membre, on relie le nœud à sa clé publique.

Pour toute info et complément, je vous renvoie vers plusieurs liens :

Proposez-vous des mentions légales sur votre site web ?

Rédigé par citizenz - - 10 commentaires
Suite aux déboires de l'association linuxfr, je me suis re-penché sur la question des mentions légales à faire figurer sur un site web et qui plus est, sur un blog.
Sur cette page (https://www.notuxedo.com ), on peut trouver son bonheur à propos de ce thème, avec nombre de détails et d'explications très claires (jargon juridique traduit) et des réponses aux questions les plus courantes :
- qui doit afficher des mentions légales ?
- quelles informations indiquer ?
- personne physique, personne morale, professionnel, amateur,...
- propriété intellectuelle
- données personnelles
- limitation de responsabilité
- commentaires sur un blog ?
- où faire figurer les mentions légales
- ...
Je ne vous ferai pas l'affront d'aller plus loin dans le détail n'ayant aucune compétence en la matière.

Après réflexion, je me suis rendu compte que je n'étais pas du tout dans les règles avec ce présent blog.
En cherchant un peu, je suis tombé sur un lien qui m'a "sauvé la vie" : un générateur de mentions légales, précis, complet.
Il suffit d'entrer ses informations : noms, adresse, adresse de l'hébergeur, etc. Vous recevrez gratuitement par e-mail votre texte (formaté en HTML avec titres et paragraphes).

Cela est fait pour moi depuis ce matin et en ligne sur ce site . Plutôt pratique.

Au final, cela m'a aussi permis une petite réflexion sur la licence d'utilisation du site et j'ai choisi de placer citizenz.info sous licence C.C. By-NC-SA 4.0  pour le site (sauf mentions contraires).

WebDAV, Nginx et XFCE : accéder à ses médias en ligne facilement

Rédigé par citizenz - - 2 commentaires

WebDAV c'est quoi ? Laissons faire les présentations par le Wiki Ubuntu :

WebDAV, en entier : Web-based Distributed Authoring and Versioning, est un protocole déjà ancien (1996) et curieusement peu connu. Il permet pourtant une chose essentielle : écrire sur le Web, au lieu de seulement surfer (c'est-à-dire seulement lire).
C'est un protocole ouvert, le W3C (organisme qui "normalise le web") en a confié le développement à l'IETF qui avait déjà normalisé HTTP.
Pour résumer, WebDAV est une extension du HTTP. Au delà des GET et POST bien connus, WebDAV rajoute les verbes PUT, DELETE, COPY, PROPFIND, etc. Pour les curieux, la norme est là : http://tools.ietf.org/html/rfc2518. Étant une simple extension au protocole HTTP, WebDAV fonctionne dans à peu près toutes les situations où la navigation n'est pas bloquée.

Ceci étant dit, j'avais besoin de configurer un accès web pour les fichiers vidéos situés sur mon serveur. Il existe pléthore de solutions de streaming etc. mais ça n'est pas ce que je souhaitais. L'idéal ? Ouvrir tous mes médias directement depuis mon "Explorateur de fichiers", Thunar en l’occurrence puisque je suis sous XFCE.

Je n'ai pas été chercher bien loin et je me suis souvenu de WebDAV, que j'avais déjà utilisé "rapidement" il y a quelques temps.

Objectifs ? Configurer Nginx avec WebDAV et pouvoir accéder tranquillement à mes fichiers depuis mon bureau. C'est parti.

NGINX

Pour configurer Nginx rien de bien compliqué. Il vous faut néanmoins et avant tout installer un nouveau paquet sur votre serveur afin d'utiliser WebDAV:

$ sudo apt install nginx-extras

Puis il faut créer l'hôte virtuel Nginx. J'ai choisi d'utiliser un domaine du type media.mondomaine.fr pour l'exemple. On va donc créer un fichier comme suit :

$ sudo vim /etc/nginx/conf.d/media.mondomaine.fr.conf

Dans ce fichier, nous allons placer les éléments suivants :

server {
        listen 80;
        server_name media.mondomaine.fr;
        root /CHEMIN/MONREPERTOIRE/FICHIERS; # ----> A CHANGER avec le bon chemin de votre répertoire
        index index.php index.html index.htm;
        access_log /var/log/media-access.log combined;
        error_log /var/log/media-error.log error;

        location / {
                try_files $uri $uri/ /index.html;
                client_body_temp_path   /temp;
                dav_methods             PUT DELETE MKCOL COPY MOVE;
                dav_ext_methods         PROPFIND OPTIONS;
                create_full_put_path    on;
                dav_access              user:rw group:rw all:rw;
                autoindex               on;
                auth_basic "Mot de passe :";
                auth_basic_user_file "/etc/nginx/passwd/media_pass";
}

        # PARTIE HTTPS
        listen 443 ssl http2; # managed by Certbot
        ssl_certificate /etc/letsencrypt/live/media.mondomaine.fr/fullchain.pem; # managed by Certbot ---> MONDOMAINE.FR A CHANGER
        ssl_certificate_key /etc/letsencrypt/live/media.mondomaine.fr/privkey.pem; # managed by Certbot ---> MONDOMAINE.FR A CHANGER
        include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

        if ($scheme != "https") {
                return 301 https://$host$request_uri;
        } # managed by Certbot

}

La première partie du fichier est "traditionnelle...

La deuxième partie Location / est plus spécifique. On peut y voir la configuration propre à WebDAV : dav_methods, dav_ext_methods, dav_access , ...

J'ai de plus protégé l'accès à mon répertoire avec un accès restreint, tout simple et très traditionnel, en créant premièrement un nouveau répertoire /et/nginx/passwd :

$ sudo mkdir -p /etc/nginx/passwd

... puis :

$ sudo htpasswd -c /etc/nginx/passwd/media_pass mumbly

Il n'y a plus qu'à rentrer le mot de passe associé à l'utilisateur mumbly. Si httpasswd ne fonctionne pas, installer le paquet suivant :

$ sudo apt install apache2-utils

Puis j'ai configuré une partie HTTPS avec certbot et le plugin --nginx. Je vous renvoie à mon post à ce sujet .

Une fois fait, on teste d'abord la config de Nginx avec :

$ nginx -t
Si tout est ok, on redémarre Nginx :
$ sudo /etc/init.d/nginx restart

Reste la partie "Bureau" sous XFCE et Thunar et ici rien de difficile. J'ai configuré cet accès sur un PC équipé de Xubuntu. Peut-être y aura t-il une "autre config" sous un autre système, je n'ai pas testé ailleurs.

Avec Thunar, on peut rentrer directement - dans la barre d'adresse - l'adresse de notre répertoire WebDAV de la manière suivante :

davs://mumbly@media.mondomaine.fr/FICHIERS # à adapter avec votre VRAI chemin ...

Voila ce que ça donne en "réel" sur mon PC :

Fil RSS des articles de ce mot clé