Environnements
| Local | Préproduction | Production | |
|---|---|---|---|
| Branche Git | develop | staging | main |
| Hôte | poste du développeur | 51.75.77.220 | 51.75.79.112 |
| URL | http://localhost:3000 (API : 8000) | https://sig-preprod.ucp-pch.org | https://bemba.ucp-pch.org (aussi mariacare.ucp-pch.org, ucp-pch.org) |
| Compose | aucun (PHP intégré + npm start) | docker-compose.preprod.yml | docker-compose.prod.yml |
| Badge à l'écran | « LOCAL » orange | — | — |
| E-mails | non envoyés | échouent volontairement (SMTP injoignable) | OVH, noreply@ucp-pch.org |
| Accès SSH | — | alias pch-preprod | alias pch-prod |
Flux de travail
develop ──► test local ──► staging ──► test sur la préproduction ──► main ──► production
- Tout changement de code se fait sur
developet se teste en local. developest fusionnée dansstaging, déployée en préproduction et testée à l'écran.- Si c'est stable,
stagingest fusionnée dansmainet déployée en production. - Un bug de configuration se corrige directement sur le serveur concerné ; un bug de code repasse toujours par
develop.
Les branches sont poussées sur deux dépôts : gitlab.com (axone2/pch-sig) et le GitLab auto-hébergé de la préproduction (axone/pch-sig, gitlab.ucp-pch.org).
Développement local
Voir Développement local. En résumé : php -S localhost:8000 -t public dans backend/, npm start dans frontend/, base PostgreSQL locale.
Préproduction (51.75.77.220)
Héberge, en plus de l'application :
| Service | Emplacement | Adresse |
|---|---|---|
| KoboToolbox auto-hébergé | ~/kobo-install, ~/kobo-docker | kf / kc / ee.kobo.ucp-pch.org |
| Survey Solutions | pch_suso_hq, pch_suso_db | surveillé toutes les 5 min (check-suso.sh) |
| GitLab CE | ~/gitlab | https://gitlab.ucp-pch.org, SSH sur le port 2222 |
Données de préproduction : copie de travail, avec un projet de test (TEST5K). Les comptes de test créés pour une vérification sont supprimés ensuite.
Production (51.75.79.112)
Héberge l'application, la documentation (docubemba.ucp-pch.org), Loki, les exporteurs de métriques et le relais SMTP utilisé par le KoboToolbox de la préproduction. La base est répliquée en continu vers l'esclave de secours axone-dr.
Différences de configuration
| Élément | Préproduction | Production |
|---|---|---|
| Nom du conteneur PostgreSQL | préfixé (ex. a05a4cf97934_pch_postgres) | pch_postgres |
| Alertes e-mail des plaintes | désactivables (ENABLE_PLAINTE_ALERTS) | actives |
| Sauvegarde | pg_dump quotidien (30 j) + GitLab (14 j) | réplication DR + restic |
Pour retrouver le conteneur PostgreSQL de la préproduction :
docker ps --filter name=pch_postgres --format '{{.Names}}' | grep -v exporter