Radicale Kalender (CalDAV en CardDAV) installeren op Ubuntu 20.04

Radicale is een vrije en open-source CalDAV (agenda’s, to-do lijsten) en CardDav (contacten) server. Het wil een kleine en lichte (CalDAV en CardDav) server toepassing zijn, die toch krachtig is en out-of-the-box werkt. Met Radicale kun je agenda’s en contactlijsten delen via CalDAV, CardDAV, en HTTPS. En het belangrijkste is dat het beveiligd kan worden via TLS verbinding en authenticatie. Ook werkt het met veel CalDAV en CardDAV clients zoals gnome-calendar, evolution, Mozilla thunderbird, DAVx (voor android), enz.

Radicale wordt geleverd met een eenvoudige configuratie, en het is gemakkelijk te configureren en te installeren. Radicale is geschreven in Python, het draait op besturingssystemen als Linux, BSD, macOS, en Windows.

In deze zelfstudie leer je hoe je Radicale installeert en configureert op Ubuntu 20.04.

Vereisten

  • Een Ubuntu 20.04. Zorg dat pakketten en repositories bijgewerkt zijn.
  • Een root gebruiker of gebruiker met root rechten. Deze zal gebruikt worden voor het installeren van nieuwe pakketten en het bewerken van systeeminstellingen.

Installeren van Passlib en Bcrypt Bibliotheek

In het begin zul je enkele afhankelijkheden van pakketten installeren voor de radicale installatie. Je installeert de python-pip, python-passlib module, en daarna de python bcrypt module uit de PyPI (python repository).

1. Voer het volgende apt commando uit om python-pip en python-passlib module op het Ubuntu systeem te installeren.

sudo apt install python3-pip python3-passlib

Typ‘Y‘ en druk op‘Enter‘ om al die pakketten te installeren.

Installeer Python Pip en Passlib bibliotheek

2. Als de installatie voltooid is, voer je het onderstaande pip commando uit om de Python bcrypt module te installeren.

sudo pip3 install bcrypt

Je ziet nu de volgende uitvoer.

Installeer de Bcrypt bibliotheek

Installeren en instellen van Radicale

Standaard zijn de radicale pakketten beschikbaar in de Ubuntu repository.

1. Voer het onderstaande apt commando uit om radicale op het Ubuntu systeem te installeren.

sudo apt install radicale

Typ‘Y‘ en druk op‘Enter‘ om de radicale pakketten te installeren.

Installeer Radicale Kalender op Ubuntu

2. Nadat de installatie voltooid is, bewerk je de standaard radicale configuratie die te vinden is in‘/etc/radicale/config‘.

Bewerk de radicale configuratie met het nano commando hieronder.

sudo nano /etc/radicale/config

3. Wijzig bij de sectie [server] de standaard configuratie met de volgende configuratie.

[server]

host = 127.0.0.1:5232
max_connections = 20
max_content_length = 100000000
timout = 30

De radicale server zal alleen op het lokale IP adres draaien omdat we er de Apache webserver als reverse proxy voor zetten.

4. Geef vervolgens commentaar op de SSL configuratie zoals hieronder, want de SSL versleuteling zal via de Apache reverse proxy gebeuren.

# SSL flag, enable HTTPS protocol
#ssl = False

# SSL certificate path
#certificate = /etc/ssl/certs/ssl-cert-snakeoil.pem

# SSL private key
#key = /etc/ssl/private/ssl-cert-snakeoil.key

5. Ga daarna naar de sectie ‘[auth]’ en verander de standaard instelling als volgt.

[auth]
type = htpasswd
htpasswd_filename = /etc/radicale/users
htpasswd_encryption = bcrypt

Het authenticatietype dat we gebruiken is‘htpasswd‘ met de sterke versleuteling‘bcrypt‘, en een lijst van gebruikers wordt opgeslagen in het ‘/etc/radicale/gebruikers‘ bestand worden opgeslagen.

6. Vervolgens zie je bij de onderste configuratie de sectie ‘[storage]‘. Verander de configuratie als hieronder om de radicale storage backend in te schakelen.

