Radicale is really easy to install and works out-of-the-box.
-$ python3 -m pip install --upgrade https://github.com/Kozea/Radicale/archive/master.tar.gz
-$ python3 -m radicale --storage-filesystem-folder=~/.var/lib/radicale/collections
When the server is launched, open http://localhost:5232/ in your browser! You can login with any username and password.
+python3 -m pip install --upgrade https://github.com/Kozea/Radicale/archive/master.tar.gz
+python3 -m radicale --storage-filesystem-folder=~/.var/lib/radicale/collections
When the server is launched, open http://localhost:5232 in your browser! You can login with any username and password.
Want more? Check the tutorials and the documentation.
Victory! Open http://localhost:5232/ in your browser! You can log in with any username and password.
+Victory! Open http://localhost:5232 in your browser! You can log in with any username and password.
Launch a command prompt and type:
:\Users\User> python -m pip install --upgrade https://github.com/Kozea/Radicale/archive/master.tar.gz
C:\Users\User> python -m radicale --storage-filesystem-folder=~/radicale/collections C
Victory! Open http://localhost:5232/ in your browser! You can log in with any username and password.
+Victory! Open http://localhost:5232 in your browser! You can log in with any username and password.
SSL certificates can be used to encrypt and authenticate the connection between Radicale and the reverse proxy. First you have to generate a certificate for Radicale and a certificate for the reverse proxy. The following commands generate self-signed certificates. You will be asked to enter additional information about the certificate, the values don't matter and you can keep the defaults.
-$ openssl req -x509 -newkey rsa:4096 -keyout server_key.pem -out server_cert.pem -nodes -days 9999
-$ openssl req -x509 -newkey rsa:4096 -keyout client_key.pem -out client_cert.pem -nodes -days 9999
openssl req -x509 -newkey rsa:4096 -keyout server_key.pem -out server_cert.pem \
+-nodes -days 9999
+ openssl req -x509 -newkey rsa:4096 -keyout client_key.pem -out client_cert.pem \
+-nodes -days 9999
Use the following configuration for Radicale:
[server]
ssl = True
@@ -551,7 +553,8 @@ user2:password2
module = radicale
env = RADICALE_CONFIG=/etc/radicale/configExample Gunicorn configuration:
-gunicorn --bind '127.0.0.1:5232' --workers 8 --env 'RADICALE_CONFIG=/etc/radicale/config' radicale
gunicorn --bind '127.0.0.1:5232' --env 'RADICALE_CONFIG=/etc/radicale/config' \
+--workers 8 radicale
Set the configuration option type
in the auth
section to remote_user
. Radicale uses the user name provided by the WSGI server and disables authentication over HTTP.
This tutorial describes how to keep track of all changes to calendars and address books with git (or any other version control system).
The repository must be initialized by running git init
in the file system folder. Internal files of Radicale can be excluded by creating the file .gitignore
with the following content:
.Radicale.cache
+.Radicale.cache
.Radicale.lock
.Radicale.tmp-*
The configuration option hook
in the storage
section must be set to the following command:
@@ -588,7 +591,9 @@ user2:password2
filesystem_folder = ~/.var/lib/radicale/collections
Radicale tries to load configuration files from /etc/radicale/config
and ~/.config/radicale/config
. Custom paths can be specified with the --config /path/to/config
command line argument or the RADICALE_CONFIG
environment variable. Multiple configuration files can be separated by :
(resp. ;
on Windows). Paths that start with ?
are optional.
The same example configuration via command line arguments looks like:
-python3 -m radicale --server-hosts 0.0.0.0:5232,[::]:5232 --auth-type htpasswd --auth-htpasswd-filename ~/.config/radicale/users --auth-htpasswd-encryption md5
python3 -m radicale --server-hosts 0.0.0.0:5232,[::]:5232 \
+--auth-type htpasswd --auth-htpasswd-filename ~/.config/radicale/users \
+ --auth-htpasswd-encryption md5
Add the argument --config ""
to stop Radicale from loading the default configuration files. Run python3 -m radicale --help
for more information.
In the following, all configuration categories and options are described.
Many clients do not support the creation of new calendars and address books. You can use Radicale's web interface (e.g. http://localhost:5232) to create and manage address books and calendars.
+Many clients do not support the creation of new calendars and address books. You can use Radicale's web interface (e.g. http://localhost:5232) to create and manage address books and calendars.
In some clients you can just enter the URL of the Radicale server (e.g. http://localhost:5232
) and your user name. In others, you have to enter the URL of the collection directly (e.g. http://localhost:5232/user/calendar
).
The collection /USERNAME
will be created automatically, when the user authenticates to Radicale for the first time. Clients with automatic discovery of collections will only show calendars and address books that are direct children of the path /USERNAME/
.
Delete the collections by running something like:
-$ curl -u user -X DELETE 'http://localhost:5232/user/calendar'
curl -u user -X DELETE 'http://localhost:5232/user/calendar'
Here is a simple overview of the global architecture for reaching a calendar or an address book through network:
Part | Layer | Protocol or Format |
---|---|---|
Server | +||
Server | Calendar/Contact Storage | iCal/vCard |
'' | Calendar/Contact Server | CalDAV/CardDAV Server |
Transfer | Network | CalDAV/CardDAV (HTTP + TLS) |
Client | +||
Client | Calendar/Contact Client | CalDAV/CardDAV Client |
'' | GUI | Terminal, GTK, Web interface, etc. |