Ideally you will be running a recent Debian release and will be able to add:
deb http://debian.mcmillan.net.nz/debian unstable awm
to your /etc/apt/sources.list. Once you have done that you
can use apt-get or synaptic or some other equivalent package
manager to fetch and install rscds and all the dependencies.
Skip to the "Database Setup" part if you have done that already.
You will need to download the latest versions of the rscds and awl packages
from the sourceforge download page for rscds.
You will need to untar these. Preferably you will untar them from within the "/usr/share" directory and everything
will be in it's expected location (well, except the docs, but it will at least be tidy and everything will be in one place).
I would like to hear from non-Debian users regarding things I might have missed, or things you have learned about the system, so please post a message on the forums, or e-mail me or something.
I would really like to hear from you. As far as I can see there is no reason why this can't all work on FreeBSD, Microsoft Windows, VMS, Mac OS or whatever else, as long as the pre-requisites are able to be installed.
For Unix and unix-like operating systems the "Other Linux Users" instructions are likely to be reasonably close to what you need. For other systems everything will need some adjustment, and in particular some of the path name and shell expectations coded into the database creation scripts are likely to need love.
I'm available to answer questions, anyway :-)
RSCDS depends on a number of things. Firstly, it depends on Andrew's Web Libraries (AWL) which is a set of useful PHP functions and objects written by Andrew McMillan over a number of years.
The following other software is also needed:
The PostgreSQL database may be installed on a server other than the web server, and that kind of situation is recommended if you want to increase the security or scalability of your installation.
Since the CalDAV store takes over a significant amount of path hierarchy, it is designed to be installed in it's own virtual host. If you want it to operate within the web root of some other application I will happily accept patches to make it do that, but I am pretty sure it won't work that way out of the box.
On your database server you will need to create a user called 'general' which should not be able to create databases or users, and which will be granted minimum privileges for the application.
To create the database itself, run the script:
dba/create_database.sh
Note that this script calls the AWL database scripts as part of itself and it expects them to be located in /usr/share/awl/dba which might be a reasonable place, but it might not be where you have put them.
This script also expects to be running as a user who has rights to create a new database.
Your Apache instance needs to be configured for Virtual Hosts. If this is not already the case you may want to read some documentation about that, and you most likely will want to ensure that any existing site becomes the **default** virtual host, with RSCDS only being a single virtual host.
I use a Virtual Host stanza like this:
# # Virtual Host def for Debian packaged RSCDS <VirtualHost 123.4.56.78 > DocumentRoot /usr/share/rscds/htdocs DirectoryIndex index.php index.html ServerName rscds.example.net ServerAlias calendar.example.net Alias /images/ /usr/share/rscds/htdocs/images/ php_value include_path /usr/share/rscds/inc:/usr/share/awl/inc php_value magic_quotes_gpc 0 php_value register_globals 1 </VirtualHost>
Replace 123.4.56.78 with your own IP address, of course (you can use a name, but your webserver may fail on restart if DNS happens to be borked at that time).
At this point it is necessary to have register_globals enabled. All variables are sanitised before use, but some routines do assume this is turned on.
The various paths and names need to be changed to reflect your own installation, although those are the recommended locations for the various pieces of the code (and are standard if you installed from a package.
Once your VHost is installed an working correctly, you should be able to browse to that address and see a page telling you that you need to configure RSCDS.
The RSCDS configuration generally resides in /etc/rscds/<domain>-conf.php and is a regular PHP file which sets (or overrides) some specific variables.
<?php // $c->domainname = "calendar.example.net"; // $c->sysabbr = 'rscds'; // $c->admin_email = 'admin@example.net'; // $c->system_name = "Really Simple CalDAV Store"; // $c->collections_always_exist = false; $c->pg_connect[] = 'dbname=caldav port=5433 user=general'; $c->pg_connect[] = 'dbname=caldav port=5432 user=general'; ?>
Multiple values may be specified for the PostgreSQL connect string, so that you can (e.g.) use PGPool to cache the database connection but fall back to a raw database connection if it is not running.
The "collections_always_exist" value defines whether a MKCALENDAR command is needed to create a calendar collection before calendar resources can be stored in it. You will want to leave this to the default (true) if people will be using Evolution or Sunbird / Lightning against this because that software does not support the creation of calendar collections.
You should set the 'domainname' and 'admin_email' as they are used within the system for constructing URLs, and for notifying some kinds of events.
If all is going well you should now be able to browse to the admin pages and log in as 'admin' (the password is the bit after the '**' in the 'password' field of the 'usr' table so:
psql rscds -c 'select username, password from usr;'
should show you a list. Note that once you change a password it won't be readable in this way - only the initial configuration leaves passwords readable like this for security reasons.
If all is working then you should be ready to configure a client to use this, and the docs for that are elsewhere.