2009-07-29 17:19:55 +02:00
|
|
|
====================
|
|
|
|
User Documentation
|
|
|
|
====================
|
|
|
|
|
|
|
|
:Author: Guillaume Ayoub
|
|
|
|
|
2010-02-11 01:54:58 +01:00
|
|
|
:Date: 2010-02-11
|
2009-07-29 17:19:55 +02:00
|
|
|
|
|
|
|
:Abstract: This document is a short description for installing and using the
|
|
|
|
Radicale Calendar Server.
|
|
|
|
|
|
|
|
.. contents::
|
|
|
|
|
|
|
|
Installation
|
|
|
|
============
|
|
|
|
|
|
|
|
Dependencies
|
|
|
|
------------
|
|
|
|
|
2010-01-11 12:18:15 +01:00
|
|
|
Radicale is written in pure python and does not depend on any librabry. It is
|
2011-06-11 17:45:52 +02:00
|
|
|
known to work on Python 2.6, 2.7, 3.1 and 3.2 [#]_. The only optional
|
|
|
|
dependency is `the python-ldap module <http://www.python-ldap.org/>`_ for LDAP
|
2011-04-26 00:09:32 +02:00
|
|
|
authentication.
|
2009-07-29 17:19:55 +02:00
|
|
|
|
2010-01-11 12:18:15 +01:00
|
|
|
Linux users certainly have Python already installed. For Windows and MacOS
|
|
|
|
users, please install Python [#]_ thanks to the adequate installer.
|
2009-07-29 17:19:55 +02:00
|
|
|
|
2010-04-10 01:33:58 +02:00
|
|
|
.. [#] See `Python Versions and OS Support`_ for further information.
|
2010-01-22 19:29:03 +01:00
|
|
|
|
2009-07-29 17:19:55 +02:00
|
|
|
.. [#] `Python download page <http://python.org/download/>`_.
|
|
|
|
|
|
|
|
Radicale
|
|
|
|
--------
|
|
|
|
|
|
|
|
Radicale can be freely downloaded on the `project website, download section
|
|
|
|
<http://www.radicale.org/download>`_. Just get the file and unzip it in a
|
|
|
|
folder of your choice.
|
|
|
|
|
|
|
|
CalDAV Clients
|
|
|
|
--------------
|
|
|
|
|
2010-01-11 12:18:15 +01:00
|
|
|
At this time Radicale has been tested and works fine with the latests version
|
2011-01-26 02:35:52 +01:00
|
|
|
of:
|
2009-07-29 17:19:55 +02:00
|
|
|
|
2011-01-26 02:35:52 +01:00
|
|
|
- `Mozilla Lightning <http://www.mozilla.org/projects/calendar/lightning/>`_
|
|
|
|
- `GNOME Evolution <http://projects.gnome.org/evolution/>`_
|
|
|
|
- `Google Android <http://www.android.com/>`_
|
2011-04-02 20:49:33 +02:00
|
|
|
- `Apple iPhone <http://www.apple.com/iphone/>`_
|
2011-01-26 02:35:52 +01:00
|
|
|
|
|
|
|
More clients will be supported in the future. However, it may work with any
|
|
|
|
calendar client which implements CalDAV specifications too (luck is highly
|
|
|
|
recommanded).
|
|
|
|
|
|
|
|
To download Lightning, go to the `Lightning project website
|
|
|
|
<http://www.mozilla.org/projects/calendar/lightning/>`_ and choose the latest
|
2009-07-29 17:19:55 +02:00
|
|
|
version. Follow the instructions depending on your operating system.
|
|
|
|
|
|
|
|
|
|
|
|
Simple Usage
|
|
|
|
============
|
|
|
|
|
2011-01-26 02:35:52 +01:00
|
|
|
Starting the Server
|
|
|
|
-------------------
|
2009-07-29 17:19:55 +02:00
|
|
|
|
|
|
|
To start Radicale CalDAV server, you have to launch the file called
|
2010-01-22 19:29:03 +01:00
|
|
|
``radicale.py`` located in the root folder of the software package.
|
2009-07-29 17:19:55 +02:00
|
|
|
|
2011-01-26 02:35:52 +01:00
|
|
|
Starting the Client
|
|
|
|
-------------------
|
|
|
|
|
2011-04-02 20:49:33 +02:00
|
|
|
Lightning
|
|
|
|
~~~~~~~~~
|
2009-07-29 17:19:55 +02:00
|
|
|
|
2011-04-02 20:49:33 +02:00
|
|
|
After starting Lightning, click on ``File`` and ``New Calendar``. Upcoming
|
|
|
|
window asks you about your calendar storage. Chose a calendar ``On the
|
|
|
|
Network``, otherwise Lightning will use its own file system storage instead of
|
|
|
|
Radicale's one and your calendar won't be remotely accessible.
|
2009-07-29 17:19:55 +02:00
|
|
|
|
|
|
|
Next window asks you to provide information about remote calendar
|
2011-04-02 20:49:33 +02:00
|
|
|
access. Protocol used by Radicale is ``CalDAV``. A standard location for a
|
|
|
|
basic use of a Radicale calendar is ``http://localhost:5232/user/calendar/``,
|
|
|
|
where you can replace ``user`` and ``calendar`` by some strings of your
|
2010-02-11 01:54:58 +01:00
|
|
|
choice. Calendars are automatically created if needed.
|
2009-07-29 17:19:55 +02:00
|
|
|
|
|
|
|
You can now customize your calendar by giving it a nickname and a color. This
|
2011-04-02 20:49:33 +02:00
|
|
|
is only used by Lightning to identify calendars among others.
|
2009-07-29 17:19:55 +02:00
|
|
|
|
|
|
|
If no warning sign appears next to the calendar name, you can now add events
|
|
|
|
and tasks to your calendar. All events and tasks are stored in the server, they
|
|
|
|
can be accessed and modified from multiple clients by multiple users at the
|
|
|
|
same time.
|
|
|
|
|
2011-01-26 02:35:52 +01:00
|
|
|
Evolution
|
|
|
|
~~~~~~~~~
|
2010-04-19 16:43:46 +02:00
|
|
|
|
|
|
|
First of all, show the calendar page in Evolution by clicking on the calendar
|
|
|
|
icon at the bottom of the side pane. Then add a new calendar by choosing in the
|
2011-06-08 08:30:37 +02:00
|
|
|
menu ``File → New → Calendar``.
|
2010-04-19 16:43:46 +02:00
|
|
|
|
|
|
|
A new window opens. The calendar ``type`` is ``CalDAV``, and the location is
|
2010-06-24 01:54:25 +02:00
|
|
|
something like ``caldav://localhost:5232/user/calendar/``, where you can
|
|
|
|
replace ``user`` and ``calendar`` by some strings of your choice. Calendars are
|
|
|
|
automatically created if needed.
|
|
|
|
|
|
|
|
You can fill other attributes like the color and the name, these are only used
|
|
|
|
for Evolution and are not uploaded.
|
2010-04-19 16:43:46 +02:00
|
|
|
|
|
|
|
Click on ``OK``, and your calendar should be ready for use.
|
|
|
|
|
2011-01-26 02:35:52 +01:00
|
|
|
Android
|
|
|
|
~~~~~~~
|
|
|
|
|
2011-04-02 20:49:33 +02:00
|
|
|
*To be written*
|
2011-01-26 02:35:52 +01:00
|
|
|
|
|
|
|
iPhone
|
|
|
|
~~~~~~
|
|
|
|
|
2011-04-02 20:49:33 +02:00
|
|
|
*To be written*
|
2011-01-26 02:35:52 +01:00
|
|
|
|
2011-05-07 12:57:20 +02:00
|
|
|
iCal
|
|
|
|
~~~~
|
|
|
|
|
2011-06-05 21:24:58 +02:00
|
|
|
.. note::
|
|
|
|
This description assumes you do not have any authentication or encryption
|
|
|
|
configured. The procedure will change accordingly if you do.
|
|
|
|
|
|
|
|
In iCal 4.0:
|
|
|
|
|
|
|
|
1. Open the ``Preferences`` dialog and select the ``Accounts`` tab
|
|
|
|
2. Click the ``+`` button at the lower left to open the account creation wizard
|
|
|
|
3. As ``Account type`` select ``CalDAV``
|
|
|
|
4. Select any ``User name`` you like
|
|
|
|
5. The ``Password`` field can be left empty (we did not configure
|
|
|
|
authentication)
|
|
|
|
6. As ``Server address`` use ``domain:port``, for example ``localhost:5232``
|
|
|
|
(this would be the case if you start an unconfigured radicale on your local
|
|
|
|
machine)
|
|
|
|
|
|
|
|
Click ``Create``. The wizard will now tell you, that no encryption is in place
|
|
|
|
(``Unsecured Connection``). This is expected and will change if you configure
|
|
|
|
radicale to use SSL. Click ``Continue``.
|
|
|
|
|
|
|
|
The wizard will close, leaving you in the ``Account`` tab again.
|
|
|
|
|
|
|
|
.. note::
|
|
|
|
You *might* want to change the ``Server path`` in the ``Server settings``
|
|
|
|
panel as iCal uses your Mac Account name as the default path and not the
|
|
|
|
``User name`` you chose in the wizard.
|
|
|
|
|
|
|
|
The account is now set-up. You can close the ``Preferences`` window.
|
|
|
|
|
|
|
|
.. important::
|
|
|
|
To add a calendar to your shiny new account you have to go to the menu and
|
|
|
|
select ``File → New Calendar → <your shiny new account>``. A new calendar
|
|
|
|
appears in the left panel waiting for you to enter a name.
|
|
|
|
|
|
|
|
This is needed because the behaviour of the big ``+`` button in the main
|
|
|
|
window is confusing as you can't focus an empty account and iCal will just
|
|
|
|
add a calendar to another account.
|
2011-05-07 12:57:20 +02:00
|
|
|
|
2009-07-29 17:19:55 +02:00
|
|
|
|
|
|
|
Complex Configuration
|
|
|
|
=====================
|
|
|
|
|
2009-09-01 19:01:28 +02:00
|
|
|
.. note::
|
2011-05-07 12:57:20 +02:00
|
|
|
This section is written for Linux users, but can be easily adapted for
|
|
|
|
Windows and MacOS users.
|
2009-09-01 19:01:28 +02:00
|
|
|
|
2011-06-11 18:17:06 +02:00
|
|
|
Installing the Server
|
|
|
|
---------------------
|
2009-09-01 19:01:28 +02:00
|
|
|
|
|
|
|
You can install Radicale CalDAV server with the following command, with
|
|
|
|
superuser rights::
|
|
|
|
|
|
|
|
python setup.py install
|
|
|
|
|
|
|
|
Then, launching the server can be easily done by typing as a normal user::
|
|
|
|
|
|
|
|
radicale
|
|
|
|
|
2011-06-11 18:17:06 +02:00
|
|
|
Configuring the Server
|
|
|
|
----------------------
|
2009-09-01 19:01:28 +02:00
|
|
|
|
2011-05-09 00:38:36 +02:00
|
|
|
Main Configuration File
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~
|
2010-01-22 19:29:03 +01:00
|
|
|
|
2011-04-10 19:41:36 +02:00
|
|
|
.. note::
|
|
|
|
This section is following the latest git master changes. Please look at the
|
|
|
|
default configuration file included in your package if you have an older
|
|
|
|
version of Radicale.
|
|
|
|
|
2010-06-17 11:00:58 +02:00
|
|
|
The server configuration can be modified in ``/etc/radicale/config`` or in
|
2011-06-08 08:25:55 +02:00
|
|
|
``~/.config/radicale/config``. You can also set the ``RADICALE_CONFIG``
|
|
|
|
environment variable to a path of your choice. Here is the default
|
|
|
|
configuration file, with the main parameters:
|
2011-04-17 16:17:03 +02:00
|
|
|
|
|
|
|
.. code-block:: ini
|
2009-09-01 19:01:28 +02:00
|
|
|
|
|
|
|
[server]
|
2011-04-10 19:41:36 +02:00
|
|
|
# CalDAV server hostnames separated by a comma
|
|
|
|
# IPv4 syntax: address:port
|
|
|
|
# IPv6 syntax: [address]:port
|
|
|
|
# IPv6 adresses are configured to only allow IPv6 connections
|
|
|
|
hosts = 0.0.0.0:5232
|
2010-01-22 19:29:03 +01:00
|
|
|
# Daemon flag
|
|
|
|
daemon = False
|
|
|
|
# SSL flag, enable HTTPS protocol
|
|
|
|
ssl = False
|
2011-04-25 21:09:20 +02:00
|
|
|
# SSL certificate path
|
2010-01-22 19:29:03 +01:00
|
|
|
certificate = /etc/apache2/ssl/server.crt
|
2011-04-25 21:09:20 +02:00
|
|
|
# SSL private key
|
2010-01-22 19:29:03 +01:00
|
|
|
key = /etc/apache2/ssl/server.key
|
2011-04-25 21:09:20 +02:00
|
|
|
|
2009-09-01 19:01:28 +02:00
|
|
|
[encoding]
|
|
|
|
# Encoding for responding requests
|
|
|
|
request = utf-8
|
|
|
|
# Encoding for storing local calendars
|
|
|
|
stock = utf-8
|
|
|
|
|
2010-01-22 19:29:03 +01:00
|
|
|
[acl]
|
|
|
|
# Access method
|
2011-04-25 21:09:20 +02:00
|
|
|
# Value: None | htpasswd | LDAP
|
2011-04-10 19:41:36 +02:00
|
|
|
type = None
|
2011-04-25 21:09:20 +02:00
|
|
|
# Htpasswd filename
|
|
|
|
htpasswd_filename = /etc/radicale/users
|
|
|
|
# Htpasswd encryption method
|
2010-01-22 19:29:03 +01:00
|
|
|
# Value: plain | sha1 | crypt
|
2011-04-25 21:09:20 +02:00
|
|
|
htpasswd_encryption = crypt
|
|
|
|
# LDAP server URL, with protocol and port
|
|
|
|
ldap_url = ldap://localhost:389/
|
|
|
|
# LDAP base path
|
|
|
|
ldap_base = ou=users,dc=example,dc=com
|
|
|
|
# LDAP login attribute
|
|
|
|
ldap_attribute = uid
|
2010-01-22 19:29:03 +01:00
|
|
|
|
2010-02-11 11:27:37 +01:00
|
|
|
[storage]
|
2011-04-25 21:09:20 +02:00
|
|
|
# Folder for storing local calendars, created if not present
|
2010-02-11 01:54:58 +01:00
|
|
|
folder = ~/.config/radicale/calendars
|
2009-09-01 19:01:28 +02:00
|
|
|
|
2011-04-10 19:41:36 +02:00
|
|
|
[logging]
|
|
|
|
# Logging configuration file
|
|
|
|
# If no config is given, simple information is printed on the standard output
|
|
|
|
# For more information about the syntax of the configuration file, see:
|
|
|
|
# http://docs.python.org/library/logging.config.html
|
|
|
|
config = /etc/radicale/logging
|
|
|
|
# Set the default logging level to debug
|
|
|
|
debug = False
|
2011-05-17 00:15:47 +02:00
|
|
|
# Store all environment variables (including those set in the shell)
|
|
|
|
full_environment = False
|
2011-04-10 19:41:36 +02:00
|
|
|
|
2009-09-01 19:01:28 +02:00
|
|
|
This configuration file is read each time the server is launched. If some
|
|
|
|
values are not given, the default ones are used. If no configuration file is
|
|
|
|
available, all the default values are used.
|
2010-01-22 19:29:03 +01:00
|
|
|
|
2011-05-17 00:30:22 +02:00
|
|
|
|
2011-05-09 00:38:36 +02:00
|
|
|
Logging Configuration File
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
Radicale uses the default logging facility for Python. The default
|
|
|
|
configuration prints the information messages to the standard output. It is
|
|
|
|
possible to print debug messages thanks to::
|
|
|
|
|
|
|
|
radicale --debug
|
|
|
|
|
|
|
|
Radicale can also be configured to send the messages to the console, logging
|
|
|
|
files, syslog, etc. For more information about the syntax of the configuration
|
|
|
|
file, see: http://docs.python.org/library/logging.config.html. Here is an
|
|
|
|
example of logging configuration file:
|
|
|
|
|
|
|
|
.. code-block:: ini
|
|
|
|
|
|
|
|
# Loggers, handlers and formatters keys
|
|
|
|
|
|
|
|
[loggers]
|
|
|
|
# Loggers names, main configuration slots
|
|
|
|
keys = root
|
|
|
|
|
|
|
|
[handlers]
|
|
|
|
# Logging handlers, defining logging output methods
|
|
|
|
keys = console,file
|
|
|
|
|
|
|
|
[formatters]
|
|
|
|
# Logging formatters
|
|
|
|
keys = simple,full
|
|
|
|
|
|
|
|
|
|
|
|
# Loggers
|
|
|
|
|
|
|
|
[logger_root]
|
|
|
|
# Root logger
|
|
|
|
level = DEBUG
|
|
|
|
handlers = console,file
|
|
|
|
|
|
|
|
|
|
|
|
# Handlers
|
|
|
|
|
|
|
|
[handler_console]
|
|
|
|
# Console handler
|
|
|
|
class = StreamHandler
|
|
|
|
level = INFO
|
|
|
|
args = (sys.stdout,)
|
|
|
|
formatter = simple
|
|
|
|
|
|
|
|
[handler_file]
|
|
|
|
# File handler
|
|
|
|
class = FileHandler
|
|
|
|
args = ('/var/log/radicale',)
|
|
|
|
formatter = full
|
|
|
|
|
|
|
|
|
2011-05-17 00:32:03 +02:00
|
|
|
# Formatters
|
2011-05-09 00:38:36 +02:00
|
|
|
|
|
|
|
[formatter_simple]
|
|
|
|
# Simple output format
|
|
|
|
format = %(message)s
|
|
|
|
|
|
|
|
[formatter_full]
|
|
|
|
# Full output format
|
|
|
|
format = %(asctime)s - %(levelname)s: %(message)s
|
|
|
|
|
|
|
|
|
2010-01-22 19:29:03 +01:00
|
|
|
Command Line Options
|
|
|
|
~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
All the options of the ``server`` part can be changed with command line
|
|
|
|
options. These options are available by typing::
|
|
|
|
|
|
|
|
radicale --help
|
2010-04-10 01:33:58 +02:00
|
|
|
|
|
|
|
|
2011-05-17 00:30:22 +02:00
|
|
|
Authentication and URLs
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
If no authentication method is set, calendars are available at ``/calendar``
|
|
|
|
and ``/folder/calendar`` URLs.
|
|
|
|
|
|
|
|
If an authentication method is set:
|
|
|
|
|
|
|
|
- calendars at ``/calendar`` URLs are available for all the authenticated
|
|
|
|
people;
|
|
|
|
- calendars at ``/user/calendar`` URLs are only available for the authenticated
|
|
|
|
person called ``user``.
|
|
|
|
|
|
|
|
|
2010-04-10 01:33:58 +02:00
|
|
|
Python Versions and OS Support
|
|
|
|
==============================
|
|
|
|
|
|
|
|
TLS Support
|
|
|
|
-----------
|
|
|
|
|
2011-06-11 17:45:52 +02:00
|
|
|
Python 2.6 suffered `a bug <http://bugs.python.org/issue5103>`_ causing huge
|
|
|
|
timeout problems with TLS. The bug is fixed since Python 2.6.6.
|
2010-07-31 14:01:11 +02:00
|
|
|
|
2010-12-27 17:20:44 +01:00
|
|
|
Python 2.7 and Python 3.x do not suffer this bug.
|
2010-07-31 14:01:11 +02:00
|
|
|
|
2010-04-10 01:33:58 +02:00
|
|
|
Crypt Support
|
|
|
|
-------------
|
|
|
|
|
|
|
|
With the htpasswd access, many encryption methods are available, and crypt is the
|
2011-02-08 20:51:02 +01:00
|
|
|
default one in Radicale. Unfortunately, the ``crypt`` module is unavailable on
|
2010-04-10 01:33:58 +02:00
|
|
|
Windows, you have to pick another method on this OS.
|
2011-04-26 00:09:32 +02:00
|
|
|
|
|
|
|
LDAP Authentication
|
|
|
|
-------------------
|
|
|
|
|
|
|
|
The LDAP authentication module relies on `the python-ldap module
|
|
|
|
<http://www.python-ldap.org/>`_, and thus only works with 2.x versions
|
|
|
|
of Python.
|