À propos du projet
Fold est une application de gestion de tâches auto-hébergée qui fonctionne avec n'importe quel serveur CalDAV conforme à la spécification. Conçue comme un logiciel personnel, elle stocke toutes les tâches sous forme de propriétés VTODO ordinaires, restant lisibles par d'autres clients CalDAV, garantissant ainsi la portabilité et la durabilité des données.
Les fonctionnalités principales incluent un parseur d'ajout rapide via langage naturel : taper quelque chose comme « Nettoyer les guttères demain à 15h #tâches p1 » extrait automatiquement la date d'échéance, l'heure, la liste et la priorité en un seul appui sur Entrée. Les vues Teljourd'hui, Demain, Prochaines 7 jours, Résumé et Recherche regroupent les éléments de toutes les listes. L'application reconnaît certains noms de listes spéciales : les tâches liées à la Santé apparaissent en haut de chaque vue, tandis que les Courses se réduisent à une seule ligne puisque la question est simplement si le shopping a été effectué, pas combien d'articles ont été listés.
Le mode hors ligne est pris en charge grâce à une file d'attente locale des modifications qui est rejouée dès la reconnexion. L'application privilégie le clavier et peut être installée comme une Progressive Web App (PWA) sur les téléphones. Aucune notification, aucun suivi de séquence ou aucun rappel persistant n'est inclus.
Il n'existe pas de base de données utilisateur ni de stockage de session. Lors de la connexion, les identifiants CalDAV sont vérifiés auprès du serveur et chiffrés avec AES-256-GCM dans un cookie HttpOnly stocké dans le navigateur. Le JavaScript ne peut pas lire ce cookie. Chaque requête suivante déchiffre les identifiants en mémoire serveur pour l'échange CalDAV, puis les supprime immédiatement. Redémarrer le conteneur ne perd rien car rien n’est conservé côté serveur.
Le déploiement utilise Docker avec une seule variable d’environnement requise, SESSION_SECRET, qui chiffre le cookie des identifiants. Un proxy inverse avec TLS est recommandé puisque le cookie transporte des informations sensibles. Une option ALLOW_INSECURE_COOKIE existe pour les réseaux locaux fiables sans TLS. CALDAV_ALLOWED_HOSTS permet de restreindre quels serveurs CalDAV la page de connexion accepte, protégeant les instances accessibles publiquement.
Fold ne prend pas en charge les sous-tâches, les tâches récurrentes, la synchronisation en arrière-plan ou plusieurs comptes. Les propriétés RRULE existantes sont préservées mais jamais créées ou modifiées par l’application. Un seul compte CalDAV est actif à la fois.
Le projet est distribué sous licence MIT. Le développement utilise Bun, avec des couches de tests typées incluant des tests unitaires avec Vitest, des tests d'intégration contre un serveur Radicale réel, et des tests end-to-end Playwright. Toutes les spécifications et décisions architecturales sont documentées dans le dossier docs du dépôt.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.