- Même si une infrastructure centrée sur S3 est devenue de facto la norme pour le stockage de fichiers, WebDAV reste une alternative utile pour les projets personnels ou les environnements auto-hébergés
- L’auteur explique s’être lassé de la complexité et de la dépendance à S3, et avoir recommencé à utiliser WebDAV comme simple espace de stockage de fichiers avec authentification
- WebDAV est pris en charge nativement par de nombreux outils comme MacOS Finder, Windows Explorer, rclone, curl, ce qui le rend très accessible
- Sur les principaux serveurs web comme Apache, Nginx ou Caddy, il est possible de configurer avec quelques réglages simples des répertoires privés par utilisateur, avec prise en charge possible de l’authentification LDAP
- Pour les développeurs qui veulent sortir de la dépendance au cloud et garder une infrastructure de gestion de fichiers simple en interne, WebDAV reste un choix pratique
Les limites du stockage de fichiers centré sur S3
- Le FTP a disparu, et le SFTP est peu pratique car il dépend trop fortement de SSH et de l’authentification Unix
- Avec AWS S3 devenu de facto le standard du secteur, la plupart des applications web sont conçues en supposant une connexion à S3
- Cela avantage Amazon, mais complique la vie des autres utilisateurs
- Pour les projets personnels ou les environnements auto-hébergés, les fonctions complexes de S3 sont inutiles, et un simple stockage de fichiers authentifié suffit largement
- L’auteur a abandonné S3 au profit de WebDAV et recommande à d’autres développeurs d’envisager le même choix
À qui s’adresse WebDAV et pour quels besoins
- WebDAV convient aux utilisateurs individuels ou aux petits projets qui ont besoin d’un accès HTTP au niveau du système de fichiers
- Fonctions nécessaires : authentification, écriture de fichiers, synchronisation efficace, confidentialité par défaut, publication facile si besoin
- Fonctions inutiles : ACL avancées, URL signées, gestion de versions, stockage hiérarchisé, règles de cycle de vie, quotas, etc.
- Ces besoins parlent à la plupart des développeurs indépendants, sans qu’il soit nécessaire d’exploiter des systèmes complexes comme OpenStack Swift, CEPH, Minio
- En particulier, Minio a récemment supprimé une grande partie de son interface d’administration et impose désormais la rédaction manuelle de fichiers de politique JSON, ce qui le rend peu efficace pour un simple usage de stockage de fichiers
Accessibilité de WebDAV et prise en charge par les outils
- WebDAV est pris en charge nativement par de nombreux systèmes d’exploitation et outils
- MacOS Finder : saisir
https://... dans le menu « Se connecter au serveur »
- Windows Explorer : fonctions « Connecter un lecteur réseau » ou « Ajouter un emplacement réseau »
- CLI et applications : rclone, curl, CyberDuck, WinSCP, Filezilla etc.
- Beaucoup considèrent WebDAV comme dépassé, alors qu’en pratique il est pris en charge par défaut sur la plupart des serveurs web
- Activation simple sur Apache, Nginx, Caddy, Lighttpd, IIS, etc.
- OwnCloud et NextCloud utilisent aussi un accès basé sur WebDAV
Exemples d’usage concrets de WebDAV
- WebDAV est déjà utilisé pour la synchronisation des contacts et calendriers via CardDAV et CalDAV
- Autrement dit, beaucoup d’utilisateurs se servent déjà au quotidien de services reposant sur WebDAV sans le savoir
- L’auteur a mis en place WebDAV avec Apache et l’a relié à une authentification LDAP pour permettre l’accès à des répertoires personnels par utilisateur
- Avec Caddy, la séparation des répertoires par utilisateur peut être configurée plus simplement, mais Apache permet aussi de le faire correctement
- La configuration d’Apache est un peu plus complexe, mais elle permet de garantir la confidentialité dans un environnement multi-utilisateur
Exemple de configuration WebDAV avec Apache
- Modules nécessaires dans Apache :
mod_dav, mod_dav_fs, mod_dav_lock
- Inclut aussi un réglage
BrowserMatch pour la compatibilité avec d’anciens clients
- Principaux éléments de configuration
- Contrôle du fonctionnement de WebDAV avec
DavLockDB, DavMinTimeout, DavDepthInfinity, etc.
- Intégration de l’authentification LDAP avec
AuthType Basic, AuthBasicProvider ldap, etc.
- Restriction de l’accès pour que chaque utilisateur connecté ne voie que son propre répertoire via
RewriteEngine
- En créant sous
/usr/local/www/webdav un répertoire portant le même nom que chaque utilisateur, celui-ci peut accéder à son espace après authentification
Cas d’usage de WebDAV et possibilités d’extension
- L’auteur utilise WebDAV avec les applications suivantes
- Joplin : application de synchronisation de notes sur son propre serveur
- Keepassium : client Keepass pour iOS/MacOS
- VLC, Infuse : streaming et lecture de médias
- rclone : synchronisation de fichiers pour publier un blog statique (plus rapide que NFS/SMB et sans VPN)
- Il a aussi découvert un nouveau projet nommé Altmount
- Il permet de « monter » directement des contenus publiés sur Usenet sans les télécharger
- L’idée de pouvoir accéder facilement à Usenet à plusieurs gigabits est jugée intéressante
2 commentaires
Dans mon infrastructure domestique, j’utilise du NFS ou du SMB en interne, et pour l’extérieur j’utilise toujours très bien WebDAV, haha.
Commentaires sur Hacker News
Cela permet de synchroniser ou de monter des serveurs WebDAV entre eux, et aussi d’exposer un système de fichiers local, S3, Google Drive, etc. comme serveur WebDAV
La RFC est meilleure que FTP, mais il reste beaucoup de comportements non standard dus aux différences entre implémentations, ce qui impose de nombreux contournements
Il n’est pas possible en principe de définir l’heure de modification ou les hash, mais des implémentations comme ownCloud ou Nextcloud le prennent en charge
Comme c’est basé sur HTTP et TLS, c’est bien plus rapide que SFTP
NFS est aussi basé sur TCP et peut être chiffré, mais sa prise en charge est faible sous Windows, et seul macOS l’intègre par défaut
À l’inverse, WebDAV fonctionne bien sur les deux plateformes
Pour l’instant, j’utilise davx5, mais l’accès aux fichiers n’est pas pratique
Comme cela s’intègre bien à l’infrastructure mTLS que j’ai déjà mise en place, je préfère WebDAV
Côté serveur, j’utilise sftpgo
Ce n’est pas une technologie propre à Amazon : il existe aussi des projets open source soutenus par EU Horizon comme Garage S3
https://garagehq.deuxfleurs.fr/
Par exemple, Tailscale Drive Share repose sur WebDAV, et le stockage de fichiers de Fastmail est lui aussi accessible via WebDAV
WebDAV est une technologie plutôt chouette
Ça marche très bien
Windows comme macOS ont tous deux une prise en charge intégrée, mais elle n’est pas accessible aux utilisateurs ordinaires
Sous Windows, c’est réservé à WSL, et sous macOS à la virtualisation, ce qui est dommage
Ce serait formidable de pouvoir monter directement du 9p depuis l’interface utilisateur
Il est compatible avec les clients NextCloud (desktop/Android) et peut aussi être utilisé avec Gnome Online Accounts ou Nautilus
https://codeberg.org/lunae/dav-next
Il n’y a pas encore de packaging ni de versions binaires, mais les retours sont les bienvenus
Sur la plateforme cloud de notre entreprise aussi, nous développons une fonctionnalité permettant d’y accéder comme à un disque via WebDAV
Cela permet de réutiliser toute l’infrastructure basée sur HTTP, avec très peu de complexité supplémentaire
Les technologies ennuyeuses mais stables sont celles qui durent au final
Et en plus, c’est un standard ouvert
Beaucoup d’hébergements mutualisés indiquent encore d’utiliser FTP pour les uploads
Les clés SSH et SFTP sont aussi possibles, mais la documentation mentionne encore des outils FTP comme FileZilla
Guide FTP d’OVHcloud
J’ai du mal à croire qu’on utilise encore un protocole non chiffré
J’écarterais immédiatement ce type d’hébergement
L’époque où il servait à distribuer des logiciels ou dans le monde académique me manque, mais il ne lui reste désormais presque plus que ses tout derniers usages
Cela permet la synchronisation entre utilisateurs ayant plusieurs comptes iCloud, sans avoir besoin d’un abonnement Dropbox
C’est plus rapide que CloudKit et demande moins de maintenance
Je pense que je pourrai l’utiliser encore longtemps
Elle inclut aussi un web scraper, ce qui est pratique pour stocker en Markdown les sorties de chatbots LLM
Aujourd’hui, la plupart des fournisseurs proposent une compatibilité avec l’API S3
Au final, cela semble surtout parler du protocole lui-même