KarmicRecipe

Differences between revisions 55 and 73 (spanning 18 versions)
Revision 55 as of 2008-09-18 15:32:00
Size: 9763
Editor: 78-105-123-104
Comment:
Revision 73 as of 2010-08-08 16:52:21
Size: 5562
Editor: ip72-208-203-158
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
## page was renamed from CalendarServerKarmicRecipe
## page was copied from CalendarServerGutsyRecipe
## page was copied from CalendarServer
Line 2: Line 5:
/!\ ''' THIS PAGE IS NOT FINISHED. CONSIDER THE INSTRUCTIONS OF ALPHA RELEASE QUALITY. '''
 ''If you have any problems with any of the instructions here, please provide comment and feedback.''
Line 5: Line 6:
== Install procedure for Ubuntu Server 9.10 ==
Line 6: Line 8:
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) on Ubuntu Gutsy. There has recently been a fair amount of work on performing installation of the 2.3 version of calendar server from source. They have been described in detail at this [[http://www.deanspot.org/content/installing-darwin-calendar-server-23-ubuntu-910|blog]]. This has been tested on a fresh install of 9.10 with only the ssh server installed on top.
Line 8: Line 10:
== 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 [[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.
== Package based procedure for installing caldavd 1.2 on Ubuntu Server 9.10 ==
Line 11: Line 12:
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]]) These instructions appear to install the calendar server 1.2 version from the packages. To do so, you can stick to the [[CalendarServerGutsyRecipe|procedure]] described for version 7.10. Only slight changes have to be done to the list of packages we want to install
Line 13: Line 14:
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.  {{{ apt-get install subversion libkrb5-dev attr curl build-essential libssl-dev python-pysqlite2 curl python-zodb python-pyopenssl python-dateutil python-xattr python-pysqlite2 python-twisted python-vobject python-kerberos python-dev}}}
Line 15: Line 16:

== Install procedure for Ubuntu Server 7.10 ==
Installing Apple's iCal Server is fairly trivial once you know what to do. You do need to download some additional packages using apt-get, and you'll 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.

To make this work you will need to enable the Universe repositories (see [[AddingRepositoriesHowto]] and remember to do an {{{ apt-get update }}} afterwards).

Ready?

 * 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 python-dev }}}
 * 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 }}}

 This is what the /etc/fstab change looks 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 }}}


/!\ You ''must'' modify the settings for the partition on which you're installing the server. So if your /opt is on a different partition, you must set the {{{ user_xattr }}} flag and modify the instructions below. This is because Calendar Server uses extended filesystem attributes to store WebDAV properties.


 * Remount the file system (to activate user_xattr): {{{ mount -o remount / }}}
 * Create a directory for our server to live in; {{{ mkdir /opt/caldavd }}}
 * and change into it, {{{ cd /opt/caldavd }}}
 * Let's download the server software itself using subversion:
 {{{ svn checkout http://svn.macosforge.org/repository/calendarserver/CalendarServer/trunk CalendarServer }}}
 * Subversion has downloaded a lot of software, and created a directory for us, called CalendarServer. Let's change into it: {{{ cd CalendarServer }}}
 * And run a script to download some necessary packages, configure, etc: {{{ ./run -s }}}
 * 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 }}}
Sofar i checked the tutorial until this following steps:
 * 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 }}}
Line 60: Line 32:
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 }}}


Let's test our Server using Thunderbird 3 RC2 with lightning addon.
But before we check that lets see if we can access it via Browser.
Type into your addressbar: http://IPADDRESS:8008/calendars/users/admin/calendar

And you should be prompted with a fild asking for your '''username''' and '''password''' which are '''admin''' and '''admin'''

Ok, now in Thunderbird:
- First create a "New Callendar - On the Network".
- Choose CalDAV and type http://ADDRESS:8008/calendars/users/admin/calendar

using http instead of caldav does not seem to right, but it works (?)
I need to check this out further.
In [[http://wiki.debian.org/HowTo/CalendarServer| this Debian CalendarServer tutorial]] it seems to be right.


Line 72: Line 62:
NAME=caldavd

test -x $CALDAVD || exit 0
Line 75: Line 68:
        log_daemon_msg "Starting Darwin Calendar Server" "caldavd"         log_daemon_msg "Starting Darwin Calendar Server" "$NAME"
Line 83: Line 76:
        log_daemon_msg "Stopping Darwin Calendar Server" "caldavd"         log_daemon_msg "Stopping Darwin Calendar Server" "$NAME"
Line 91: Line 84:
        log_daemon_msg "Retarting Darwin Calendar Server" "caldavd"         log_daemon_msg "Restarting Darwin Calendar Server" "$NAME"
Line 99: Line 92:
  status)
        status_of_proc -p "$CALDAVD" "$NAME" && exit 0 || exit $?
        ;;
Line 100: Line 96:
        log_action_msg "Usage: /etc/init.d/caldavd {start|stop|restart}"         log_action_msg "Usage: /etc/init.d/caldavd {start|stop|restart|status}"
Line 112: Line 108:
== To Do: == === To Do: ===
Line 118: Line 114:


== 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]]

