CalDAV and CardDav on BB10 to Radicale on Linux

We wanted to sync our calendar and contacts on a Z10 running BB10  to a server we controll instead of relying exclusively on common carriers.

We had sideloaded Android’s CardDAV-syncfree from the developer’s website and connected to an account at fruux.com, but that didn’t quite give us the control and security we wanted.  We could install an entire groupware stack like Zimbra or OpenXchange, but that was more than we needed.

Enter Radicale, a lightweight VCF and ICS server.  We could run the whole thing on our VPS.  Installation was easy enough, given the directions on the web.  The trick was in configuration…

Authentication with PAM didn’t work, because the python-pam library requires python2, but we’re using python3.  We used IMAP instead, because we already had an operating IMAP provider already (dovecot).  We even updated its certificates and configuration with perfect forward security to avoid heartbleed.

Next was radicale itself.  We combined config info at http://radicale.org/user_documentation/ and ended up with making separate CalDAV and CardDav accounts with the same name so they’d appear listed together with the IMAP account.
The CalDAV server address is example.com:5232/smithie/calendar.ics/ and the CardDav server address is example.com:5232/smithie/addressbook.vcf/ — note that you must include the trailing slash.  Completing the setup automatically created files in /home/smithie/.config/radicale/collections/smithie

We ran radicale by hand, with the –debug option, so we could see exactly what was happening, then started it for production with systemctl.

 

 

Systemd experience on Archlinux

I cutover my Archlinux server from initscripts to systemd.  Here are my experiences, for better or for worse.  Maybe it will help someone.

The wiki’s systemd migration page is very good!  I followed it, yet ran into a few problems outside the scope of the page.  I should add here that I want to run in a mixed initscripts/systemd environment fo ease my migration, as the wiki suggests.

Mounts — Systemd hung trying to mount all my drives according to /etc/fstab, especially my ipod.  I changed most of them to “noauto” then I was ok.

Mouse woudn’t work under X windows.  Looks like it was enumerated as /dev/input/mice not /dev/input/mouse0 as before.  Added “mice” as a section in /etc/X11/xorg.conf and then it was fine.

Netcfg under systemd renamed my two ethernet interfaces from wan and house to wan0 and house0.  Ok, this wasn’t a problem, but it’s not what I expected.

Cups wouldn’t start.  I googled and found someone else on the net had this same problem; he replaced the cupsd.socket file and it worked for him.  It also worked for me.

Postgrey wouldn’t start.  It turns out that the postgrey.service file ignores the POSTGREY_ADDR variable in /etc/conf.d/postgrey, so it wasn’t starting on the socket which I wanted it to, but on a hard-coded port number.  Oh well.  So as I had done for cups, I cloned the default postgrey.service tile in /usr/lib/systemd/system to /etc/systemd/system, and removed the hardcoded port.  Also had to “reenable” the service to make it pick up the new service file.  Now it picks up /etc/conf.d/postgrey as I think it should.

SSH — I have it running on a port other than the default.  Again, I cloned the sshd.socket file, changed the port, restarted it, and now it’s ok.

Samba is started as a legacy service.  Others are too, probably, like dhcp4.  I suppose I’ll have to eventually change the legacy samba service into smbd and nmbd like the old days.

Laptop — Cutover to systemd on it too.  Had a few problems like these above, but that’s ancient history now (last week!)  What I do like is that the power management functions work better now.  It doesn’t always wake up well from sleeping, but I suppose I’ll figure that out someday too.