RadicaleΒΆ
Radicale is a Free and Open-Source CalDAV and CardDAV Server.
Shares calendars through CalDAV, WebDAV and HTTP.
Shares contacts through CardDAV, WebDAV and HTTP.
Supports events, todos, journal entries and business cards.
Works out-of-the-box, no installation nor configuration required.
Can warn users on concurrent editing.
Can limit access by authentication.
Can secure connections.
Works with many CalDAV and CardDAV clients.
Is GPLv3-licensed free software.
PrerequisitesΒΆ
Your radicale URL needs to be setup:
[isabell@stardust ~]$ uberspace web domain list
isabell.uber.space
[isabell@stardust ~]$
The configuration directory needs to be created:
[isabell@stardust ~] mkdir -p ~/.config/radicale/
InstallationΒΆ
Download SourcesΒΆ
download the latest version and install bcrypt for storing hashed passwords.
[isabell@stardust ~]$ python3.9 -m pip install --user --upgrade radicale bcrypt passlib
Collecting radicale
Downloading Radicale-3.1.8-py3-none-any.whl (138 kB)
ββββββββββββββββββββββββββββββββββββββββ 138.1/138.1 KB 12.8 MB/s eta 0:00:00
Collecting bcrypt
Downloading bcrypt-4.0.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (594 kB)
ββββββββββββββββββββββββββββββββββββββββ 594.1/594.1 KB 26.9 MB/s eta 0:00:00
Collecting passlib
Downloading passlib-1.7.4-py2.py3-none-any.whl (525 kB)
ββββββββββββββββββββββββββββββββββββββββ 525.6/525.6 KB 52.0 MB/s eta 0:00:00
Collecting defusedxml
Downloading defusedxml-0.7.1-py2.py3-none-any.whl (25 kB)
Collecting python-dateutil>=2.7.3
Downloading python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
ββββββββββββββββββββββββββββββββββββββββ 247.7/247.7 KB 38.0 MB/s eta 0:00:00
Collecting vobject>=0.9.6
Downloading vobject-0.9.6.1.tar.gz (58 kB)
ββββββββββββββββββββββββββββββββββββββββ 58.6/58.6 KB 12.0 MB/s eta 0:00:00
Preparing metadata (setup.py) ... done
Collecting six>=1.5
Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Using legacy 'setup.py install' for vobject, since package 'wheel' is not installed.
Installing collected packages: passlib, six, defusedxml, bcrypt, python-dateutil, vobject, radicale
Running setup.py install for vobject ... done
Successfully installed bcrypt-4.0.0 defusedxml-0.7.1 passlib-1.7.4 python-dateutil-2.8.2 radicale-3.1.8 six-1.16.0 vobject-0.9.6.1
WARNING: You are using pip version 22.0.4; however, version 22.2.2 is available.
You should consider upgrading via the '/bin/python3.9 -m pip install --upgrade pip' command.
...
[isabell@stardust ~]$
ConfigurationΒΆ
Create config filesΒΆ
Save the following as your radicale configuration in ~/.config/radicale/config
.
[server]
hosts = 0.0.0.0:8000
[auth]
type = htpasswd
htpasswd_filename = /var/www/virtual/<username>/htpasswd
htpasswd_encryption = bcrypt
[storage]
filesystem_folder = ~/.var/lib/radicale/collections
For a more detailed configuration look here.
Setup daemonΒΆ
Create a file ~/etc/services.d/radicale.ini
and put the following in it:
[program:radicale]
command=radicale
Finishing installationΒΆ
Add a userΒΆ
For the generation of the file with the user use this command:
[isabell@stardust ~]$ htpasswd -B -c /var/www/virtual/$USER/htpasswd isabell
New password:
Re-type new password:
[isabell@stardust ~]$
It will prompt you for a password now.
For every following user use it without -c
:
[isabell@stardust ~]$ htpasswd -B /var/www/virtual/$USER/htpasswd isabell
New password:
Re-type new password:
[isabell@stardust ~]$
Start ServiceΒΆ
After creating the configuration, tell supervisord to refresh its configuration and start the service:
[isabell@stardust ~]$ supervisorctl reread
SERVICE: available
[isabell@stardust ~]$ supervisorctl update
SERVICE: added process group
[isabell@stardust ~]$ supervisorctl status
SERVICE RUNNING pid 26020, uptime 0:03:14
[isabell@stardust ~]$
Configure web serverΒΆ
In order for your Radicale instance to be reachable from the web, you need to connect it to the uberspace frontend using a web backend (web backends):
[isabell@stardust ~]$ uberspace web backend set / --http --port 8000
Set backend for / to port 8000; please make sure something is listening!
You can always check the status of your backend using "uberspace web backend list".
[isabell@stardust ~]$ uberspace web backend list
/ http:8000 => OK, listening: PID 9947, /usr/bin/python3 /home/isabell/.local/bin/radicale
And youβre done!
UpdatesΒΆ
Note
Check the changelog regularly to stay informed about new updates and releases.
[isabell@stardust ~]$ python3.9 -m pip install --user --upgrade radicale
[isabell@stardust ~]$ supervisorctl restart radicale
radicale: stopped
radicale: started
[isabell@stardust ~]$
Tested with Radicale 3.1.8, Uberspace 7.13.0
Written by: stunkymonkey <http://stunkymonkey.de>