Initial vault setup
This commit is contained in:
@@ -0,0 +1,111 @@
|
||||
---
|
||||
title: Luna
|
||||
created: 2026-06-07
|
||||
updated: 2026-06-07
|
||||
type: app
|
||||
tags: [catalogue, calendar, python, flask, simple, events]
|
||||
confidence: medium
|
||||
contested: false
|
||||
sources: [https://selfh.st/apps/?tag=calendar, https://github.com/lunacalendar/luna]
|
||||
---
|
||||
|
||||
# Luna 🌙
|
||||
|
||||
> Application calendrier minimaliste en Python/Flask : créer des événements, partager des liens publics, c'est tout. Pensée pour l'auto-hébergement léger.
|
||||
|
||||
| Métadonnée | Valeur |
|
||||
| :--- | :--- |
|
||||
| **Site web** | https://github.com/lunacalendar/luna |
|
||||
| **GitHub** | https://github.com/lunacalendar/luna |
|
||||
| **License** | MIT |
|
||||
| **Langage** | Python (Flask) |
|
||||
| **Étoiles** | 10 ⭐ |
|
||||
| **Dernière MAJ** | 2023 |
|
||||
| **Catégorie** | [[cat-calendar]] |
|
||||
|
||||
## Description
|
||||
|
||||
**Luna** est un projet d'application calendrier volontairement **minimaliste**, écrit en Python avec le micro-framework **Flask**. La philosophie est à l'opposé des suites complètes type Nextcloud ou des UIs design type FluidCalendar : Luna ne fait qu'une chose, et la fait simplement — **afficher et éditer un calendrier partagé**.
|
||||
|
||||
Fonctionnalités :
|
||||
|
||||
- Vue mensuelle classique avec création/édition d'événements (titre, début, fin, description).
|
||||
- **Liens publics** : chaque calendrier a une URL partageable en lecture seule, utile pour publier un planning d'événements, un calendrier de réservation, un agenda associatif.
|
||||
- Multi-utilisateurs simples (compte + mot de passe hashé en bcrypt).
|
||||
- **Import/export iCal** (`.ics`), pour interoperer avec n'importe quel client CalDAV ou application mobile.
|
||||
- **i18n** : interface traduite en français, anglais, et quelques autres langues.
|
||||
|
||||
L'app n'essaie pas de rivaliser avec un [[app-radicale]] côté fonctionnalités CalDAV : c'est plutôt un **« calendrier clé en main »** pour quelqu'un qui veut juste un agenda web sans configurer un serveur CalDAV. Parfait pour un petit foyer, un club, ou un serveur familial.
|
||||
|
||||
Le projet est jeune (10 étoiles) et peu maintenu récemment, à surveiller.
|
||||
|
||||
## Installation
|
||||
|
||||
### Docker Compose (recommandé)
|
||||
|
||||
```yaml
|
||||
services:
|
||||
luna:
|
||||
image: ghcr.io/lunacalendar/luna:latest
|
||||
container_name: luna
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- SECRET_KEY=*** - DATABASE_URL=sqlite:...data/luna.db
|
||||
- TZ=Europe/Paris
|
||||
- DEFAULT_LANG=fr
|
||||
volumes:
|
||||
- luna-data:/data
|
||||
ports:
|
||||
- "8093:5000"
|
||||
|
||||
volumes:
|
||||
luna-data:
|
||||
```
|
||||
|
||||
### Manuelle (Python)
|
||||
|
||||
```bash
|
||||
git clone https://github.com/lunacalendar/luna.git
|
||||
cd luna
|
||||
python3 -m venv venv && source venv/bin/activate
|
||||
pip install -r requirements.txt
|
||||
export FLASK_APP=luna
|
||||
flask init-db
|
||||
flask run --host 0.0.0.0 --port 5000
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
- Créer le premier compte admin via `flask create-user admin@example.com`.
|
||||
- Configurer la **langue par défaut** et le **fuseau horaire**.
|
||||
- Activer ou non les inscriptions publiques (à désactiver en prod).
|
||||
- Définir un **thème** (clair, sombre, auto).
|
||||
- Le `SECRET_KEY` Flask est critique : doit être long et unique.
|
||||
|
||||
## Alternatives
|
||||
|
||||
- **Open Source** : [[app-radicale]] (serveur CalDAV complet, plus complexe), [[app-baikal]] (CalDAV/CardDAV), [Nextcloud Calendar](https://nextcloud.com/calendar/) (intégré, lourd), [Etebase](https://github.com/etesync/etesync-server) (E2E sync)
|
||||
- **Minimaliste** : [icalendar](https://github.com/collective/icalendar) (lib Python, pas une app), [Baïkal](https://github.com/sabre-io/Baikal) (flat-file, ultra-léger)
|
||||
- **Propriétaire** : Google Calendar, Fruux (calendrier partagé, fermé)
|
||||
- **Mobile** : n'importe quel client CalDAV (DAVx⁵, Apple Calendar) lit les `.ics` exportés
|
||||
|
||||
## Sécurité
|
||||
|
||||
- **SECRET_KEY** : obligatoire pour les sessions Flask, `python -c "import secrets; print(secrets.token_hex(32))"`.
|
||||
- **Hash de mot de passe** : bcrypt par défaut, bon choix.
|
||||
- **HTTPS** : obligatoire, surtout si on active l'inscription.
|
||||
- **Liens publics** : ils sont en lecture seule par défaut, mais attention à ce qu'on y met (pas d'infos privées).
|
||||
- **Pas d'E2E** : les événements ne sont pas chiffrés côté serveur. À considérer pour des données sensibles.
|
||||
- **Projet jeune** : peu de releases, peu de communauté, à surveiller côté CVEs.
|
||||
|
||||
## Ressources
|
||||
|
||||
- [selfh.st — Calendar](https://selfh.st/apps/?tag=calendar)
|
||||
- [GitHub lunacalendar/luna](https://github.com/lunacalendar/luna)
|
||||
- [Flask documentation](https://flask.palletsprojects.com/)
|
||||
|
||||
## Pages Liées
|
||||
|
||||
- [[cat-calendar]]
|
||||
- [[recettes-docker-compose]]
|
||||
- [[app-radicale]] — serveur CalDAV complet (plus puissant)
|
||||
Reference in New Issue
Block a user