OpenFamily est une application de gestion familiale complète proposée en open source par NexaFlow, conçue pour être auto-hébergée. Gardez le contrôle total de vos données en hébergeant l'application sur votre propre serveur. Gérez vos courses, tâches, rendez-vous, recettes, planning des repas et budget familial en toute sécurité, accessible depuis tous vos appareils.
- 🛒 Liste de courses - Catégorisation automatique, prix, quantités, templates
- ✅ Tâches - Tâches récurrentes, assignation familiale, statistiques
- 📅 Rendez-vous - Calendrier mensuel, rappels automatiques, code couleur
- 🗓️ Planning hebdomadaire - Horaires de travail et emploi du temps scolaire par membre
- 🍳 Recettes - Bibliothèque familiale, filtres avancés, temps de préparation
- 🍽️ Planning repas - Vue hebdomadaire, export PDF, liaison recettes
- 💰 Budget - Suivi mensuel, limites par catégorie, statistiques
- 👨👩👧👦 Famille - Profils membres, informations santé, contacts d'urgence
- Node.js 20+
- PostgreSQL 16+ (ou Docker)
- npm 10+
- Clonez le projet et configurez l'environnement :
cp .env.example .env
# Éditez .env avec vos paramètres- Démarrez l'application :
docker-compose up -d --build-
Accédez à l'application :
- Frontend: http://localhost:3000
- Backend API: http://localhost:3001
-
Vérifiez le fonctionnement bout-en-bout :
npm run smoke:api- Installez les dépendances :
npm run install:all- Configurez PostgreSQL et créez la base de données :
psql -U postgres -c "CREATE DATABASE openfamily;"
psql -U postgres -d openfamily -f server/schema.sql- Configurez les variables d'environnement :
cp .env.example .env
# Éditez .env avec vos paramètres- Démarrez le serveur de développement :
npm run dev- Frontend: http://localhost:5173
- Backend: http://localhost:3001
- PostgreSQL (Docker): localhost:5433
Smoke test complet des modules API :
npm run smoke:apiPour une instance distante :
API_BASE=https://api.votre-domaine.tld npm run smoke:api-
Préparez vos variables :
- utilisez
.env.production.example - définissez un
JWT_SECRETfort - définissez un
POSTGRES_PASSWORDfort - configurez
CORS_ORIGINS,VITE_API_URL,VITE_WS_URL
- utilisez
-
Construisez et démarrez :
docker-compose up -d --build- Vérifiez :
curl -sS http://localhost:3001/health
npm run smoke:api- React 19 + TypeScript
- Vite 7
- TailwindCSS + Radix UI
- React Router
- date-fns, Recharts
- Node.js 20 + Express
- PostgreSQL 16
- WebSocket (ws)
- JWT Authentication
- TypeScript
- Docker + Docker Compose
- Multi-stage builds
- Nginx (production)
Nexus/
├── client/ # Application React
│ ├── src/
│ │ ├── components/
│ │ ├── contexts/
│ │ ├── pages/
│ │ └── lib/
│ └── Dockerfile
├── server/ # API Express
│ ├── src/
│ │ ├── routes/
│ │ └── middleware/
│ ├── schema.sql
│ └── Dockerfile
├── shared/ # Types et constantes partagés
└── docker-compose.yml
- Authentification JWT
- Mots de passe hashés avec bcrypt
- CORS configuré
- Variables d'environnement pour les secrets
- Validation des entrées
L'application est une Progressive Web App installable sur mobile et desktop avec :
- Mode offline
- Service Worker
- Manifest
- Notifications push (nécessite HTTPS)
Si des onglets semblent ne pas réagir après un déploiement (ancienne version en cache) :
# 1) reconstruire et redémarrer
docker-compose up -d --build
# 2) vérifier l'état des services
docker-compose psPuis dans le navigateur :
- hard refresh (
Ctrl+Shift+R) - ou supprimer les données du site / unregister du service worker
Les contributions sont les bienvenues ! N'hésitez pas à ouvrir une issue ou une pull request.
GNU Affero General Public License v3.0 (AGPL-3.0-only) - Voir le fichier licence.md pour plus de détails.
Basé sur le projet OpenFamily inititié par NexaFlow France. Ce projet respecte la philosophie open source et encourage le partage et la contribution communautaire.