Tested with v0.9

apt-get install radicale python-dulwich

Note: Please note that these modules have not been verified by security experts. If you need a really secure way to handle authentication, you should put Radicale behind a real HTTP server and use its authentication and rights management methods.

vi /etc/radicale/config
  base_prefix = /radicale/
  committer = Radicale <webmaster@localhost>
  debug = True
  type = owner_only

mkdir -p /var/log/radicale
touch /var/log/radicale/radicale.log
chown -R radicale: /var/log/radicale

mkdir -p /var/lib/radicale/collections
cd /var/lib/radicale/collections

Note: Before first sync

mkdir user1
touch user1/calendar.ics
touch user1/addressbook.vcf
chown -R radicale: /var/lib/radicale/collections


Tested with >=2.4.10

vi /var/www/radicale/radicale.wsgi
  import radicale
  application = radicale.Application()


<VirtualHost *:443>
  # radicale hook
  WSGIDaemonProcess radicale user=radicale group=radicale threads=1
  WSGIScriptAlias /radicale /var/www/radicale/radicale.wsgi
  <Location /radicale>
        AuthType Basic
        AuthName "Radicale Authentication"
        AuthBasicProvider file
        AuthUserFile /var/www/radicale/.radicale.passwd
        Require valid-user

        AllowOverride None
        Order allow,deny
        allow from all

        RewriteEngine On
        RewriteCond %{REMOTE_USER}%{PATH_INFO} !\^{}([\^{}/]+/)$\backslash$1
        RewriteRule .* - [Forbidden]
  <Directory /var/www/radicale>
        WSGIProcessGroup radicale
        WSGIApplicationGroup %{GLOBAL}

        AllowOverride None
        Order allow,deny
        allow from all

a2enmod wsgi
a2enmod rewrite
service apache2 reload

DAVDroid http://davdroid.bitfire.at/features

Radicale http://www.radicale.org/documentation

known bug with radicale and davdroid https://github.com/Kozea/Radicale/issues/196#issuecomment-57793486

Important hint: http://a3nm.net/blog/davdroid.html

Radicale website: http://radicale.org/