menu
Radicale : Installer un serveur Carddav/Caldav

Installation d'un serveur Radicale pour la synchronisation des contacts et calendriers ( CardDav / Caldav)

 

Ci-dessous l'installation manuelle, mais il existe un playbook Ansible prêt à l'emploi :

https://github.com/share-me/init_raspberry

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

ATTENTION: Avant de vous lancer dans l'installation d'un serveur Radicale pour auto-héberger vos propres données de contacts et calendrier, j'espère que vous avez bien conscience qu'il est de votre responsabilité de faire des sauvegardes régulières de ces données.

 

 

 

 

 

# Installer python et son module pip

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

 
# Installation de Radicale et ses librairies

sudo useradd radicale -m -s /bin/bash

sudo mkdir -p /var/log/radicale/

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

sudo passwd radicale

sudo su - radicale

 

# avec user radicale

mkdir -p ~/.config/radicale/

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

pip3 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

 
nano ~/.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 = 2
# 1 Megabyte
max_content_length = 10000000 
# 10 seconds
timeout = 10 


/!  Pour plus d'option, voir le site officiel
https://radicale.org/3.0.html#documentation/configuration

 

 

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

 
nano ~/.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

 
 
 

# Créer un fichier de service systemd

# revenir au user pi
 
sudo nano /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 service Radicale

sudo systemctl enable radicale.service

sudo systemctl start radicale

systemctl status radicale

 

# Vérifier les logs

journalctl --unit radicale.service

Ou bien on jette un oeil dans le log

cat  /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

# Utilisation

Je vous invite à lire l'article concerné sur l'utilisation de Radicale

face Nerd
insert_invitation 26 février 2019
folder Tutoriels
label Radicale
label Carddav
label Caldav
label opensource
label Agenda
label Address book

5 commentaires

comment

Bonjour,

Je suis sous debian buster, et avec des raspberry 3
J'ai voulu installer le serveur RADICALE.
J'ai donc suivi le tuto pour l'installation.(bien fait entre nous )
Tous semble bien se dérouler, mais lorsque je verifie les log le service demarre mais s'arrète tous de suite.:rolleyes:
une idée pur un coup de main

Merci
Michel

#1
face michel semal
insert_invitation dimanche 07 mars 2021 - 11:56
Répondre
comment

Bonjour Michel
Quelle est l'erreur qui apparait?

Il me semble que j'avais eu le même cas que toi mais je ne me souviens plus de la raison

Ca donne quoi avec le user radicale quand tu executes manuellement
/usr/bin/env python3 -m radicale

#2
face Nerd
insert_invitation vendredi 12 mars 2021 - 14:29
Répondre
comment

Bonjour,
Voici le resultat de la commande
Il y a un problem avec le logging, mais je vois pas bien, un problème de droit ??

radicale@piweb:/home/pi $ /usr/bin/env python3 -m radicale
[2021-04-05 11:01:49 +0200] [3083] [CRITICAL] Invalid configuration: Invalid option 'config' in section 'logging' in config file '/home/radicale/.config/radicale/config'


Merci

#3
face michel semal
insert_invitation lundi 05 avril 2021 - 11:05
Répondre
comment

Ok, en fait le format du fichier de configuration a changé depuis la rédaction de l'article.

Dans ton fichier ~/.config/radicale/config, supprime entièrement la section logging.
Je mets à jour l'article

A supprimer:
[logging]
config = ~/.config/radicale/logs.conf

#4
face Nerd
insert_invitation mercredi 07 avril 2021 - 18:56
Répondre
comment

Bonjour, voila cela fonctionne.
Iapparait que j'avais corrigé le fichier ~/.config/radicale/conf (comme la nouvelle mouture de ton article.
Mais dans cette nouvelle vesion j'avais "oublier" un [ dans le debut du fichier, "auth]"
Au lieu de "[auth]".
Bon, je retire mes mouffles, je corrige le truc, je redemarre le raspi, et .....
Le log fonctionnne le service est démarré.

Je vais voir plus loin.

Un grand merci pour ton aide

michel

#5
face michel semal
insert_invitation dimanche 11 avril 2021 - 10:03
Répondre

Écrire un commentaire

account_circle
mail
http
mode_edit
lock

rss_feed