Aller au contenu

Radicale – Auto-hébergez vos contacts, calendriers & tâches

Dernière mise à jour: mai 2022. Destiné aux utilisateurs chevronnés. De solides compétences techniques sont requises.

Calendrier Radicale


Radicale est une solution auto-hébergée pour la gestion de contacts, calendriers et tâches sur votre serveur Ubuntu. Elle ne se targue pas de proposer un large éventail de fonctionnalités, mais elle excelle dans ce qu'elle fait. Radicale est FOSS et supporte de nombreux clients.


Installation de Radicale

Installez Radicale

Suivez les instructions ci-dessous pour résoudre toutes les dépendances et installer Radicale sur votre serveur.

Montrez-moi le guide pas-à-pas

Prérequis

Radicale requiert Python pour fonctionner. Connectez-vous au serveur et installez les packages suivants :

sudo apt install python3 python3-pip

Installation

Installez Radicale :

sudo -H python3 -m pip install --upgrade radicale

Ensuite, créez un utilisateur système qui lancera Radicale. Dans le cadre de ce tutoriel, nous appellerons cet utilisateur système radicaleadmin. Évidemment, vous pouvez choisir n'importe quel nom, assurez-vous simplement d'ajuster les commandes en conséquence :

sudo useradd --system --home-dir / --shell /sbin/nologin radicaleadmin

Pas besoin d'une base de données, créez simplement un dossier où les données de Radicale seront stockées en fichiers bruts :

sudo mkdir -p /var/lib/radicale/collections
Montrez-moi une vidéo récapitulative (1min)


Configurer Radicale

Configurez Radicale

Après avoir installé Radicale avec succès, nous allons configurer un certain nombre de paramètres tels que le support multi-utilisateurs, les permissions, le démarrage automatique, etc. Des instructions plus détaillées sont disponibles ci-dessous.

Montrez-moi le guide pas-à pas

Utilisateurs et utilisatrices

Radicale supporte des utilisateurs multiples. Chacun.e d'eux peut avoir son propre lot de calendriers, contacts, et tâches. Les accès peuvent être sécurisés par des identifiants utilisateur, qui sont stockés dans un fichier chiffré sur le serveur.

Installez les packages suivants pour activer le chiffrement :

sudo -H python3 -m pip install --upgrade passlib bcrypt

Ensuite, créez un répertoire pour stocker les identifiants utilisateur :

sudo mkdir /var/www/radicale

Enfin, créez un premier compte utilisateur avec la commande ci-dessous, en utilisant le flag -c. Remplacez $USER par le vrai nom d'utilisateur. Lorsque vous y êtes invité, entrez un mot de passe fort et unique :

sudo htpasswd -B -c /var/www/radicale/users $USER

En guise d'illustration, créons trois utilisateurs — Georg, Lenina et Tom :

sudo htpasswd -B -c /var/www/radicale/users Georg
sudo htpasswd -B /var/www/radicale/users Lenina
sudo htpasswd -B /var/www/radicale/users Tom

Notez que nous avons utilisé l'option -c pour créer le premier utilisateur Georg, puis nous avons enlevé l'option pour créer les utilisateurs supplémentaires Lenina et Tom.

Enfin, vérifiez que tous les identifiants utilisateur ont été ajoutés correctement :

sudo cat /var/www/radicale/users

Le terminal devrait afficher quelque chose comme :

Georg:$2y$05$Zsb8MYlKjRr2InVi/IQNtustqfdnHWN14uG9jNNhx1g rF7a/8Cg6
Lenina:$2y$05$Hh2Y8nrikm 9f1Pz8LrOFe K5NR HlL0Qz3Yvv gupSBgIr4lT0bi
Tom:$2y$05$1BnHnXCqNHXZtWMiFhnxBOpYM9xeVnZXm70SoTclEfsrI JPSvDVy

Paramètres

Créez un répertoire contenant tous les paramètres :

