Ce guide vous permet de déployer l'application de 0 en quelques minutes.
- Docker et Docker Compose installés
- Git (pour cloner le projet)
Copier le fichier d'exemple et configurer les variables d'environnement :
cp .env.example .envModifier .env pour définir vos propres secrets :
# IMPORTANT : Changez ces valeurs en production !
JWT_SECRET=votre-secret-jwt-super-securise
POSTGRES_PASSWORD=votre-mot-de-passe-postgres-securise
# Les autres valeurs par défaut sont correctes pour un démarrage rapide
DATABASE_URL=postgresql://notes_user:votre-mot-de-passe-postgres-securise@db:5432/notes_db
POSTGRES_DB=notes_db
POSTGRES_USER=notes_userdocker-compose up -dC'est tout ! L'application va :
- ✅ Démarrer PostgreSQL
- ✅ Attendre que la base soit prête
- ✅ Exécuter automatiquement les migrations Prisma
- ✅ Démarrer l'API
Testez que tout fonctionne :
# Vérifier que l'API répond
curl http://localhost:3000
# Créer un utilisateur
curl -X POST http://localhost:3000/auth/register \
-H "Content-Type: application/json" \
-d '{"email":"admin@example.com","password":"SecurePassword123"}'
# Se connecter
curl -X POST http://localhost:3000/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"admin@example.com","password":"SecurePassword123"}'- API : http://localhost:3000
- Documentation Swagger : http://localhost:3000/api-docs
- PostgreSQL : localhost:5434
- User:
notes_user(ou valeur dePOSTGRES_USER) - Password: valeur de
POSTGRES_PASSWORD - Database:
notes_db(ou valeur dePOSTGRES_DB)
- User:
Pour voir les logs de l'application :
# Tous les services
docker-compose logs -f
# API uniquement
docker-compose logs -f express-notes-api
# PostgreSQL uniquement
docker-compose logs -f dbPour redéployer complètement (efface toutes les données !) :
# Arrêter et supprimer tout (conteneurs + volumes)
docker-compose down -v
# Rebuild si nécessaire
docker build -t registry.lefort.dev/express-notes-api:v1.6 .
# Redémarrer
docker-compose up -dSi vous avez déjà PostgreSQL sur votre machine, le docker-compose utilise le port 5434 par défaut. Vous pouvez changer cela dans docker-compose.yml :
db:
ports:
- "5435:5432" # Changez 5434 par un autre portVérifiez les logs :
docker-compose logs express-notes-apiLes migrations s'exécutent automatiquement au démarrage via docker-entrypoint.sh.
Attendez quelques secondes que PostgreSQL démarre complètement. Le healthcheck garantit que l'API attend que PostgreSQL soit prêt.
docker-compose exec db pg_dump -U notes_user notes_db > backup.sqldocker-compose exec -T db psql -U notes_user notes_db < backup.sqldocker-compose exec db psql -U notes_user -d notes_dbPuis dans le shell PostgreSQL :
-- Lister les tables
\dt
-- Voir les utilisateurs
SELECT * FROM users;
-- Voir les notes
SELECT * FROM notes;Pour un déploiement en production, n'oubliez pas de :
- ✅ Changer
JWT_SECRET(utiliseropenssl rand -base64 32) - ✅ Changer
POSTGRES_PASSWORDavec un mot de passe fort - ✅ Configurer un proxy inverse (nginx) avec HTTPS
- ✅ Mettre en place des backups automatiques de PostgreSQL
- ✅ Configurer les limites de ressources dans docker-compose.yml
- ✅ Activer les logs persistants
- ✅ Configurer la surveillance et les alertes
Pour plus d'informations sur la configuration de la base de données, consultez DATABASE.md.