[storage]
type = multifilysystem
filesystem_folder = /var/lib/radicale/collections
filesystem_locking = True

De standaard opslag-backend voor radicale is ‘multifilesystem’, en alle gebruikersgegevens zijn beschikbaar in de ‘/var/lib/radicale/collections’ directory.

Druk nu op‘Ctrl+x‘ en typ ‘y’, druk dan op de‘Enter‘ knop om op te slaan en af te sluiten.

Gebruikers aanmaken voor Radicale

In dit stadium is de configuratie van radicale voltooid. En voor nu maak je een nieuwe gebruiker en wachtwoord voor radicale, die gegenereerd kunnen worden met het ‘htpasswd’ commando (deel van het ‘apache2-utils’ pakket).

1. Voer het onderstaande apt commando uit om het‘apache2-utils‘ pakket te installeren.

sudo apt install apache2-utils

Typ‘Y‘ en druk op‘Enter‘ om de installatie voort te zetten.

Installeer het Apache utils pakket

2. genereer vervolgens een nieuwe gebruiker (voor dit voorbeeld is dat gebruiker ‘johndoe’) en wachtwoord door het onderstaande htpasswd commando uit te voeren.

sudo htpasswd -B -c /etc/radicale/users johndoe

Typ en herhaal nu het wachtwoord voor gebruiker‘johndoe‘.

Belangrijke opties die je moet kennen:

  • -B optie – dit dwingt om de sterke versleuteling ‘bcrypt’ te gebruiken, niet de standaard ‘md5’.
  • -c optie – Het wachtwoordbestand dat je wilt maken. Gebruikersnaam en wachtwoorden zijn op dat bestand te vinden.

Om een andere gebruiker toe te voegen, voer je gewoon het commando bovenaan uit en verander je de gebruikersnaam met je eigen.

Controleer optioneel het gegenereerde wachtwoordbestand‘/etc/radicale/users‘ met het cat commando zoals hieronder.

cat /etc/radicale/users

Genereer htpasswd gebruikers en wachtwoord

3. Schakel na het genereren van het gebruikers- en wachtwoordbestand de radicale dienst in om automatisch te starten bij het opstarten.

sudo systemctl enable radicale

4. Start nu de radicale dienst en controleer de dienststatus door het volgende commando uit te voeren.

sudo systemctl start radicale
sudo systemctl status radicale

Als de radicale dienst actief is en draait, zie je een soortgelijke uitvoer als hieronder. Zo niet, dan zie je de radicale dienst status als ‘failed’ onderaan de logmeldingen.

Start en controleer de status van de radicale dienst

Stel Apache in als omgekeerde proxy voor Radicale

In dit stadium installeer en configureer je de Apache als omgekeerde proxy voor de radicale.

1. Installeer Apache pakketten door het onderstaande apt commando uit te voeren.

sudo apt install apache2

Typ nu‘Y‘ en druk op‘Enter‘ om de installatie voort te zetten.

Installeer Apache Web Server

2. Als de installatie voltooid is, voer je het volgende commando uit om enkele proxy module voor Apache in te schakelen en de mod_ssl module in te schakelen.

sudo a2enmod proxy proxy_ajp proxy_http rewrite deflate headers proxy_balancer proxy_connect proxy_html ssl

3. Verander nu de werkdirectory in‘/etc/apache2/sites-available‘ en maak een nieuwe virtuele host configuratie‘radicale.conf‘.

cd /etc/apache2/sites-available/
sudo nano radicale.conf

Kopieer en plak de volgende configuratie en let erop dat je de domeinnaam met je eigen domeinnaam verandert.

