26
février 2019

Serveur Radicale : synchronisation des contacts et du calendrier

Rédigé par  Aucun commentaire   Mis à jour le  12/08/2019

Installation d'un serveur Radicale pour la synchronisation CardDav / Caldav

Pourquoi installer un serveur Radicale ?

 
 
 
 
 
 
 
Radicale est un serveur CalDAV (calendriers, todo-lists) et CardDAV (contacts, groupes de contacts)
Il est libre, open-source et sous GPLv3.
 
Il permet de synchroniser ses contacts, groupes de contacts, et calendriers.
 
Plusieurs autres alternatives sont possibles, parmi lesquelles Baïkal
 
 

 

 

 

 

 

 

 

# Installer python et son module pip

# avec le user pi
sudo aptitude -y install  python3 python3-pip apache2-utils

 

sudo useradd radicale -m -s /bin/bash

sudo passwd radicale

sudo mkdir -p /var/log/radicale/

sudo chown -R radicale:radicale /var/log/radicale
 
 

# Installation du serveur

# avec user radicale
mkdir -p ~/.config/radicale/

mkdir -p  ~/.config/systemd/user/

python3 -m pip install --upgrade radicale radicale[bcrypt] passlib[bcrypt]
 

# Création du fichier de mot de passe  (chiffrage bcrypt)

htpasswd -B -c  ~/.config/radicale/users nom_du_compte1

htpasswd -B     ~/.config/radicale/users nom_du_compte(x)

En mettant bien évidemment ce que vous voulez comme user à la place de nom_du_compte1

 

 

# Créer un fichier de configuration

~/.config/radicale/config
[auth]
type = htpasswd
htpasswd_filename = ~/.config/radicale/users

# encryption method used in the htpasswd file
htpasswd_encryption = bcrypt 

# Average delay after failed login attempts in seconds
delay = 10 

[storage]
filesystem_folder = ~/.config/radicale/collections

[server]
# ouvert à toute IP hosts = 0.0.0.0:5232
max_connections = 1 
# 1 Megabyte
max_content_length = 10000000 
# 10 seconds
timeout = 10 

[logging] 
config = ~/.config/radicale/logs.conf

/!\  Pour plus d'option, voir le site officiel
https://radicale.org/configuration/

 

 

# Créer un fichier de logging (format python)

~/.config/radicale/logs.conf
[loggers]
keys = root

[handlers]
keys = file

[formatters]
keys = full

[logger_root]
# Change this to DEBUG or INFO for higher verbosity.
level = INFO
handlers = file

[handler_file]
class = handlers.RotatingFileHandler
# Specify the output file and parameter for rotation here.
# See https://docs.python.org/3/library/logging.handlers.html#logging.handlers.RotatingFileHandler
# Example: rollover at 100000 kB and keep 10 files (means 1 MB)
args = ('/var/log/radicale/log', 'a', 100000, 10)
formatter = full

[formatter_full]
format = %(asctime)s - [%(thread)x] %(levelname)s: %(message)s

/!\  Pour plus d'option, voir le site officiel
https://docs.python.org/3/library/logging.config.html#configuration-file-format

 
 
 

# Démarrage du serveur

python3 -m radicale

On vérifie que tout s'est bien passé dans /var/log/radicale/log

2019-02-18 22:07:15,414 - [76f75640] INFO: Starting Radicale
2019-02-18 22:07:15,415 - [76f75640] INFO: Authentication type is 'htpasswd'
2019-02-18 22:07:16,612 - [76f75640] INFO: Storage type is 'multifilesystem'
2019-02-18 22:07:16,623 - [76f75640] INFO: Rights type is 'owner_only'
2019-02-18 22:07:16,623 - [76f75640] INFO: Web type is 'internal'
2019-02-18 22:07:16,633 - [76f75640] INFO: Listening to 'jarvis' on port 5232
2019-02-18 22:07:16,634 - [76f75640] INFO: Radicale server ready

 

Si ca démarre bien, on peut faire Control+C pour stopper le process et passer à l'étape suivante

 

 

