1
0
Fork 0
mirror of https://github.com/Kozea/Radicale.git synced 2025-07-26 17:58:30 +00:00

Update documentation for version 0.8

This commit is contained in:
Guillaume Ayoub 2013-07-12 17:50:48 +02:00
parent bc16736829
commit 3aa6651518
3 changed files with 154 additions and 59 deletions

View file

@ -26,6 +26,9 @@ Source Packages
You can download the Radicale package for each release: You can download the Radicale package for each release:
- `Radicale-0.8.tar.gz
<http://pypi.python.org/packages/source/R/Radicale/Radicale-0.8.tar.gz>`_
(38 KiB)
- `Radicale-0.7.1.tar.gz - `Radicale-0.7.1.tar.gz
<http://pypi.python.org/packages/source/R/Radicale/Radicale-0.7.1.tar.gz>`_ <http://pypi.python.org/packages/source/R/Radicale/Radicale-0.7.1.tar.gz>`_
(34 KiB) (34 KiB)

View file

@ -50,6 +50,8 @@ Radicale supports the latest versions of:
and `CardDAV-Sync and `CardDAV-Sync
<https://play.google.com/store/apps/details?id=org.dmfs.carddav.Sync>`_ <https://play.google.com/store/apps/details?id=org.dmfs.carddav.Sync>`_
for `Google Android <http://www.android.com/>`_ for `Google Android <http://www.android.com/>`_
- `CalDavZAP <http://www.inf-it.com/open-source/clients/caldavzap/>`_
- `CardDavMATE <http://www.inf-it.com/open-source/clients/carddavmate/>`_
- `Apple iPhone <http://www.apple.com/iphone/>`_ - `Apple iPhone <http://www.apple.com/iphone/>`_
- `Apple iCal <http://www.apple.com/macosx/apps/>`_ - `Apple iCal <http://www.apple.com/macosx/apps/>`_
- `syncEvolution <https://syncevolution.org/>`_ - `syncEvolution <https://syncevolution.org/>`_

View file

