Accueil Blog A propos Contact Connexion
Retour à la liste des articles WebDAV, Nginx et XFCE : accéder à ses médias en ligne facilement

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

Olivier Prieur | il y a 7 ans | il y a 7 jours Gnu/Linux | 0 | 3071

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.


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 ...

Olivier Prieur

Olivier Prieur

Geek quinqua nivernais fan d'ovalie, de musique, de linuxeries et de Net.
Portfolio : https://www.olivierprieur.fr

Commentaires

En soumettant ce formulaire, j’accepte que ce site conserve mes données personnelles via ce formulaire. Aucune exploitation commerciale ne sera faite des données conservées.

Il n'y a actuellement aucun commentaire pour cet article

A la une

Utiliser TailwindCSS dans un projet Symfony 7

Lire l'article

Symfony 7 avec Docker

Lire l'article

Customiser Easyadmin (2) : avec AssetMapper

Lire l'article

Je recherche un nouveau job !

Lire l'article

Les plus lus

Symfony : barre de recherche dans la sidebar 19397

Lire l'article

Débuter avec Symfony 5 : le fichier .env 11933

Lire l'article

VSCode : 10 raccourcis clavier indispensables (Linux) 11599

Lire l'article

GIT / GITHUB : aide-mémoire pour "les nuls" 10192

Lire l'article