CalendarServer

Differences between revisions 20 and 75 (spanning 55 versions)
Revision 20 as of 2008-01-11 20:12:20
Size: 4560
Editor: 26-191
Comment:
Revision 75 as of 2010-08-08 17:45:56
Size: 4738
Editor: ip72-208-203-158
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
## page was renamed from CalDAVServer
THIS PAGE IS NOT FINISHED. DON'T FOLLOW ANY ADVISE IN IT UNTIL THIS LINE IS REMOVED.
This page explains how to install Apple's [[http://en.wikipedia.org/wiki/Darwin_Calendar_Server|Darwin Calendar Server]] (also called DCS, and the basis for their iCal Server).
Line 4: Line 3:
In Intrepid Ibex, Apple's calendar server was installable as the calendarserver package. Unfortunately, this no longer works (as of 7 Feb 2010) with Ubuntu Jaunty (9.04) or Karmic (9.10) servers, necessitating these recipes for installation steps. The problem seems to result from required corrections to the upstream Debian package, which is not being actively maintained now. There is a [[https://bugs.launchpad.net/ubuntu/+source/calendarserver/+bug/403349|bug #403349]] filed about this. Please see the bug and the link below for work on packaging for Ubuntu Karmic (9.10) server.
Line 5: Line 5:
This page will explain how to install Apple's iCal Server on Ubuntu Server, though desktop variants should also work without any problems. There are many other Calendar Servers, so the title of this page is misleading. There are also other CalDAV serves, including DAViCal, some of which work better than the Darwin Calendar Server. The reader is advised to research other calendar servers and keep in mind the limited scope of these instructions.
Line 8: Line 8:
Explain that here, together with an explanation between CalDAV and WebDAV/webcal, with a link to a page describing how to make that happen. There are many ways of enabling other people to see your calendar, but the two most common, are what Evolution calls "On the web"-calendars (or [[http://en.wikipedia.org/wiki/Webcal|webcal]]), and CalDAV-calendars. "On the web" calendars are simply iCalendar files stored on a web-server for clients to download. Nothing magical about it. Your calendar application will open a normal http connection to the web server, download the calendar file and use it just like a normal, local calendar, except in most cases it will be read-only. The application can also publish the calendar to the web-server using WebDAV.
Line 10: Line 10:
== Install procedure for Ubuntu Server 7.10 == WebDAV, an abbreviation that stands for Web-based Distributed Authoring and Versioning, refers to the set of extensions to the Hypertext Transfer Protocol (HTTP) which allows users to collaboratively edit and manage files on remote World Wide Web servers. The "On the web"-type of calendar is suitable when you want anyone in the world to have access to the calendar. A TV-channel could use this to announce their program, for instance, or Free Software communities can use it to enable users to see how the project is progressing, release dates, etc. If this is all you want, then you don't really need a CalDAV server. Apache will do the trick, with with mod_dav if you want WebDAV publishing support. ([[http://www.digital-arcanist.com/sanctum/article.php?story=20070427101250622|WebDAV with Apache 2.x on Ubuntu]])
Line 12: Line 12:
Installing Apple's iCal Server is fairly trivial once you know what to do. We do need to download some additional packages using apt-get, and we need to download some software using subversion. Most users will be familiar with apt-get, many with subversion. If you're not familiar with subversion, don't panic. This guide will be a detailed, step by step howto, showing exactly which commands to enter and when. Built on top of WebDAV, CalDAV is a standard protocol, specified in [[http://tools.ietf.org/html/rfc4791|RFC 4791]], which enables advanced online calendar functions. Concepts such as users, groups, locations and resources are introduced, enabling collaborative scheduling. Different users of different groups can have different permissions to read and write to a calendar, etc. Also, a CalDAV calendar doesn't use a single file, but stores calendar events as files in directories. It also handles recurring events, enables free/busy lookups, etc. This makes CalDAV suitable for an office environment.
Line 14: Line 14:
Ready? == Recipes for Installation ==
Line 16: Line 16:
 * Log into the server console or via ssh, so you can enter commands, and run {{{ sudo -s }}} to get a root shell.
 * Install some software: {{{ apt-get install subversion libkrb5-dev attr curl build-essential libssl-dev python-pysqlite2 bzip2 }}}
 * Install some more software: {{{ apt-get install curl zope3 python-xml python-pyopenssl python-dateutil python-xattr python-pysqlite2 python-twisted python-vobject python-kerberos }}}
[[CalendarServer/GutsyRecipe|Gutsy]]
[[CalendarServer/KarmicRecipe|Karmic]]
Line 20: Line 19:
 * We now need to edit our /etc/fstab file and add {{{ user_xattr }}} to the options for the partition containing the CalDAV server, / in this case: {{{ vim /etc/fstab }}} == Configuration ==
Line 22: Line 21:
This is how my change looked like:
{{{
Before: UUID=94a96528-c889-45a1-bc98-d9d02ecdd59c / ext3 defaults,errors=remount-ro 0 1
After : UUID=94a96528-c889-45a1-bc98-d9d02ecdd59c / ext3 defaults,errors=remount-ro,user_xattr 0 1
}}}
There is now a [[CalendarServer/Configuration|page]] regarding configuration of the caldavd server.
Line 28: Line 23:
 * We must now remount the filesystem: {{{ mount -o remount / }}}
 * We'll install the server in /opt, so lets change into it: {{{ cd /opt }}}
 * Let's download the server software itself using subversion: {{{ svn checkout http://svn.macosforge.org/repository/calendarserver/CalendarServer/trunk CalendarServer }}}
 * Subversion has downloaded alot of software, and created a directory for us, called CalendarServer. Let's change into it: {{{ cd CalendarServer }}}[[BR]]
 * And run a script to download some necessary packages, configure, etc: {{{ ./run -s }}}
 * Ok, our CalDAV server is almost ready for action. Let's copy the test configuration so we can get it up as quickly as possible. Real configuration can wait: {{{ cp conf/caldavd-test.plist conf/caldavd-dev.plist }}}
 * We do need to do some configuration though: {{{ vim conf/caldavd-dev.plist }}}
== Packaging ==
Line 36: Line 25:
 * Let's change the hostname for the server. Locate the line {{{ <!-- Network host name --> }}} and change {{{ <string>localhost</string> }}} to {{{ <string>your-real-hostname</string> }}} [[BR]]
 * We have to make it available to connections from other computers. Locate this line: {{{ <!-- List of IP addresses to bind to [empty = all] --> }}} and replace {{{ 127.0.0.1 }}} in {{{ <string>127.0.0.1</string> }}} with either nothing or a spesific, public ip address for your server.
Of course, the best solution is for a newer version of calendar server to be appropriately packaged, so that people can readily install it. There is now a [[CalendarServer/Packaging|wiki page]] about progress on this.
Line 39: Line 27:
 * There is a bug in Evolution that prevents us from using this setup. The bug is located here, and please visit it now to see if it's been fixed. It also explains how to enable Evolution to connect. I won't include it here, because it's important that you check out the bug yourself: https://bugs.launchpad.net/ubuntu/+source/evolution/+bug/16019


 * Run the server: ./run
 * That's it! The server is up and running, and you can connect to it with your CalDAV client using {{{ caldav://ADDRESS:8008/calendars/users/admin/calendar }}} to test the server using username {{{ admin }}} and password {{{ admin }}}
 * But we're not really done yet. So, what's next? We're currently running the server as root. That's not necessary, so we shouldn't. What we should do, is create a user for our CalDAV server, set permissions for /opt/CalendarServer to that user and run as that user. We should also create scripts for /etc/init.d/ so we can manage it like we do with other services, and we should add a script to run it when we boot and properly shut it down when we shut down the system.
 


References:

Cam's blog: [[BR]]
http://cam.moobox.org/blog/?p=5
[[BR]] [[BR]]
Lenfis blog: [[BR]] http://blog.jl42.de/index.php?/archives/231-Installation-of-the-Apple-Calendar-Server-on-Ubuntu-Edgy.html
[[BR]] [[BR]]
Calendar Server wiki: [[BR]]
http://trac.macosforge.org/projects/calendarserver/wiki/ [[BR]] [[BR]]
== References: ==
 * [[https://bugs.launchpad.net/ubuntu/+bug/182591|Package request on Launchpad]]
 * [[http://tools.ietf.org/html/rfc4791|CalDAV protocol specification, RFC 4791]]
 * [[http://cam.moobox.org/blog/?p=5|Cam's blog]]
 * [[http://blog.jl42.de/index.php?/archives/231-Installation-of-the-Apple-Calendar-Server-on-Ubuntu-Edgy.html|Lenfis blog]]
 * [[http://www.recycledpapyr.us/2008/01/09/installing-apples-darwin-calendar-server/|JT's blog]]
 * [[http://trac.macosforge.org/projects/calendarserver/wiki/|Calendar Server wiki]]
 * [[http://ubuntuforums.org/showthread.php?p=4114408&posted=1#post4114408|Ubuntu Forum Thread]]
 * [[http://www.nabble.com/Re:-'Run'-script-crashes-p11433982.html|Maxime Wacker's trouble shooting tips]]
 * [[https://bugs.launchpad.net/ubuntu/+source/evolution/+bug/160190|Bug #160190]]
 * [[http://en.wikipedia.org/wiki/Caldav|CalDAV - Wikipedia entry]]
 * [[http://en.wikipedia.org/wiki/WebDAV|WebDAV - Wikipedia entry]]
 * [[http://www.digital-arcanist.com/sanctum/article.php?story=20070427101250622|HOWTO Enable WebDAV with Apache 2.x on Ubuntu Linux]]

This page explains how to install Apple's Darwin Calendar Server (also called DCS, and the basis for their iCal Server).

In Intrepid Ibex, Apple's calendar server was installable as the calendarserver package. Unfortunately, this no longer works (as of 7 Feb 2010) with Ubuntu Jaunty (9.04) or Karmic (9.10) servers, necessitating these recipes for installation steps. The problem seems to result from required corrections to the upstream Debian package, which is not being actively maintained now. There is a bug #403349 filed about this. Please see the bug and the link below for work on packaging for Ubuntu Karmic (9.10) server.

There are many other Calendar Servers, so the title of this page is misleading. There are also other CalDAV serves, including DAViCal, some of which work better than the Darwin Calendar Server. The reader is advised to research other calendar servers and keep in mind the limited scope of these instructions.

What is CalDAV?

There are many ways of enabling other people to see your calendar, but the two most common, are what Evolution calls "On the web"-calendars (or webcal), and CalDAV-calendars. "On the web" calendars are simply iCalendar files stored on a web-server for clients to download. Nothing magical about it. Your calendar application will open a normal http connection to the web server, download the calendar file and use it just like a normal, local calendar, except in most cases it will be read-only. The application can also publish the calendar to the web-server using WebDAV.

WebDAV, an abbreviation that stands for Web-based Distributed Authoring and Versioning, refers to the set of extensions to the Hypertext Transfer Protocol (HTTP) which allows users to collaboratively edit and manage files on remote World Wide Web servers. The "On the web"-type of calendar is suitable when you want anyone in the world to have access to the calendar. A TV-channel could use this to announce their program, for instance, or Free Software communities can use it to enable users to see how the project is progressing, release dates, etc. If this is all you want, then you don't really need a CalDAV server. Apache will do the trick, with with mod_dav if you want WebDAV publishing support. (WebDAV with Apache 2.x on Ubuntu)

Built on top of WebDAV, CalDAV is a standard protocol, specified in RFC 4791, which enables advanced online calendar functions. Concepts such as users, groups, locations and resources are introduced, enabling collaborative scheduling. Different users of different groups can have different permissions to read and write to a calendar, etc. Also, a CalDAV calendar doesn't use a single file, but stores calendar events as files in directories. It also handles recurring events, enables free/busy lookups, etc. This makes CalDAV suitable for an office environment.

Recipes for Installation

Gutsy Karmic

Configuration

There is now a page regarding configuration of the caldavd server.

Packaging

Of course, the best solution is for a newer version of calendar server to be appropriately packaged, so that people can readily install it. There is now a wiki page about progress on this.

References:

CalendarServer (last edited 2014-07-13 21:21:52 by 5ac9a5f8)