Radicale
Introduction
Radicale est une application serveur qui permet de gérer de calendriers (CalDAV) et de contacts (CardDAV).
Elle nécessite peu de dépendances et est écrite en Python.
Deux versions sont actuellement disponibles, l'une pour Python 2, l'autre pour Python 3.
Nous ne détaillons pas ici l'installation de la version pour Python 2 (abondamment documentée sur le web, et sur le point de ne plus être maintenue).
Installation de paquets
La version pour Python3 n'est pas disponible dans les dépôts stable, ni dans les backports. Il faudra donc faire du pinning dans testing.
Quand c'est fait, installez le paquet python3-radicale.
Le script wsgi.py n'est pas fourni. Il faut le créer soi-même (par exemple dans /var/www/radicale).
Son contenu :
import radicale radicale.log.start() application = radicale.Application()
Configuration de Apache
L'application étant écrite en Python3, il nous faut le module Apache WSGI pour Python3. Installez libapache2-mod-wsgi-py3.
Malheureusement, ce module est incompatible avec WSGI pour Python2.
Si vous avez besoin de Python 2, il vaut mieux installer la version pour Python2 de radicale.
Puis activer le module :
# a2enmod wsgi
En fonction du comportement que vous souhaitez, la configuration de Apache peut légèrement varier.
Pour le faire fonctionner sur un sous-domaine (que vous aurez au préalable configuré correctement), avec des certificats letsencrypt et une redirection automatique vers HTTPS,
ce fichier de conf fonctionne :
<VirtualHost calendar.example.com:80> ServerName calendar.example.com ServerAlias calendar.example.fr ServerAdmin contact@example.com ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined Redirect permanent / https://calendar.example.com </VirtualHost> <VirtualHost calendar.example.com:2443> ServerName calendar.example.com ServerAlias calendar.example.fr ServerAdmin contact@example.com ErrorLog ${APACHE_LOG_DIR}/calendar_error.log CustomLog ${APACHE_LOG_DIR}/calendar_access.log combined SSLEngine on SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem WSGIScriptAlias / /var/www/radicale/wsgi.py WSGIDaemonProcess calendar.example.com user=www-data group=www-data threads=1 WSGIProcessGroup calendar.example.com <Directory /var/www/radicale> <Files wsgi.py> Require all granted </Files> </Directory> </VirtualHost>
Maintenant, si vous accédez à http://calendar.example.com, vous devriez être redirigé vers https://calendar.example.com,
et voir le message :
Radicale works!