Application of choice is radicale. Lightweight, filesystembased storage and localusers. Well suited for large but also for small environments. Implements only the serverside part of the functionality.
Use a minimal debian-8 (jessie). This version has the latest version 0.8 of radicale in the repository.
Install the software with:
apt-get install radicale python-radicale
This creates also an operatingsystem user and group radicale, a convenient start-script, and a subdir /var/log/radicale for the logfile.
Edit /etc/default/radicale to enable automatic start at boot.
Make a directory (filesystem) for the calendar and addressbook datastore:
mkdir /data/radicale chown radicale:radicale /data/radicale
Edit the main config-file for radicale /etc/radicale/config
[server] hosts = 0.0.0.0:5232 daemon = True pid = ssl = True certificate = /etc/radicale/ssl_caldav.example.com_pub-cert.pem key = /etc/radicale/ssl_caldav.example.com_priv-key.pem [encoding] request = utf-8 stock = utf-8 [auth] type = htpasswd private_users = fred,dough,michelle htpasswd_filename = /etc/radicale/users htpasswd_encryption = crypt [rights] type = owner_only [storage] type = filesystem filesystem_folder = /data/radicale/collections [logging] config = /etc/radicale/logging debug = False full_environment = True
Set the debug parameter to True during installation and testing to get more information.
Create a username-password file for radicale. This /etc/radicale/users and in the format of a .htpasswd file used by the apache-httpd. The htpasswd-tool is not installed as a dependency. By default radicale is only capable of using sha1 or crypt, so use the -d flag when using the htpasswd-tool.
dough:0123456789aBc fred:0123456789Abc michelle:0123456789abC
See this howto for using the better bcrypt http://evilshit.wordpress.com/2013/11/19/how-to-install-a-caldav-and-carddav-server-using-radicale/.
The client-config will be something like this:
For the calendar of Fred:
https://caldav.example.com:5232/fred/calendar.ics username = fred pw = verysecret
For the addressbook of Fred change the url to:
https://carddav.example.com:5232/fred/AddressBook.vcf