Radicale is a Calendar and Address book Server. It's written in Python and implements the CalDAV and CardDAV standards.

Installation

on Stretch

Documentation not written yet.

Radicale Package on Stretch doesn't come with a SystemD Unit yet, so you might borrow one from Radicale website. If you do so, do not enable daemon in /etc/default/radicale since it makes use of init.d.

on Jessie

Deliver Radicale through Apache

The points above lead to a minimal installation. In a productive environment it's advised to install a dedicated webserver. This examples uses Apache.

As we plan to let Apache start and manage Radicale, we go back to /etc/default/radicale and disable the daemon functionality there. Then we install the necessary packages. apt-get install apache2 libapache2-mod-wsgi

In /etc/apache2/sites-available/ we create a radicale.conf.

<VirtualHost *:80>
    ServerName example.com

    WSGIDaemonProcess radicale user=www-data group=www-data threads=1
    WSGIScriptAlias / /usr/share/radicale/radicale.wsgi

    <Directory /usr/share/radicale>
        WSGIProcessGroup radicale
        WSGIApplicationGroup %{GLOBAL}
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>
</VirtualHost>

To enable this configuration and disable the default one we do

a2dissite 000-default.conf
a2ensite radicale.conf

As we start Radicale with the www-data user we need to allow it to write to the log files.

mkdir -p /var/log/radicale/
chown -R www-data /var/log/radicale/

The directory for the data also needs to be created (if it hasn't already) and the permissions applied to that.

mkdir -p /var/lib/radicale
chown -R www-data /var/lib/radicale/

After restarting the service you should be able to reach the "Radicale Works!" page on port 80 of your server and port 5232 should not answer anymore.