Radicale

From Le Wiki de debian-fr.xyz
Jump to: navigation, search
Cet article est une ébauche concernant radicale. N'hésitez pas à contribuer ou à en discuter.

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!