Self Hosted Calendar Server With Radicale
Everyone of us need a Calendar, to organise time, not forget meetings, birthdays, dates, interviews, parties, etc. Out there in the world there are a lot of application that can help to solve that, and even a lot of service that can do it for you, for free, and synchronise it with all your environments/devices, one over all Google Calendar.
But sometimes for business need, for privacy or just for fun, you may want to set up your own calendar server.
I have already my server, with mail(IMAPS and SMPTS) and few websites, so i thought that could have been cool have a calendar server there as well.
So i started my search with 'apt-cache search caldav server' i found that there are quite a lot of options, and even some software that offer a complete productivity suite, but i needed only one simple software that could speak caldav, in a way that i could integrate my desktop and phone calendar. One really good option was to use cyrus caldav, because i already use cyrus as mail server, but in debian wheezy (my server OS) is not there, so i dropped back to choose between two more lightweight solution: radicale and davical
Checking how much dependencies each of this two tool needed i chosen radicale, that it's a simple python based caldav server, the devical is instead, written in php, it needed postgresql(at least by default) and few other tens of packages.
going ahead with radicale i just installed it with apt and configured for my needs, that were: have a caldav server running in ssl and with some authentication method.
radicale support ssl almost out of box, you just need to find it in the config file '/etc/radicale/config' and enable it, this is the snippet:
# SSL flag, enable HTTPS protocol ssl = True # SSL certificate path certificate = /etc/ssl/certs/my_cert.crt # SSL private key key = /etc/ssl/private/my_cert.key
For the authentication has been a bit more tricky, i wanted to connect it to my IMAP server, and radicale has a quite easy setting for do that, but as usual not for the version in wheezy, that was a bit annoying, but with some work in the apt repository settings, i could import the jessie package in wheezy without break all the updates and so on.
You may wonder why i didn't do that for cyrus instead, the main point is that i didn't want to break any working service, and do a cross version upgrade of a so small package has been quite safe and easy.
So at the end the configuration of imap was just to find the authentication part in the '/etc/radicale/config' and enable it, as snippets:
enable imap auth:
[auth] # Authentication method # Value: None | htpasswd | IMAP | LDAP | PAM | courier | http | remote_user | custom type = IMAP
configure the IMAP server:
# IMAP Configuration imap_hostname = localhost imap_port = 993 imap_ssl = True
done this i just created a new calendar opening the specific urls as the radicale documentation explain.
i added the calendar in Thunderbird, and used Caldav Sync Free Beta in my android phone.
that's it, now i have my private, secure, shared between devices, CALENDAR.