Configuration¶
Variables d'environnement¶
Le fichier .env contient toute la configuration:
# Application
APP_NAME=mon-projet
APP_ENV=development
APP_PORT=8080
# Database
DB_HOST=localhost
DB_PORT=5432
DB_USER=postgres
DB_PASSWORD=postgres
DB_NAME=mon-projet
DB_SSLMODE=disable
# JWT
JWT_SECRET= # À REMPLIR!
JWT_EXPIRY=15m
REFRESH_TOKEN_EXPIRY=168h
Générer un JWT_SECRET sécurisé¶
CRITIQUE: Générez toujours un secret fort:
Exemple de résultat:
Ajoutez-le dans .env:
Configuration par environnement¶
Development¶
Staging¶
Production¶
APP_ENV=production
DB_HOST=prod-db.example.com
DB_SSLMODE=require
DB_PASSWORD=<secret-depuis-secrets-manager>
JWT_SECRET=<secret-depuis-secrets-manager>
Best practice: Utiliser des secrets managers:
- AWS: Secrets Manager, Parameter Store
- GCP: Secret Manager
- Kubernetes: Secrets
- HashiCorp: Vault
Configuration PostgreSQL¶
Option 1: PostgreSQL local¶
macOS (Homebrew):
Linux (apt):
sudo apt update
sudo apt install postgresql postgresql-contrib
sudo systemctl start postgresql
sudo -u postgres createdb mon-projet
Option 2: Docker¶
docker run -d \
--name postgres \
-e POSTGRES_DB=mon-projet \
-e POSTGRES_USER=postgres \
-e POSTGRES_PASSWORD=postgres \
-p 5432:5432 \
postgres:16-alpine
Option 3: Docker Compose¶
Si un docker-compose.yml est généré:
version: '3.8'
services:
postgres:
image: postgres:16-alpine
environment:
POSTGRES_DB: mon-projet
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:
Lancer:
Vérification de connexion¶
# Avec psql
psql -h localhost -U postgres -d mon-projet
# Ou tester depuis l'app
make run
# Vérifier les logs: "Database connected successfully"
Navigation¶
Previous: Structure du projet
Next: Développement
Index: Guide Index