@ -4,10 +4,10 @@
:Author: Guillaume Ayoub, Daniel Aleksandersen :Author: Guillaume Ayoub, Daniel Aleksandersen
:Date: 2012-07-05 :Date: 2013-07-09
:Abstract: This document is a short description for installing and using the :Abstract: This document is a description for installing and using the Radicale
Radicale calendar and contact Server. calendar and contact Server.
.. contents:: .. contents::
:depth: 3 :depth: 3
@ -19,8 +19,9 @@ Dependencies
------------ ------------
Radicale is written in pure Python and does not depend on any library. It is Radicale is written in pure Python and does not depend on any library. It is
known to work on Python 2.6, 2.7, 3.1, 3.2 and PyPy > 1.7. The dependencies are known to work on Python 2.6, 2.7, 3.1, 3.2, 3.3 and PyPy > 1.9. The
optional, as they are only needed for various authentication methods [#]_. dependencies are optional, as they are only needed for various authentication
methods [#]_.
Linux and MacOS users certainly have Python already installed. For Windows Linux and MacOS users certainly have Python already installed. For Windows
users, please install Python [#]_ thanks to the adequate installer. users, please install Python [#]_ thanks to the adequate installer.
@ -36,8 +37,8 @@ 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 <http://www.radicale.org/download>`_. Just get the file and unzip it in a
folder of your choice. folder of your choice.
CalDAV Clients CalDAV and CardDAV Clients
-------------- --------------------------
At this time Radicale has been tested and works fine with the latest version At this time Radicale has been tested and works fine with the latest version
of: of:
@ -45,10 +46,16 @@ of:
- `Mozilla Lightning <http://www.mozilla.org/projects/calendar/lightning/>`_ - `Mozilla Lightning <http://www.mozilla.org/projects/calendar/lightning/>`_
- `GNOME Evolution <http://projects.gnome.org/evolution/>`_ - `GNOME Evolution <http://projects.gnome.org/evolution/>`_
- `KDE KOrganizer <http://userbase.kde.org/KOrganizer/>`_ - `KDE KOrganizer <http://userbase.kde.org/KOrganizer/>`_
- `aCal <http://wiki.acal.me/wiki/Main_Page>`_ for `Google Android - `aCal <http://wiki.acal.me/wiki/Main_Page>`_, `CalDAV-Sync
<http://www.android.com/>`_ <https://play.google.com/store/apps/details?id=org.dmfs.caldav.lib>`_
and `CardDAV-Sync
<https://play.google.com/store/apps/details?id=org.dmfs.carddav.Sync>`_
for `Google Android <http://www.android.com/>`_
- `CalDavZAP <http://www.inf-it.com/open-source/clients/caldavzap/>`_
- `CardDavMATE <http://www.inf-it.com/open-source/clients/carddavmate/>`_
- `Apple iPhone <http://www.apple.com/iphone/>`_ - `Apple iPhone <http://www.apple.com/iphone/>`_
- `Apple iCal <http://www.apple.com/macosx/apps/>`_ - `Apple iCal <http://www.apple.com/macosx/apps/>`_
- `syncEvolution <https://syncevolution.org/>`_
More clients will be supported in the future. However, it may work with any More clients will be supported in the future. However, it may work with any
calendar or contact client which implements CalDAV or CardDAV specifications calendar or contact client which implements CalDAV or CardDAV specifications
@ -208,6 +215,16 @@ select ``Calendars and Addressbooks``. You should find all the calendars that
are available to your user on the Radicale server. You can then configure each are available to your user on the Radicale server. You can then configure each
of them (display colour, notifications, etc.). of them (display colour, notifications, etc.).
CalDavZAP
~~~~~~~~~
*To be written.*
CardDavMATE
~~~~~~~~~~~
*To be written.*
iPhone & iPad iPhone & iPad
~~~~~~~~~~~~~ ~~~~~~~~~~~~~
@ -221,7 +238,7 @@ that are critical for proper operation.
2. Select ``Mail, Contacts, Calendars`` 2. Select ``Mail, Contacts, Calendars``
3. Select ``Add Account````Other````Add CalDAV Account`` 3. Select ``Add Account````Other````Add CalDAV Account``
4. Enter the server URL here, including ``https``, the port, and the user/calendar 4. Enter the server URL here, including ``https``, the port, and the user/calendar
path, ex: ``https://myserver.domain.com:3000/bob/birthdays/`` path, ex: https://myserver.domain.com:3000/bob/birthdays/
5. Enter your username and password as defined in your server config 5. Enter your username and password as defined in your server config
6. Enter a good description of the calendar in the ``Description`` field. 6. Enter a good description of the calendar in the ``Description`` field.
Otherwise it will put the whole servername in the field. Otherwise it will put the whole servername in the field.
@ -243,7 +260,9 @@ that are critical for proper operation.
Contacts Contacts
++++++++ ++++++++
*To be written* **Contacts do not work yet with Radicale and Apple's clients.** If you are
interested in this feature, please check this `bug report
<https://github.com/Kozea/Radicale/issues/32>`_.
iCal iCal
~~~~ ~~~~
@ -291,7 +310,9 @@ now set-up. You can close the ``Preferences`` window.
Contacts Contacts
++++++++ ++++++++
*To be written* **Contacts do not work yet with Radicale and Apple's clients.** If you are
interested in this feature, please check this `bug report
<https://github.com/Kozea/Radicale/issues/32>`_.
syncEvolution syncEvolution
~~~~~~~~~~~~~ ~~~~~~~~~~~~~
@ -331,9 +352,10 @@ Main Configuration File
version of Radicale. version of Radicale.
The server configuration can be modified in ``/etc/radicale/config`` or in The server configuration can be modified in ``/etc/radicale/config`` or in
``~/.config/radicale/config``. You can also set the ``RADICALE_CONFIG`` ``~/.config/radicale/config``. You can use the ``--config`` parameter in the
environment variable to a path of your choice. Here is the default command line to choose a specific path. You can also set the
configuration file, with the main parameters: ``RADICALE_CONFIG`` environment variable to a path of your choice. Here is the
default configuration file, with the main parameters:
.. code-block:: ini .. code-block:: ini
@ -341,7 +363,7 @@ configuration file, with the main parameters:
# CalDAV server hostnames separated by a comma # CalDAV server hostnames separated by a comma
# IPv4 syntax: address:port # IPv4 syntax: address:port
# IPv6 syntax: [address]:port # IPv6 syntax: [address]:port
# IPv6 addresses are configured to only allow IPv6 connections # IPv6 adresses are configured to only allow IPv6 connections
hosts = 0.0.0.0:5232 hosts = 0.0.0.0:5232
# Daemon flag # Daemon flag
daemon = False daemon = False
@ -355,6 +377,10 @@ configuration file, with the main parameters:
key = /etc/apache2/ssl/server.key key = /etc/apache2/ssl/server.key
# Reverse DNS to resolve client address in logs # Reverse DNS to resolve client address in logs
dns_lookup = True dns_lookup = True
# Root URL of Radicale (starting and ending with a slash)
base_prefix = /
# Message displayed in the client when a password is needed
realm = Radicale - Password Required lol
[encoding] [encoding]
@ -364,20 +390,15 @@ configuration file, with the main parameters:
stock = utf-8 stock = utf-8
[acl] [auth]
# Access method # Authentication method
# Value: None | courier | IMAP | htpasswd | LDAP | PAM # Value: None | htpasswd | IMAP | LDAP | PAM | courier | http
type = None type = None
# Usernames used for public collections, separated by a comma # Usernames used for public collections, separated by a comma
public_users = public public_users = public
# Usernames used for private collections, separated by a comma # Usernames used for private collections, separated by a comma
private_users = private private_users = private
# STARTTLS capable or local IMAP server domain name
imap_auth_host_name = localhost
imap_auth_host_port = 143
# Htpasswd filename # Htpasswd filename
htpasswd_filename = /etc/radicale/users htpasswd_filename = /etc/radicale/users
# Htpasswd encryption method # Htpasswd encryption method
@ -392,7 +413,7 @@ configuration file, with the main parameters:
ldap_attribute = uid ldap_attribute = uid
# LDAP filter string # LDAP filter string
# placed as X in a query of the form (&(...)X) # placed as X in a query of the form (&(...)X)
# example: (objectCategory=…)(objectClass=…)(memberOf=…) # example: (objectCategory=Person)(objectClass=User)(memberOf=cn=calenderusers,ou=users,dc=example,dc=org)
# leave empty if no additional filter is needed # leave empty if no additional filter is needed
ldap_filter = ldap_filter =
# LDAP dn for initial login, used if LDAP server does not allow anonymous searches # LDAP dn for initial login, used if LDAP server does not allow anonymous searches
@ -403,20 +424,46 @@ configuration file, with the main parameters:
# LDAP scope of the search # LDAP scope of the search
ldap_scope = OneLevel ldap_scope = OneLevel
# IMAP Configuration
imap_hostname = localhost
imap_port = 143
imap_ssl = False
# PAM group user should be member of # PAM group user should be member of
pam_group_membership = pam_group_membership =
# Path to the Courier Authdaemon socket # Path to the Courier Authdaemon socket
courier_socket = courier_socket =
# HTTP authentication request URL endpoint
http_url =
# POST parameter to use for username
http_user_parameter =
# POST parameter to use for password
http_password_parameter =
[rights]
# Rights management method
# Value: None | owner_only | owner_write | from_file
type = None
# File for rights management from_file
file = ~/.config/radicale/rights
[storage] [storage]
# Storage backend # Storage backend
# Value: filesystem | database
type = filesystem type = filesystem
# Folder for storing local collections, created if not present # Folder for storing local collections, created if not present
filesystem_folder = ~/.config/radicale/collections filesystem_folder = ~/.config/radicale/collections
# Database URL for SQLAlchemy
# dialect+driver://user:password@host/dbname[?key=value..]
# For example: sqlite:///var/db/radicale.db, postgresql://user:password@localhost/radicale
# See http://docs.sqlalchemy.org/en/rel_0_8/core/engines.html#sqlalchemy.create_engine
database_url =
[logging] [logging]
# Logging configuration file # Logging configuration file
@ -429,6 +476,11 @@ configuration file, with the main parameters:
# Store all environment variables (including those set in the shell) # Store all environment variables (including those set in the shell)
full_environment = False full_environment = False
# Additional HTTP headers
#[headers]
#Access-Control-Allow-Origin = *
This configuration file is read each time the server is launched. If some 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 values are not given, the default ones are used. If no configuration file is
available, all the default values are used. available, all the default values are used.
@ -564,7 +616,7 @@ If you want to use authentication with Apache, you *really* should use one of
the Apache authentication modules, instead of the ones from Radicale: they're the Apache authentication modules, instead of the ones from Radicale: they're
just better. just better.
Deactivate any ACL module in Radicale and use your favourite Apache Deactivate any rights and module in Radicale and use your favourite Apache
authentication backend. You can then restrict the access: allow the ``alice`` authentication backend. You can then restrict the access: allow the ``alice``
user to access ``/alice/*`` URLs, and everything should work as expected. user to access ``/alice/*`` URLs, and everything should work as expected.
@ -609,51 +661,83 @@ explained in `the mod_wsgi documentation
default configuration. default configuration.
Authentication and URLs Authentication
----------------------- --------------
If no authentication method is set, calendars are available at Authentication is possible through:
``/calendar.ics/`` and ``/folder/calendar.ics/`` URLs. Else, calendars are
public, private or personal, depending on their URLs.
This section is written for calendars, but it is the same for address books. - Courier-Authdaemon socket
- htpasswd file, including list of plain user/password couples
- HTTP, checking status code of a POST request
- IMAP
- LDAP
- PAM
Public Collections Check the ``[auth]`` section of your configuration file to know the different
~~~~~~~~~~~~~~~~~~ options offered by these authentication modules.
Public collections are available for everybody, authenticated or not. Some authentication methods need additional modules, see `Python Versions and
OS Support`_ for further information.
Calendars at ``/public_user/calendar.ics/`` URLs are public. Public users are
defined in the ``acl → public_users`` configuration variable. If ``None`` is in
the list of public users, public calendars are also available at
``/calendar.ics/`` URLs.
.. important::
Public calendars allow anybody to create calendars, leading to possible
security problems. If you do not want to allow public calendars, just use an
empty string in the ``acl → public_users`` configuration variable.
Private Collections Rights Management
~~~~~~~~~~~~~~~~~~~ -----------------
Private collections are available for all the authenticated users. You can set read an write rights for collections according to the authenticated
user and the owner of the collection.
Calendars at ``/private_user/calendar`` URLs are private. Private users are The *owner of a collection* is determined by the URL of the collection. For
defined in the ``acl → private_users`` configuration variable. If ``None`` is example, http://my.server.com:5232/anna/calendar.ics/ is owned by the user
in the list of private users, private calendars are also available at called ``anna``.
``/calendar`` URLs.
The *authenticated user* is the login used for authentication.
Personal Collections 3 different configurations are available, you can choose the one you want in
~~~~~~~~~~~~~~~~~~~~ your configuration file.
Personal collections are only available for the calendar owner. Owner Only
~~~~~~~~~~
Calendars at ``/owner/calendar`` URLs are personal. They are only available for Only owners have read and write access to their own collections. The other
the authenticated user called ``owner`` (of course, you can replace ``owner`` by users, authenticated or anonymous, have no access to these collections.
any user name authorized by your authentication mechanism).
Owner Write
~~~~~~~~~~~
Authenticated users have read access to all calendars, but only owners have
write access to their own collections. Anonymous users have no access to
collections.
From File
~~~~~~~~~
File-based rights. Rights are read from a file whose name is specified in the config (section
``[right]``, key ``file``).
Example:
.. code-block:: ini
# This means user1 may read, user2 may write, user3 has full access.
[user0/calendar]
user1: r
user2: w
user3: rw
# user0 can read user1/cal.
[user1/cal]
user0: r
# If a collection a/b is shared and other users than the owner are supposed to
# find the collection in a propfind request, an additional line for a has to
# be in the defintions.
[user0]
user1: r
The owners are implied to have all rights on their collections.
The configuration file is read for each request, you can change it without
restarting the server.
Python Versions and OS Support Python Versions and OS Support
@ -699,6 +783,12 @@ The PAM authentication module relies on `the pam module
<http://atlee.ca/software/pam/>`_, and thus only works with 2.x versions of <http://atlee.ca/software/pam/>`_, and thus only works with 2.x versions of
Python. Python.
HTTP Authentication
-------------------
The HTTP authentication module relies on `the requests module
<http://docs.python-requests.org/en/latest/>`_.
Daemon Mode Daemon Mode
----------- -----------