sudo mkdir /etc/radicale

Ouvrez la configuration :

sudo vi /etc/radicale/config

Ajoutez ou modifiez les lignes suivantes :

[server]
hosts               = 0.0.0.0:5232, [::]:5232
max_connections     = 20
max_content_length  = 10000000
timeout             = 10

[auth]
type                = http_x_remote_user
htpasswd_filename   = /var/www/radicale/users
htpasswd_encryption = bcrypt
delay               = 5

[storage]
filesystem_folder   = /var/lib/radicale/collections

Quelques informations supplémentaires à propos de ces paramètres :

Paramètre Description
hosts Permet l'accès à distance aux calendriers et contacts.
max_connections Limite le nombre de connexions en parallèle à 20.
max_content_length Limite la taille de fichier à 1 Mo. Important pour les photos de contact lourdes.
timeout Termine les connexions après 10 secondes.
type Permet l’authentification avec le reverse proxy. Radicale utilise le nom d'utilisateur fourni dans l'en-tête HTTP de X-Remote-User.
htpasswd_filename Fournit l'emplacement où les noms d'utilisateur et les mots de passe sont stockés. Pour cette installation, c'est /var/www/radicale/users.
htpasswd_encryption Fournit la méthode utilisée pour chiffrer les noms d'utilisateur et mots de passe. Pour cette installation, c'est bcrypt.
delay Fixe à 5 secondes le délai après une tentative d'ouverture de session infructueuse, pour éviter les attaques par force brute.
filesystem_folder Fournit l'emplacement où Radicale stocke les données. Pour cette installation, c'est /var/lib/radicale/collections.

Permissions

Nous allons limiter à l'utilisateur radicaleadmin l'accès aux répertoires /var/lib/radicale (contient les données), /var/www/radicale (contient les identifiants utilisateur chiffrés) et /etc/radicale (contient les paramètres) :

sudo chown -R radicaleadmin:radicaleadmin /var/lib/radicale
sudo chmod -R 700 /var/lib/radicale

sudo chown -R radicaleadmin:radicaleadmin /var/www/radicale
sudo chmod -R 755 /var/www/radicale

sudo chown -R radicaleadmin:radicaleadmin /etc/radicale
sudo chmod -R 700 /etc/radicale

Démarrage automatique

Assurez-vous que Radicale se lance automatiquement à chaque démarrage. Créez un fichier de configuration :

sudo vi /etc/systemd/system/radicale.service

Ajoutez le contenu suivant (ajustez en conséquence) :

[Unit]
Description=A simple CalDAV (calendar) and CardDAV (contact) server
After=network.target
Requires=network.target

[Service]
ExecStart=/usr/bin/env python3 -m radicale
Restart=on-failure
User=radicaleadmin
Group=radicaleadmin
PrivateTmp=true
ProtectSystem=strict
ProtectHome=true
PrivateDevices=true
ProtectKernelTunables=true
ProtectKernelModules=true
ProtectControlGroups=true
NoNewPrivileges=true
ReadWritePaths=/var/lib/radicale/collections

[Install]
WantedBy=multi-user.target

Vérifions que Radicale se lance automatiquement à chaque fois que le serveur démarre :

sudo systemctl daemon-reload
sudo systemctl enable radicale

Redémarrez le serveur :

sudo reboot

Assurez-vous que Radicale est en état de marche (le statut devrait être "Actif") :

sudo systemctl status radicale
Montrez-moi une vidéo récapitulative (2min)


Interface web de Radicale

Interface web

Nous allons configurer un hôte virtuel Apache comme proxy inverse pour accéder à l'interface web de Radicale. Continuez votre lecture ci-dessous pour plus de détails.

Montrez-moi le guide étape par étape

Créez un fichier de configuration Apache :

sudo vi /etc/apache2/sites-available/myradicale.gofoss.duckdns.org.conf