# Démarrer Radicale en processus Démon

 
En root créer le fichier /lib/systemd/system/radicale.service
[Unit]
Description=A simple CalDAV (calendar) and CardDAV (contact) server

[Service]
ExecStart=/usr/bin/env python3 -m radicale
Restart=on-failure
User=radicale
Group=radicale

[Install]
WantedBy=multi-user.target

 

# Activer le démon

systemctl enable radicale.service

systemctl start radicale

systemctl status radicale

 

# Vérifier les logs

journalctl --unit radicale.service

 

 

# Créer ses collections

Il ne reste plus qu'à créer ce qu'on appelle des collections
Se connecter à l'interface Radicale : http://192.168.0.254:5232 à l'aide de l'un des identifiants créés précédemment.
 
On créé une collection pour le carnet d'adresse 'AddressBook" et une autre pour le calendrier "Calendar, journal and tasks"
Évidemment, on peut en créer autant que de carnet d'adresse et d'agenda souhaité.
 
Les liens qui apparaissent seront ceux à fournir lors de la configuration de votre connecteur CardDav et/ou Caldav.

 
 
 

# Importer ses calendriers

D'abord récupérer un export en .ICS de vos anciens agenda (Google, Posteo, etc)
Je vous conseille de faire un export par agenda (anniversaires, normal, professionnel, etc) pour pouvoir les réimporter chacun dans un agenda différent également.

Une fois fait, on passe à l'import, malheureusement Radicale ne propose pas d'interface pour faire l'import initial, il faudra donc utiliser un logiciel tiers qui servira de connecteur Caldav.
Perso je prends Thunderbird + l'addon lightning que vous pouvez installer juste pour ca

J'ouvre l'addon Lightning et dans le cadre à gauche, je crée un nouvel agenda, de type "sur le réseau", "caldav"  et et je colle l'URL récupérée à l'étape précédente.
Je tente une synchronisation pour m'assurer qu'il n'y a aucune erreur.

Ensuite je clique le menu en haut à droite (les 3 petites barres horizontales) > évènements et tâches > importer et je fournis le .ICS

Thunderbird va se bloquer pendant 2-3 minutes le temps de faire l'import.
Il n'est pas impossible que Thunderbird rafraichisse mal l'agenda, il faut décocher/recocher la case pour rafraichir l'affichage correctement.
Puis je répète cette opération pour autant d'agenda que je souhaite avoir

 
 

# Importer ses contacts

D'abord il faut les exporter dans un format facile à réimporter, je préconise vCard. Je conseille un fichier par groupe.
 
Une fois fait, on passe à l'import, mais là aussi il va me falloir un outil tiers, et j'opte encore pour un addon thunderbird qui s'appelle Cardbook qui fera office de connecteur Carddav.
 
Je clic droit  gauche "nouveau carnet d'adresse", je choisis le type "distant", à l'écran suivant je conserve donc bien Carddav et je renseigne l'URL fournie par Radicale ainsi que les identifiants que j'avais choisi.
Je tente une synchro, si c'est OK je clic droit sur mon nouveau carnet d'adresse et je fais "importer des contacts depuis un fichier" en fournissant donc mon fichier vCard.
 
Je répète l'opération pour autant de carnet d'adresse que je veux.

 

# Synchroniser ses contacts et agendas

A partir de là, vous avez donc tout réimporter, libre à vous de faire des modifications de vos contacts et agendas depuis vos addons Thunderbird Cardbook et Lightning
 
Concernant la synchronisation mobile (c'est ce qui intéresse le plus en général), je peux vous conseiller dans le choix des applications:

Une fois votre choix fait, la configuration se fera de la même façon en précisant l'adresse fournie par Radicale pour chaque Carnet d'adresse et Calendrier.

Écrire un commentaire

 Se rappeler de moi sur ce site

Quelle est la cinquième lettre du mot ycmsymp ? :

Serveur Radicale : synchronisation des contacts et du calendrier - Recettes de Geek ! - while ( ! tasty) cook_again();