116 lines
4.4 KiB
Markdown
116 lines
4.4 KiB
Markdown
---
|
|
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é)
|
|
|
|
```yaml
|
|
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)
|
|
|
|
```bash
|
|
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` :
|
|
|
|
```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](https://github.com/jelmer/xandikos) (Python, CalDAV/CardDAV, plus complet que HiveDAV), [Davical](https://github.com/davicalproject/davical) (PostgreSQL, historique)
|
|
- **Léger** : [sabre-dav](https://github.com/sabre-io/dav) (lib PHP, base de Radicale/Baikal)
|
|
- **Cloud-first** : [Etebase](https://github.com/etesync/etesync-server) (E2E, API moderne), [Nextcloud](https://github.com/nextcloud/server) (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
|
|
|
|
- [selfh.st — Calendar](https://selfh.st/apps/?tag=calendar)
|
|
- [GitHub hivedav/hivedav](https://github.com/hivedav/hivedav)
|
|
- [RFC 4791 — CalDAV](https://datatracker.ietf.org/doc/html/rfc4791)
|
|
- [RFC 4918 — WebDAV](https://datatracker.ietf.org/doc/html/rfc4918)
|
|
|
|
## Pages Liées
|
|
|
|
- [[cat-calendar]]
|
|
- [[recettes-docker-compose]]
|
|
- [[app-radicale]] — alternative plus mature
|
|
- [[app-baikal]] — CalDAV + CardDAV
|