Ajoutez le contenu suivant et assurez-vous de régler les paramètres selon votre propre configuration, comme les noms de domaines (myradicale.gofoss.duckdns.org), chemins vers les clés SSL, adresses IP et ainsi de suite :

<VirtualHost *:80>

ServerName              myradicale.gofoss.duckdns.org
ServerAlias             www.myradicale.gofoss.duckdns.org
Redirect permanent /    https://myradicale.gofoss.duckdns.org/

</VirtualHost>

<VirtualHost *:443>

ServerName              myradicale.gofoss.duckdns.org
ServerAlias             www.myradicale.gofoss.duckdns.org
ServerSignature         Off

SecRuleEngine           Off
SSLEngine               On
SSLProxyEngine          On
SSLProxyCheckPeerCN     Off
SSLCertificateFile      /etc/dehydrated/certs/gofoss.duckdns.org/fullchain.pem
SSLCertificateKeyFile   /etc/dehydrated/certs/gofoss.duckdns.org/privkey.pem

<Location />
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
    Allow from 192.168.1.0/24
    Allow from 10.8.0.1/24
</Location>

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

<Location "/radicale/">
    AuthType      Basic
    AuthName      "Radicale - Password Required"
    AuthUserFile  "/var/www/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>

ErrorLog ${APACHE_LOG_DIR}/myradicale.gofoss.duckdns.org-error.log
CustomLog ${APACHE_LOG_DIR}/myradicale.gofoss.duckdns.org-access.log combined

</VirtualHost>

Une fois que le contenu est ajouté, sauvez et quittez le fichier (:wq!).

Notez comment nous avons activé le chiffrement SSL pour Radicale avec l'instruction SSLEngine On, et utilisé le certificat SSL /etc/dehydrated/certs/gofoss.duckdns.org/fullchain.pem ainsi que la clé privée SSL /etc/dehydrated/certs/gofoss.duckdns.org/privkey.pem, que nous avions créés précédemment.

Notez également comment nous avons désactivé ModSecurity dans le fichier de configuration d'Apache avec l'instruction SecRuleEngine Off, car Radicale et ModSecurity ne font pas bon ménage.

Maintenant, activez l'hôte virtuel d'Apache et redémarrez Apache :

sudo a2ensite myradicale.gofoss.duckdns.org.conf
sudo systemctl reload apache2

Configurez Pi-Hole pour résoudre l'adresse locale de Radicale. Naviguez vers https://mypihole.gofoss.duckdns.org et connectez-vous à l'interface web de Pi-Hole (ajustez en conséquence). Naviguez vers l'entrée Local DNS Record et ajoutez la combinaison domaine/IP suivante (ajustez en conséquence) :

DOMAIN:      myradicale.gofoss.duckdns.org
IP ADDRESS:  192.168.1.100

Naviguez jusqu'à https://myradicale.gofoss.duckdns.org/radicale et connectez-vous avec des identifiants valides. Créez alors des calendrier, des répertoires et des listes de tâches selon vos besoins.

Montrez-moi une vidéo récapitulative (1min)

Dans cette vidéo, nous configurons une interface web, nous créons un carnet d'adresses et un calendrier pour Georg, et une liste de tâches pour Lenina.


Clients Radicale

Clients

Sous Android, DAVx⁵ s'intègre nativement aux applications de calendrier, de contact et de tâches pour les synchroniser avec Radicale. Sous Windows, macOS ou Linux (Ubuntu), Radicale est compatible avec Thunderbird. Plus d'instructions sont données ci-après.

Montrez-moi le guide pas-à-pas pour Android

Ouvrez F-Droid et installez DAVx⁵. Ou alors, vous pouvez trouver l'appli sur Aurora Store ou Google's Play Store.

