Radicale – CARDAV & CALDAV
Référence: Ubuntu 22.04
À la recherche d’une solution pour l’auto-hébergement de carnets d’adresses et de calendrier, j’ai essayé NEXTCLOUD, qui va très bien, mais qui doit souvent être mis à jour avec une procédure pas toujours évidente lorsqu’on utilise ISPconfig comme gestionnaire d’hébergement et donc la mise à jour doit se faire avec un terminal. De plus, je n’ai pas besoin des fonctions de fichiers en nuage qui viennent avec cette installation.
Je viens de découvrir Radicale, un serveur qui ne sert qu’aux fichiers CARDAV, CALDAV. Voici la petite recette appliquée pour Ubuntu 22.04.
J’ai commencé par créer le site d’hébergement avec ISPconfig. Voici quelques paramètres:
- Domaine: dav.infolaf.ca (PHP, non requis, SSL actif)
- Redirection: non requise
- SSL: ajouter les certificats pour une utilisation HTTPS
- Sauvegarde: non requise (je la fais avec rsync)
- Options:
Directives Apache à ajouter à ISPconfig:
ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> RewriteEngine On RewriteRule ^/radicale$ /radicale/ [R,L] <Location "/radicale/"> AuthType Basic AuthName "Radicale - Password Required" AuthUserFile "/etc/radicale/users" Require valid-user ProxyPass http://localhost:5232/ retry=0 ProxyPassReverse http://localhost:5232/ RequestHeader set X-Script-Name /radicale RequestHeader set X-Remote-User expr=%{REMOTE_USER} </Location> <Location /> Order allow,deny Allow from all </Location>
Mes entrées DNS sont gérées sur le site de NAME.COM qui est mon « registrar ». J’ai alors immédiatement ajouté le domaine avec un enregistrement ANAME vers mon serveur domestique. Ainsi, dès que le serveur sera en ligne, il pourra recevoir des demandes.
Installation de Radicale
sudo apt install python3-pip python3-passlib
sudo pip3 install bcrypt
sudo apt install radicale
Édition du fichier de configuration de Radicale avec la commande nano.
sudo nano /etc/radicale/config
À la section [server], modifier la configuration de la façon suivante.
[server] host = 127.0.0.1:5232 max_connections = 20 max_content_length = 100000000 timout = 30
Ensuite, mettre en commentaire la configuration SSL puisque cela sera assuré par Apache.
# SSL flag, enable HTTPS protocol #ssl = False # SSL certificate path #certificate = /etc/ssl/certs/ssl-cert-snakeoil.pem # SSL private key #key = /etc/ssl/private/ssl-cert-snakeoil.key
Ensuite, modifier la section [auth] comme suit.
[auth] type = htpasswd htpasswd_filename = /etc/radicale/users htpasswd_encryption = bcrypt
Ensuite, modifier la section [storage]. Changer la configuration afin d’activer le module « radicale storage ».
[storage] type = multifilysystem filesystem_folder = /var/lib/radicale/collections
Créer les utilisateurs pour Radicale
sudo apt install apache2-utils
sudo htpasswd -B -c /etc/radicale/users johndoe
Ensuite taper et retaper le mot de passe pour l’utilisateur ‘johndoe’.
Options importantes à connaître:
L’option -B ,force l’utilisation du cryptage fort avec ‘bcrypt’, et non pas le cryptage ‘md5’ par défaut.
L’option -c ,indique le fichier pour les utilisateurs et mots de passe.
De manière optionnelle, vous pouvez vérifier le fichier avec la commande suivante.
cat /etc/radicale/users
Activation automatique du service « radicale » au démarrage.
sudo systemctl enable radicale
Démarrage du service manuellement et vérification de l’état du service.
sudo systemctl start radicale
sudo systemctl status radicale
Vérifier que les modules suivants sont bien installés.
sudo a2enmod proxy proxy_ajp proxy_http rewrite deflate headers proxy_balancer proxy_connect proxy_html ssl
Ensuite, redémarrer Apache.
sudo apachectl configtest
sudo systemctl restart apache2
Ouvrir un navigateur web et entrer votre URL pointant vers votre serveur.
https://dav.infolaf.ca/radicale/
Félicitation! votre serveur Radicale est maintenant fonctionnel. La prochaine étape est de créer un carnet d’adresse dans la nouvelle interface Radicale et ensuite, vous connectez en utilisant un client CalDAV/CardDAV tel qu’Evolution pour Linux ou DAVx5 pour Android.
Réinstallation et récupération des données
Si vous avez déjà une sauvegarde du carnet d’adresse (fichiers .vcf) et de l’agenda (.ics), la procédure est la suivante afin de récupérer vos données lors d’une nouvelle installation.
Recréer d’abord l’utilisateur avec la procédure indiquée plus tôt.
Importer le calendrier et éditer ensuite les propriétés avec l’interface web de Radicale.
Créer la collection addressbook et définir les propriétés avec l’interface web.
Arrêter Radicale:
sudo systemctl stop radicale
sudo systemctl status radicale
Ensuite copier à partir de la sauvegarde chaque fichier .vcf vers le nouveau répertoire de collection (à adapter à votre situation)
À partir du répertoire de votre sauvegarde:
sudo cp * /var/lib/radicale/collections/collection-root/lafontaj/b370dd6c-6adc-0aa6-72fd-7b03f68a42d9
Modifier le propriétaire des fichiers
sudo chown radicale:radicale -R /var/lib/radicale/collections/collection-root/lafontaj/b370dd6c-6adc-0aa6-72fd-7b03f68a42d9
Ensuite, redémarrer Radicale et Apache:
sudo systemctl start radicale
sudo apachectl configtest
sudo systemctl restart apache2
Voilà, vos collections sont désormais de nouveau en ligne, il faut à présent refaire les connexions avec vos applications de carnet d’adresses et agenda.