--- title: Radicale created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, calendar, caldav, carddav, python, lightweight] confidence: high contested: false sources: [https://selfh.st/apps/?tag=calendar] --- # đŸ—“ïž Radicale > **Le serveur CalDAV/CardDAV minimaliste en Python** : pas de base de donnĂ©es, configuration en une ligne, parfait pour un usage familial ou un petit labo. C'est le « Pi-hole du calendrier ». | MĂ©tadonnĂ©e | Valeur | | :--- | :--- | | **Site web** | [radicale.org](https://radicale.org/) | | **GitHub** | [Kozea/Radicale](https://github.com/Kozea/Radicale) | | **License** | GPL-3.0 (avec exception AGPL-compat) | | **Langage** | Python 3.11+ | | **Étoiles** | 513 ⭐ | | **DerniĂšre MAJ** | 2026-04 (v3.2.x) | | **CatĂ©gorie** | [[cat-calendar]] | ## Description **Radicale** est un **serveur CalDAV/CardDAV** minimaliste Ă©crit en Python. Son crĂ©do : un seul exĂ©cutable, **pas de base de donnĂ©es** (tout est stockĂ© sur disque en fichiers `.ics` / `.vcf` ou via un backend stockage), un fichier de config lisible, et basta. LancĂ© en 2008 par **Kozea** (fabrique française de logiciels libres), c'est l'un des plus anciens serveurs CalDAV encore actifs. CĂŽtĂ© fonctionnalitĂ©s, Radicale expose les **endpoints CalDAV RFC 4791** et **CardDAV RFC 6352** : vos clients (Thunderbird, GNOME Evolution, KDE KOrganizer, iOS/macOS Calendar, Android DAVx5, GNOME Online Accounts) s'y connectent en HTTPS et synchronisent calendriers + carnets d'adresses. Les droits sont granulaires (par utilisateur, par calendrier, droits en lecture/Ă©criture pour des utilisateurs tiers). Le **stockage** par dĂ©faut est filesystem (chaque calendrier = un dossier), mais des backends existent : filesystem, Database (SQLite/MySQL/PostgreSQL), LDAP, et divers (Nextcloud-like). Une couche **TLS** intĂ©grĂ©e Ă©vite d'avoir Ă  mettre un reverse-proxy devant pour chiffrer. **Points forts** : **vraiment lĂ©ger** (peut tourner sur Raspberry Pi), pas de DB Ă  administrer, configuration en un seul fichier `config`, **pluginable** (auth, storage, rights, web), **CLI** `radicale` pour l'admin, **TLS intĂ©grĂ©** (optionnel mais bien pratique pour les petits dĂ©ploiements sans reverse-proxy), logs clairs, support CalDAV/CardDAV strict, et c'est français đŸ‡«đŸ‡·. La documentation est excellente. **Points faibles** : l'**UI web** est volontairement basique (il n'y en a presque pas, c'est voulu), la **scalabilitĂ©** n'est pas le sujet (au-delĂ  de quelques dizaines d'utilisateurs, regarder BaĂŻkal/DAViCal), pas de **clustering** natif, pas de gestion native des **calendriers partagĂ©s** complexes, le **bus factor** est limitĂ© (Kozea c'est 1-2 personnes historiques), pas de App Store ni d'API REST moderne. ## Installation ### Via Docker (recommandĂ©) L'image officielle `tomsquestdocker/radicale` (maintenue par le crĂ©ateur, `tomsquest`) ou `radicale/radicale` (upstream Docker) existent. Voici la version officielle : ```yaml # docker-compose.yml services: radicale: image: radicale/radicale:3.2 container_name: radicale restart: unless-stopped ports: - "5232:5232" environment: RADICALE_CONFIG: /config/config TZ: Europe/Paris volumes: - ./config:/config - ./data:/data command: --config /config/config ``` ### Option TLS intĂ©grĂ©e (sans reverse-proxy) ```yaml services: radicale-tls: image: radicale/radicale:3.2 container_name: radicale-tls restart: unless-stopped ports: - "5232:5232" volumes: - ./config:/config - ./data:/data - ./certs:/certs command: > --config /config/config --certificates /certs ``` GĂ©nĂ©rer un certificat avec `mkcert` ou Let's Encrypt (via certbot en host). ### Installation manuelle ```bash # Debian/Ubuntu sudo apt install radicale # Ou via pip pip install --user 'radicale[auth,storage,rights]' ~/.local/bin/radicale --config ~/.config/radicale/config ``` Systemd unit fourni dans le paquet Debian. ## Configuration Exemple de `config` (INI) typique : ```ini [server] hosts = 0.0.0.0:5232 max_connections = 20 max_content_length = 100000000 timeout = 30 [auth] type = htpasswd htpasswd_filename = /data/users.htpasswd htpasswd_encryption = bcrypt [storage] type = multifilesystem filesystem_folder = /data/collections [rights] type = owner_only [logging] level = info ``` 1. **CrĂ©er un utilisateur** : `htpasswd -B -c data/users.htpasswd alice` (la premiĂšre fois, `-c`). 2. **Premier accĂšs client** : dans Thunderbird / iOS / DAVx5, ajouter un compte CalDAV `https://rad.example.com:5232/alice/` (le slash final est important). 3. **Droits** : `owner_only` = chaque user ne voit que ses calendriers. Pour du multi-user avec partage, passer Ă  `authenticated` ou installer le plugin `radicale-rights` (de Kozea). 4. **Plugin App** : `radicale-imap` pour authentifier via IMAP, `radicale-webui` (en dehors de l'upstream) pour une UI web. 5. **Logs** : niveau `info` en prod, `debug` pour diagnostiquer CalDAV. ## Alternatives ### Open Source - [[app-baikal]] — Serveur CalDAV/CardDAV en PHP, plus UI - [[app-davical]] — Serveur CalDAV entreprise en PHP/PostgreSQL - [[app-sabre-dav]] — La **librairie PHP** sur laquelle reposent BaĂŻkal et DAViCal - [[app-etesync]] — Calendrier **chiffrĂ© E2E** (et donc CalDAV-compatible en lecture) - **Xandikos** — Serveur CalDAV/CardDAV en Python, alternative Ă  Radicale, plus strict sur les standards - **DAViCal** — Ă©quivalent historique en PHP/PostgreSQL - [[app-nextcloud]] — Suite complĂšte (calendrier, contacts, fichiers, etc.) ### PropriĂ©taires (ce que Radicale remplace) - **iCloud Calendar / Contacts** — Le service d'Apple, fermĂ© - **Google Calendar / Contacts** — Le gĂ©ant, pas self-hostable - **Outlook.com Calendar** — Microsoft, fermĂ© - **Yahoo Calendar** — DiscontinuĂ© en 2024 pour certains marchĂ©s ## SĂ©curitĂ© - ✅ **TLS** intĂ©grable (mais un reverse-proxy type [[app-traefik]] est souvent prĂ©fĂ©rĂ©) - ✅ **Auth htpasswd** avec bcrypt/argon2 - ✅ **Droits granulaires** via plugin - ⚠ **Pas de rate-limiting natif** : comptez sur le reverse-proxy - ⚠ **Auth par dĂ©faut = htpasswd** : pour LDAP, il faut le plugin `radicale-auth-ldap` - ✅ **Pas de DB** = moins de surface d'attaque - ✅ GPL-3.0 = auditable - ⚠ Le mot de passe passe en clair sur le **port 5232 non-TLS** si TLS n'est pas activĂ© — ne jamais exposer le port 5232 brut sur Internet - ✅ **Logs structurĂ©s** utiles pour dĂ©tecter du brute-force ## Ressources - [Site officiel](https://radicale.org/) - [Documentation](https://radicale.org/v3.2.html) - [DĂ©pĂŽt GitHub](https://github.com/Kozea/Radicale) - [Docker Hub](https://hub.docker.com/_/radicale) - [Wiki plugins](https://github.com/Kozea/Radicale/wiki/Plugins) - [selfh.st Calendar](https://selfh.st/apps/?tag=calendar) - [Forum Kozea](https://github.com/Kozea/Radicale/discussions) ## Pages LiĂ©es - [[cat-calendar]] — CatĂ©gorie Calendar - [[app-baikal]] — Alternative PHP avec UI - [[app-davical]] — Alternative PHP entreprise - [[app-sabre-dav]] — Librairie CalDAV sous-jacente Ă  BaĂŻkal - [[app-etesync]] — Calendrier chiffrĂ© E2E - [[app-cal-com]] — Scheduler qui se connecte Ă  Radicale en CalDAV - [[recettes-docker-compose]] — Templates Docker - [[app-traefik]] — Reverse-proxy HTTPS recommandĂ©