Auto-répare le mot de passe du rôle BDD et change le port PostgreSQL

- Nouveau service one-shot db-sync : à chaque démarrage de la stack, il
  réaligne le mot de passe du rôle sbc_app sur APP_DB_PASSWORD (corrige
  « password authentication failed » quand le volume a été initialisé
  avec une ancienne valeur) ; l'app démarre après sa réussite
- Port hôte PostgreSQL : 56432 → 58412 (conflit avec un service existant),
  toujours en loopback uniquement
- Note de dépannage dans le README

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fkg15RCxNgUys4ru73He2o
This commit is contained in:
Claude committed 2026-07-10 20:09:39 +00:00
1 parent 3f35ea584f
commit 2df7d37b72
4 files changed
+58 -4

No files matched your search

+13 -2
View File
@@ -12,10 +12,10 @@ Deux conteneurs orchestrés par Docker Compose, sur des ports peu utilisés
| Service | Rôle | Port hôte |
|---------|------|-----------|
| `app` | Node.js 22 / Express : API REST **et** frontend React compilé **et** images `/uploads` | `8321` (`APP_PORT`) |
| `db` | PostgreSQL 16 (schéma + données de démo au premier démarrage) | `127.0.0.1:56432` (`DB_PORT`) — loopback uniquement, pour l'administration locale |
| `db` | PostgreSQL 16 (schéma + données de démo au premier démarrage) | `127.0.0.1:58412` (`DB_PORT`) — loopback uniquement, pour l'administration locale |
```
Navigateur ──> app (Express :8321) ──> db (PostgreSQL, 127.0.0.1:56432)
Navigateur ──> app (Express :8321) ──> db (PostgreSQL, 127.0.0.1:58412)
├─ /api/… API REST
├─ /uploads/… images (volume persistant)
└─ /… frontend React (fallback SPA)
@@ -119,6 +119,17 @@ formulaire « Mot de passe », endpoint `POST /api/auth/change-password`).
- **Erreurs** : les détails restent dans les logs serveur, les clients reçoivent un
message générique.
## Dépannage
- **`password authentication failed for user "sbc_app"`** : le volume de la base
a été initialisé avec un autre `APP_DB_PASSWORD`. Le service one-shot `db-sync`
resynchronise automatiquement le mot de passe du rôle à chaque démarrage de la
stack — redéployez simplement. Si le mot de passe **superuser** a lui aussi
changé (`POSTGRES_PASSWORD`), remettez l'ancienne valeur ou supprimez le volume
`db_data` pour repartir de zéro (les données de démo seront recréées).
- **Port déjà utilisé** : changez `APP_PORT` ou `DB_PORT` dans les variables
d'environnement.
### Pour la production
- Placez l'application derrière HTTPS (reverse-proxy TLS) et passez `COOKIE_SECURE=true`