<VirtualHost *:80>
        
    ServerName cal.domain-name.io
    ServerAdmin [email protected]

    ErrorLog ${APACHE_LOG_DIR}/cal-dmain-name.io.error.log
    CustomLog ${APACHE_LOG_DIR}/cal-dmain-name.io.access.log combined

    ProxyRequests Off
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>

    RewriteEngine On
    RewriteRule ^/radicale$ /radicale/ [R,L]

    <Location "/radicale/">
        AuthType     Basic
        AuthName     "Radicale - Password Required"
        AuthUserFile "/etc/radicale/users"
        Require      valid-user

        ProxyPass        http://localhost:5232/ retry=0
        ProxyPassReverse http://localhost:5232/
        RequestHeader    set X-Script-Name /radicale
        RequestHeader    set X-Remote-User expr=%{REMOTE_USER}
    </Location>

    <Location />
        Order allow,deny
        Allow from all
    </Location>

</VirtualHost>

Sla de configuratie op door op‘Ctrl+x‘ te drukken en‘y‘ te typen, druk dan op‘Enter‘.

Met deze configuratie zal de radicale beschikbaar zijn op het domeinpad ‘domain.com/radicale’, niet op het root pad van de domeinnaam.

4. Voer vervolgens het volgende commando uit om de virtuele host configuratie ‘radicale.conf’ te activeren.

sudo a2ensite radicale.conf

5. Controleer daarna de Apache configuratie en controleer of er geen fout optreedt, herstart dan de Apache dienst om de nieuwe virtuele host configuratie toe te passen.

sudo apachectl configtest
sudo systemctl restart apache2

Als je Apache configuratie juist is, zie je de boodschap‘Syntax OK‘ na het uitvoeren van het ‘apachectl’ commando. En hieronder is de gelijkaardige uitvoer die je krijgt.

Opzetten van Apache Virtuele Host voor Radicale

Genereer SSL Letsencrypt

In dit stadium ga je de radicale installatie beveiligen met de SSL Letsencrypt.

1. Voer het volgende commando uit om de certbot en certbot-apache plugin te installeren.

sudo apt install certbot python-certbot-apache

2. Nadat de installatie voltooid is, genereer je een nieuw SSL Letsencrtypt voor de radicale domeinnaam met het onderstaande certbot commando.

sudo certbot --apache -d domain-name.io -d www.domain-name.io

En hieronder worden je enkele vragen gesteld.

  • Een e-mail adres: wanneer het SSL certificaat verloopt, krijg je een bericht naar dit e-mail adres.
  • Letsencrypt TOS (Terms of Service): typ‘A‘ om akkoord te gaan.
  • E-mail delen met EFF: je kunt‘N‘ kiezen voor nee.
  • Automatisch doorverwijzen van HTTP naar HTTPS: kies nummer ‘2’ om automatisch doorverwijzen in te schakelen.

Als het proces voltooid is, zie je dat de SSL certificaten beschikbaar zijn in de ‘/etc/letsencrypt/live/domain.com’ directory. En de Apache virtuele host is veranderd met aanvullende configuratie van letsencrypt.

Controleer de installatie

Open je web browser en typ de radicale URL installatie in de adresbalk.

https://cal.domain-name.io/radicale/

Nu wordt je gevraagd om de gebruiker en het wachtwoord voor de Apache basis authenticatie.

Radicale Apache Basis Authenticatie

Typ je gebruiker en wachtwoord, en klik dan op de‘Sign in‘ knop.

En je krijgt de Radicale login pagina zoals hieronder.

Radicale login pagina

Typ je gebruiker en wachtwoord voor Radicale en klik op de‘Next‘ knop.

Als je ingelogd bent, klik je op de link‘Maak een nieuw adresboek of kalender‘.

Maak een nieuwe kalender

Verander de titel, beschrijving, soort en kleur met je eigen, en klik dan op de‘Create‘ knop.

Maak een nieuwe kalender

Nu word je omgeleid naar het radicale gebruikersdashboard zoals hieronder.

Radicale gebruikers dashboard

Conclusie

Gefeliciteerd! Nu heb je Radicale met succes geïnstalleerd op Ubuntu 20.04 Server. Voor de volgende stap kun je veilig verbinding maken met je nieuwe radicale server met de CalDAV/CardDAV clients vanaf je computer of smartphone android.