Paramètres Description
Lancer DAVx⁵ Ouvrir l'application DAVx⁵ et désactiver l'optimisation de la batterie en cas d'invite.
Créer un nouveau compte Taper sur le signe + pour créer un nouveau compte. Sélectionner Connexion avec une URL et un nom d'utilisateur.
URL de base Fournir l'adresse du serveur Radicale. Dans notre exemple, c'est https://myradicale.gofoss.duckdns.org/radicale, ajustez en conséquence.
Utilisateur & Mot de passe Fournir des identifiants utilisateur valides. Dans notre exemple, les utilisateurs valides sont Georg, Lenina ou Tom. Ajustez en conséquence.
Méthode de groupe de contacts Sur l'écran suivant, sélectionner Les groupes sont des VCards distincts.
Créer un compte Cliquer sur Créer un compte.

Montrez-moi le guide pas-à-pas pour Windows, macOS & Linux (Ubuntu)

Reportez-vous au chapitre précédent sur les clients mail pour des instructions détaillées. Une fois installé, ouvrez Thunderbird, naviguez jusqu'à Outils ‣ Suppléments et installez l'extension Cardbook. Enfin, redémarrez Thunderbird.

Utilisateurs et utilisatrices ont besoin d'un accès VPN

Tout.e.s les utilisateurs et utilisatrices doivent être connecté.e.s via VPN pour accéder à Radicale.


Importez vos contacts dans Radicale

Importez vos contacts

Vos contacts existants sont probablement dispersés un peu partout. Suivez les instructions ci-dessous pour les importer dans Radicale.

Montrez-moi un guide étape par étape

Étapes Description
Étape 1 Allez sur les appareils ou services du cloud où vous stockez vos contacts (Google, Microsoft, Apple, etc.). Exportez-les en format vCard (.vcf).
Étape 2 Faites une sauvegarde des fichiers .vcf.
Étape 3 Transférez les fichiers .vcf sur votre téléphone Android.
Étape 4 Ouvrez l'application Contacts de votre téléphone. Si vous utilisez une autre application pour gérer vos contacts, les instructions pourront être légèrement différentes.
Étape 5 Allez à Paramètres ‣ Importer.
Étape 6 Sélectionner Importer les contacts à partir d'un fichier .vcf.
Étape 7 Cherchez l'emplacement des fichiers .vcf et sélectionnez-en un.
Étape 8 Sélectionnez Sauvegarder les contacts importés dans DAVx⁵ et choisissez le bon répertoire d'adresses dans Radicale.
Étape 9 Répétez l'opération jusqu'à ce que tous les contacts aient été importés.


Radicale synchronisez vos contacts

Synchronisez vos contacts

Lors de la synchronisation de vos contacts, toutes les modifications effectuées sur vos appareils Android, Windows, macOS ou Linux (Ubuntu) seront répliquées sur le serveur Radicale et les autres appareils connectés, et vice versa. Plus d'instructions sont données ci-après.

Montrez-moi le guide étape par étape pour Android

Étapes Description
Étape 1 Sur votre appareil Android, ouvrez l'application DAVx⁵ et sélectionnez un compte.
Étape 2 Naviguez jusqu'à l'ongle CardDAV et sélectionnez le carnet d'adresse de Radicale que vous souhaitez synchroniser avec votre téléphone.
Étape 3 Cliquez sur le bouton de synchronisation.
Étape 4 Assurez-vous que tout s'est bien passé. Ouvrez l'application Contacts de votre téléphone et cliquez sur Paramètres ‣ Comptes. Le carnet d'adresse de Radicale devrait s'afficher.

Montrez-moi le guide étape par étape pour Windows, macOS & Linux (Ubuntu)