Install procedure for Ubuntu Server 9.10

There has recently been a fair amount of work on performing installation of the 2.3 version of calendar server from source. They have been described in detail at this blog. This has been tested on a fresh install of 9.10 with only the ssh server installed on top.

Package based procedure for installing caldavd 1.2 on Ubuntu Server 9.10

These instructions appear to install the calendar server 1.2 version from the packages. To do so, you can stick to the procedure described for version 7.10. Only slight changes have to be done to the list of packages we want to install

  •  apt-get install subversion libkrb5-dev attr curl build-essential libssl-dev python-pysqlite2 curl python-zodb  python-pyopenssl python-dateutil python-xattr python-pysqlite2 python-twisted python-vobject python-kerberos python-dev

Sofar i checked the tutorial until this following steps:

  • 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 a little configuration though:  vim conf/caldavd-dev.plist 

  • First change the hostname for the server. Locate the line  <!-- Network host name -->  and change  <string>localhost</string>  to  <string>your-real-hostname</string>  (That is, put the actual name of your server inside the string, it's used within URLs within the software.)

  • To make the server 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 specific, public ip address for your server.

Warning /!\ Bug #160190: As of 2007-11-05 there is a bug in Evolution that prevents us from using this set-up to authenticate to the caldavd server. The report has contributions which explain how to enable Evolution to connect. It's not included here, because it's important that you check out the bug yourself.

  • Create a user and group to give our server an identity of its own, but we don't need a home directory for it;  adduser --system --group caldavd --no-create-home 

  • Set permissions;  chown -R caldavd:caldavd /opt/caldavd 

  • Run the server:  sudo -u caldavd -b /opt/caldavd/CalendarServer/run 

Let's test our Server using Thunderbird 3 RC2 with lightning addon. But before we check that lets see if we can access it via Browser. Type into your addressbar: http://IPADDRESS:8008/calendars/users/admin/calendar

And you should be prompted with a fild asking for your username and password which are admin and admin

Ok, now in Thunderbird: - First create a "New Callendar - On the Network". - Choose CalDAV and type http://ADDRESS:8008/calendars/users/admin/calendar

using http instead of caldav does not seem to right, but it works (?) I need to check this out further. In this Debian CalendarServer tutorial it seems to be right.

Here is an example init script : /etc/init.d/caldavd

. /lib/lsb/init-functions

CALDAVD="/opt/caldavd/CalendarServer/run"
CALDAVD_USER="caldavd"
CALDAVD_OPTS="-d"
PIDFILE="/opt/caldavd/CalendarServer/logs/caldavd.pid"
NAME=caldavd

test -x $CALDAVD || exit 0

case "$1" in
  start)
        log_daemon_msg "Starting Darwin Calendar Server" "$NAME"
        if start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE --chuid $CALDAVD_USER --exec $CALDAVD -- $CALDAVD_OPTS; then
            log_end_msg 0
        else
            log_end_msg 1
        fi
        ;;
  stop)
        log_daemon_msg "Stopping Darwin Calendar Server" "$NAME"
        if start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE; then
            log_end_msg 0
        else
            log_end_msg 1
        fi
        ;;
  restart)
        log_daemon_msg "Restarting Darwin Calendar Server" "$NAME"
        start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile $PIDFILE
        if start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE --chuid $CALDAVD_USER --exec $CALDAVD -- $CALDAVD_OPTS; then
            log_end_msg 0
        else
            log_end_msg 1
        fi
        ;;
  status)
        status_of_proc -p "$CALDAVD" "$NAME" && exit 0 || exit $?
        ;;
  *)
        log_action_msg "Usage: /etc/init.d/caldavd {start|stop|restart|status}"
        exit 1
esac

exit 0

And to get it to load on boot and shutdown safely:

update-rc.d caldavd defaults

To Do:

We also need to set up users and permissions for the server itself, so people can connect to the server and share their calendars, which is what we've been aiming for.

We should also document where the server-data is stored, so the information that users have entrusted to the server can be backed up.

Ideally we should package this application so the installation is installable with a single command.

CalendarServer/KarmicRecipe (last edited 2010-08-08 16:52:21 by ip72-208-203-158)