Bah voilà, a pu Nextcloud.
Plus sérieusement, comme j'en parlais dans mon billet précédent, je ne me sers plus de Nextcloud. Certes ça m'aura appris pas mal de choses en + d'entre-apercevoir toute l'étendue de ses fonctionnalités, mais je suis tout de même content d'être passé à autre chose (-> WebDAV). En fait, pour mon "petit" RPI 3B+, tant que je n'avais "que" ça, ça allait, mais au fur et à mesure, j'y ai d'abord rajouté blogotext (ce blog, lecteur RSS, etc.), puis mon Shaarli, puis Baïkal (gestion d'événements (rdv) et de contacts), et dernièrement Emby (serveur multimédias). Et à force, je voyais bien que le Raspberry PI mettait plus de temps à répondre. Tout en sachant que je risque d'y ajouter encore d'autres "projets"...
Finalement, comme Nextcloud ne me servait plus qu'à synchroniser nos pc perso (Windows et Linux) via le client, récupérer les médias de mon téléphone, et synchroniser mon gestionnaire de mot de passe (Enpass), j'ai cherché une alternative moins gourmande.
Autant, la partie synchronisation de fichiers présente sur pc et smartphone ne m'inquiétait pas spécialement, autant, pour les mots de passe...
J'ai donc essayé de trouver une alternative à Enpass, qui ne propose pas l'auto-hébergement, tel que :
- Bitwarden, mais je n'avais pas les 4 GB de RAM pour le faire tourner, et il faut en plus installer Docker et Docker Compose.
- Passbolt, il faut aussi installer Docker et Docker Compose, et avoir un service NTP (je ne sais pas ce que c'est) pour éviter les problèmes d'authentification GPG
- Psono, toujours pareil, il faut installer Docker
- Teampass... Bon, il faut croire que sans Docker, on ne fait rien 🤨
Mais c'est pareil, je veux qu'un client pour Linux ET Windows existe, et que Firefox dispose d'une extension.
Puis j'ai regardé vers quelles solutions externes Enpass proposait de se connecter pour se synchroniser, et bien, la liste est assez complète => Dropbox, Google Drive, OneDrive (Personal/Business), iCloud, Box, WebDAV, Nextcloud ! 😮
WebDAV, WebDAV 🤔 ça me dit quelque chose, mais c'est quoi ?
Je cherche un peu, et PAF, c'est dispo d'office avec Apache 😃. Il faut "juste" activer les modules qui vont bien
sudo a2enmod dav
sudo a2enmod dav_fs
Et les 2 ou 3 petites choses que je décris ci-dessous :
- Créer un espace sur son serveur (ou ici sur un disque dur externe)
sudo mkdir /media/user/disque_dur_externe/espace_webdav
Lui affecter les droits pour que le serveur puisse y déposer des fichiers
sudo chown -R www-data:www-data /media/user/disque_dur_externe/espace_webdav
sudo chown www-data:www-data //media/user/disque_dur_externe
sudo chown www-data:www-data /media/user
sudo chmod 777 /media/user
sudo chmod 777 /media/user/disque_dur_externe
sudo chmod 777 /media/user/disque_dur_externe/espace_webdav
- Modifier le fichier de configuration du site
sudo nano /etc/apache2/sites-available/votre_ndd.conf
En ajoutant dès le début de fichier
DavLockDB /var/www/dossier_du_site/DavLock
-> La directive DavLockDB désigne le nom de la base de données DAV Lock. Il doit s'agir d'un chemin d'accès à un fichier. Le fichier n'a pas besoin d'être créé. Le répertoire doit être accessible en écriture par le serveur Apache.
Puis en ajoutant dans "VirtualHost *:443"
Alias /webdav /media/user/disque_dur_externe/espace_webdav
<Directory /media/user/disque_dur_externe/espace_webdav>
DAV On
</Directory>
Tester la config avant de l'appliquer (ceci permettra de ne pas rendre HS le site)
sudo apachectl configtest
Si c'est OK, redémarrer apache
sudo systemctl restart apache2
Tester l'accès (navigation privée Firefox pour être sûr que l'historique des cookies/identifiants/etc ne soient pas en mémoire)
https://votre_site/espace_webdav/
Si c'est OK, continuer 😉
- Il faut maintenant créer un user
sudo htdigest -c /etc/apache2/users.password userwebdav votre_user
Renseigner 2 fois le mot de passe voulu
sudo chown www-data:www-data /etc/apache2/users.password
- Re-modifier le fichier de configuration du site
sudo nano /etc/apache2/sites-available/votre_ndd.conf
En ajoutant dans "Directory /media/user/disque_dur_externe/espace_webdav"
AuthType Digest
AuthName "userwebdav"
AuthUserFile /etc/apache2/users.password
Require valid-user
Options Indexes FollowSymLinks
-> Options Indexes FollowSymLinks --> étant donné que "espace_webdav" est sur un HDD et non dans /var/www/..., il faut indiquer au fichier de conf que le navigateur web doit afficher les dossiers/fichiers sous forme de liens.
- Activer les modules suivants
sudo a2enmod auth_digest
sudo a2enmod dav_lock
Re-tester la config
sudo apachectl configtest
Et enfin redémarrer apache
sudo systemctl restart apache2
https://votre_site/espace_webdav/
Et voilà, on peut maintenant synchroniser ce que l'on veut avec notre espace WebDAV que l'on vient de créer, si tant est que le logiciel en question le veuille... À mais oui, Enpass le propose ^^
Et pour y avoir accès à partir de son navigateur de fichier sous Linux, il faut saisir l'emplacement réseau comme suit :
davs://votre_site/espace_webdav
À bientôt.
o/