Étapes Description
Étape 1 Connectez-vous dans https://myradicale.gofoss.duckdns.org/radicale (adaptez en conséquence).
Étape 2 Naviguez jusqu'au carnet d'adresses que vous souhaitez synchroniser, et copiez l'URL du lien.
Étape 3 Ouvrez Thunderbird et naviguez jusqu'à Cardbook ‣ Carnet d'adresses ‣ Nouveau carnet d'adresse.
Étape 4 Suivez les instructions de l'assistant :
Emplacement : Distant
Type: CardDAV
URL:Collez le lien de l'URL vers le carnet d'adresses que vous avez copié précédemment.
Nom d'utilisateur & Mot de passe: Saisissez vos identifiants utilisateurs de Radicale
Propriétés: Fournissez le nom du carnet d'adresse, la couleur, la disponibilité hors ligne, ...
Étape 5 Assurez-vous que tout s'est bien passé. Le carnet d'adresse de Radicale devrait s'afficher dans l'onglet Cardbook.


Radicale importez vos calendriers

Importez vos calendriers

Vos calendriers existants sont probablement répartis dans différents endroits. Suivez les instructions ci-dessous pour les importer dans Radicale.

Montrez-moi le guide étape par étape

Étapes Description
Étape 1 Allez sur les appareils ou services du cloud où vous stockez vos calendriers (Google, Microsoft, Apple, etc.). Exportez-les en format iCalendar fomat (.ics).
Étape 2 Faites une sauvegarde des fichiers .ics.
Étape 3 Transférez les fichiers .ics sur votre téléphone Android.
Étape 4 Sur votre téléphone, ouvrez F-Droid et installez l'application d'importation/exportation de calendriers Calendar. Vous pouvez aussi récupérer cette application sur Google's Play Store
Étape 5 Ouvrez l'application Calendar et cliquez sur Importer des fichiers.
Étape 6 Cherchez l'emplacement des fichiers .ics et sélectionnez-en un.
Étape 7 Importez-le dans DAVx⁵ et choisissez le bon calendrier Radicale.
Étape 8 Répétez l'opération jusqu'à ce que tous les calendriers aient été importés.


Radicale synchronisez vos calendriers

Synchronisez vos calendriers

Lors de la synchronisation de vos calendriers, toutes les modifications effectuées sur vos appareils Android, Windows, macOS ou Linux (Ubuntu) seront répliquées sur le serveur Radicale et les autres appareils connectés, et vice versa. Plus d'instructions sont données ci-après.

Montrez-moi le guide étape par étape pour Android

Étapes Description
Étape 1 Sur votre téléphone Android, affichez l'écran principal de DAVx⁵ et choisissez un compte.
Étape 2 Allez sur l'onglet CalDAV et sélectionnez les calendriers Radicale que vous souhaitez synchroniser avec votre téléphone.
Étape 3 Cliquez sur le bouton de synchronisation.
Étape 4 Installez et ouvrez l'application Simple Calendar sur votre téléphone. Si vous utilisez une autre application pour gérer vos calendriers, les instructions qui suivent pourront être légèrement différentes.
Étape 5 Cliquez sur Paramètres et vérifiez que l'option CalDAV sync est bien active.
Étape 6 Cliquez sur Gérer les calendriers synchronisés. Les calendriers Radicale devraient apparaître ici.
Étape 7 Sélectionnez les calendriers Radicale et cliquez sur OK.

Montrez-moi le guide étape par étape pour Windows, macOS & Linux (Ubuntu)

Étapes Description
Étape 1 Connectez-vous à https://myradicale.gofoss.duckdns.org/radicale (ajuster en conséquence).
Étape 2 Allez au calendrier que vous souhaitez synchroniser et copier son adresse URL.
Étape 3 Ouvrez Thunderbird et allez sur Fichier ‣ Nouveau ‣ Agenda.
Étape 4 Suivez les instructions d'installation qui s'affichent:
Créer un nouvel agenda: Sur le réseau
Format: CalDAV (ne pas choisir iCalendar (ICS)!)
Nom d'utilisateur: Indiquez un nom d'utilisateur Radicale valide
Emplacement:Collez le lien vers le calendrier que vous avez copié précédemment
Prise en charge du mode hors connexion: Cochez la case
Personnaliser votre agenda: Donnez un nom et une couleur à votre agenda, cochez Afficher les alarmes, associez une adresse de messagerie pour gérer les invitations, etc.
Étape 5 Vérifiez que tout s'est bien déroulé. Le calendrier Radicale devrait s'afficher dans l'onglet Agenda.


