mirror of
https://github.com/R0m1k3/noteflow.git
synced 2026-10-19 21:28:33 +02:00
Création complète de l'application NoteFlow - Notes & Todo List
Application web Dockerisée moderne avec: - Backend Node.js + Express + SQLite - Frontend HTML/CSS/JavaScript vanilla - Authentification JWT + bcrypt - Gestion des notes avec images et todos intégrés - Sidebar todos globaux avec filtres - Interface utilisateur fluide avec animations CSS - Administration des utilisateurs - Sécurité production-ready (Helmet, rate limiting, validation) - Configuration Docker complète - Documentation README détaillée Stack technique: - Node.js 20 Alpine - SQLite3 avec indexes optimisés - Multer pour upload d'images - Winston pour logging - Express-validator pour validation - Architecture modulaire (routes, middleware, config) Fonctionnalités: - Notes: CRUD complet, recherche, images, todos intégrés - Todos globaux: création, toggle, filtres, suppression - Auth: JWT 24h, bcrypt 12 rounds - Admin: gestion utilisateurs complète - UI: masonry grid, modal animations, responsive Configuration Docker: - Healthcheck intégré - Volumes persistants pour data et uploads - Network nginx_default pour reverse proxy - Variables d'environnement configurables Prêt pour déploiement avec: docker-compose up -d
This commit is contained in:
22 files changed
+3414
-589
No files matched your search
+13
-9
@@ -5,21 +5,25 @@ services:
|
||||
build: .
|
||||
container_name: notes-todo-app
|
||||
ports:
|
||||
- "2222:2222"
|
||||
- "3000:3000"
|
||||
volumes:
|
||||
- notes_data:/home/node/app/data
|
||||
- notes_uploads:/home/node/app/public/uploads
|
||||
- ./data:/app/data
|
||||
- ./public/uploads:/app/public/uploads
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
- JWT_SECRET=changeme_in_production
|
||||
- PORT=2222
|
||||
- JWT_SECRET=${JWT_SECRET:-change_me_in_production_please_use_strong_secret}
|
||||
- PORT=3000
|
||||
- UPLOADS_PATH=/app/public/uploads
|
||||
- DB_PATH=/app/data/notes.db
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- nginx_default
|
||||
|
||||
volumes:
|
||||
notes_data:
|
||||
notes_uploads:
|
||||
healthcheck:
|
||||
test: ["CMD", "node", "-e", "require('http').get('http://localhost:3000/health', (r) => process.exit(r.statusCode === 200 ? 0 : 1))"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 40s
|
||||
|
||||
networks:
|
||||
nginx_default:
|
||||
|
||||
Reference in new issue
Block a user