Files
wiki/Catalogue-Self-Hosted/apps/app-hivedav.md
T
2026-06-09 18:40:21 +02:00

4.4 KiB


title: HiveDAV created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, calendar, caldav, server, python, low-tracre] confidence: medium contested: false sources: [https://selfh.st/apps/?tag=calendar, https://github.com/hivedav/hivedav]

HiveDAV 🐝

Serveur CalDAV minimaliste en Python, pensé comme une alternative « single-binary, single-file » à Radicale et Baïkal.

Métadonnée Valeur
Site web https://github.com/hivedav/hivedav
GitHub https://github.com/hivedav/hivedav
License BSD-2-Clause
Langage Python (aiohttp)
Étoiles 0
Dernière MAJ 2023
Catégorie cat-calendar

Description

HiveDAV est une tentative de créer un serveur CalDAV ultra-minimal en Python, ciblant explicitement les utilisateurs qui trouvent app-radicale trop « gros » ou app-baikal trop « PHP ». L'objectif : un binaire unique, une base SQLite, et un fichier de configuration plat — rien d'autre.

L'app supporte le strict minimum du protocole CalDAV (RFC 4791) pour permettre à des clients standards (Apple Calendar, Thunderbird, DAVx⁵, GNOME Evolution) de se connecter, créer des calendriers, et synchroniser des événements. Pas de CardDAV, pas de web UI évoluée, pas de gestion fine des ACL — c'est du « calendar sync only ».

L'argument principal est la simplicité opérationnelle : un seul fichier Python, peu de dépendances, démarrage instantané, base SQLite portable. Idéal pour un lab, une démo, ou un usage personnel très basique. Le projet est encore au stade « proof of concept » (0 étoile, peu de documentation), à utiliser avec précaution.

À noter : CardDAV (contacts) n'est pas implémenté. Pour un serveur calendrier + contacts complet, préférer app-baikal ou app-radicale.

Installation

Docker Compose (recommandé)

services:
  hivedav:
    image: ghcr.io/hivedav/hivedav:latest
    container_name: hivedav
    restart: unless-stopped
    environment:
      - HIVE_HOST=0.0.0.0
      - HIVE_PORT=8080
      - HIVE_DATA=/data/hivedav.db
      - HIVE_AUTH=basic
      - TZ=Europe/Paris
    volumes:
      - hivedav-data:/data
    ports:
      - "8094:8080"

volumes:
  hivedav-data:

Manuelle (Python)

git clone https://github.com/hivedav/hivedav.git
cd hivedav
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
python hivedav.py --config ./config.ini

Configuration

Exemple minimal config.ini :

[server]
host = 0.0.0.0
port = 8080
data = ./hivedav.db

[auth]
type = basic
users = alice:s3cret,bob:hunter2

Le format « users = user:pass,user:pass » est volontairement plat pour éviter une base de comptes séparée. Pour un vrai déploiement, basculer sur un fichier hashé.

Alternatives

  • Open Source : app-radicale (le standard de facto, Python, mature), app-baikal (PHP/Sabre, CalDAV + CardDAV), Xandikos (Python, CalDAV/CardDAV, plus complet que HiveDAV), Davical (PostgreSQL, historique)
  • Léger : sabre-dav (lib PHP, base de Radicale/Baikal)
  • Cloud-first : Etebase (E2E, API moderne), Nextcloud (suite complète)
  • Propriétaire : iCloud Calendar (Apple), Google Calendar (Google) — fermés, pas self-host

Sécurité

  • Stockage des mots de passe : actuellement en clair dans config.ini. À hasher avant tout usage réel (bcrypt/argon2).
  • HTTPS : CalDAV envoie des credentials en Basic Auth — TLS obligatoire, sinon les mots de passe transitent en clair.
  • Base SQLite : contient tous les événements. Permissions restrictives sur le fichier.
  • Pas d'auth fine : pas d'ACL, pas de comptes par ressource. Un compte = accès à tous les calendriers.
  • Projet embryonnaire : 0 étoile, peu testé, ne pas utiliser pour des données critiques.

Ressources

Pages Liées