Radicale synchronisez vos tâches

Synchronisez vos tâches

Lors de la synchronisation de vos tâches, toutes les modifications effectuées sur vos appareils Android, Windows, macOS ou Linux (Ubuntu) seront répliquées sur le serveur Radicale et les autres appareils connectés, et vice versa. Plus d'instructions sont données ci-après.

Montrez-moi le guide étape par étape pour Android

Étapes Description
Étape 1 Sur votre téléphone Android, affichez l'écran principal de DAVx⁵ et choisissez un compte.
Étape 2 Allez sur l'onglet CalDAV et sélectionnez les listes de tâches Radicale que vous souhaitez synchroniser avec votre téléphone.
Étape 3 Cliquez sur le bouton de synchronisation.
Étape 4 Installez et ouvrez l'[application Tasks.org sur votre téléphone. Si vous utilisez une autre application pour gérer vos listes de tâches, les instructions qui suivent pourront être légèrement différentes.
Étape 5 Cliquez sur Paramètres et sélectionnez Listes affichées. Les listes de tâches Radicale devraient apparaître ici.

Montrez-moi le guide étape par étape pour Windows, macOS & Linux (Ubuntu)

Étapes Description
Étape 1 Connectez-vous à https://myradicale.gofoss.duckdns.org/radicale (ajustez en conséquence).
Étape 2 Allez à la liste de tâches que vous souhaitez synchroniser et copier son adresse URL.
Étape 3 Ouvrez Thunderbird et allez sur Fichier ‣ Nouveau ‣ Agenda.
Étape 4 Suivez les instructions d'installation qui s'affichent:
Créer un nouvel agenda: Sur le réseau
Format: CalDAV (ne pas choisir iCalendar (ICS)!)
Nom d'utilisateur: Indiquez un nom d'utilisateur Radicale valide
Emplacement: Collez le lien vers le calendrier que vous avez copié précédemment
Prise en charge du mode hors connexion: Cochez la case
Personnaliser votre agenda: Donnez un nom et une couleur à votre liste de tâches, Cochez Afficher les alarmes. Il n'est pas nécessaire d'ajouter une adresse de messagerie.
Étape 5 Vérifiez que tout s'est bien déroulé. La liste de tâches Radicale devrait s'afficher dans l'onglet Agenda.


Sauvegarde Radicale

Sauvegarde

Faites régulièrement des sauvegardes pour éviter de perdre vos données ! Radicale est très bien mais n'est pas totalement exempte de toute erreur. Les contacts, calendriers et listes de tâches restent synchronisés tant que vos appareils restent connectés au serveur via le VPN. Il peut parfois y avoir des problèmes de synchronisation, notamment lorsque les modifications ne sont pas correctement sauvegardées ou que les appareils se déconnectent. L'utilisateur peut par ailleurs supprimer des données par inadvertance : dans ce cas, une fois la synchronisation faite entre le serveur et les appareils, les données sont définitivement perdues.

Montrez-moi le guide étape par étape

Si vous souhaitez faire des sauvegardes manuellement, connectez-vous à https://myradicale.gofoss.duckdns.org/radicale (ajustez en conséquence) et cliquez sur les adresses URL des carnets d'adresses, calendriers et listes de tâches pour télécharger vos données.

Vous pouvez aussi effectuer des sauvegardes automatiques des répertoires /var/lib/radicale, /var/www/radicale et/etc/radicale.


Assistance Radicale

Assistance

Pour davantage de précisions, consultez les documentations de Radicale, DAVx⁵ ou Thunderbird.

Radicale