Thomas Fransolet 82e61dcded Flux de provisioning d'une base préprod ou prod
Compose Postgres (PostGIS + pgvector épinglé par digest), scripts de bootstrap
du premier SuperAdmin, de lancement local du service et de migration des
données, et le README du flux en huit étapes.

Le port est lié à 127.0.0.1 et non publié : le Postgres précédent, exposé par
un simple "5432:5432" avec mym/mym, a encaissé 1 074 465 échecs
d'authentification entre juin et octobre 2025. Le compte mym n'a jamais été
tenté — c'est le seul hasard qui a sauvé la base. Les limites de log viennent
du même serveur, où un conteneur avait atteint 516 Mo sur un disque de 20 Go.

Le SuperAdmin passe par le token de réinitialisation plutôt que par un INSERT :
les mots de passe étant hachés en scrypt, seule l'application peut produire le
bon format, et personne d'autre que l'opérateur ne connaît le mot de passe.
MigrationController l'exige et la migration n'en crée aucun, MongoDB n'ayant
pas de champ Role.

Éprouvé sur la préprod le 07/09 : 4 instances, 315 sections migrées et 20
signalées sur 335, 2383 ressources, tout réconcilié avec MongoDB.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-07 16:11:56 +02:00
..
2026-09-07 16:11:33 +02:00
2025-03-06 17:39:08 +01:00

Pour firebase cors.

gcloud config set project mymuseum-3b97f

gsutil cors get gs://mymuseum-3b97f.appspot.com

Pour le moment :

[{"maxAgeSeconds": 3600, "method": ["GET", "POST", "DELETE", "PUT"], "origin": ["http://localhost:49430", "https://manager.myinfomate.be", "https://manager.mymuseum.be", "https://fortsaintheribert.mymuseum.be", "https://fortsaintheribert.myinfomate.be", "https://visitnamur.myinfomate.be"]}]

Base de données — PostGIS + pgvector

L'image Postgres est construite depuis Dockerfile.postgres : postgis/postgis:16-3.4 (épinglée par digest, pas par tag) + postgresql-16-pgvector.

  • PostGIS est indispensable (NetTopologySuite : cartes, zones de géodéclenchement). Ne pas basculer sur pgvector/pgvector:pg16, qui le ferait perdre.
  • Le digest est volontaire. Le tag 16-3.4 est mobile ; si la glibc change sous une base existante, les index texte se désalignent (« collation version mismatch ») et une recherche indexée peut manquer des lignes. Arrivé en local le 2026-08-09. Correction : REINDEX DATABASE <db>; puis ALTER DATABASE <db> REFRESH COLLATION VERSION; — dans cet ordre, le refresh seul ne fait que masquer le symptôme.

Plus aucun CREATE EXTENSION à lancer à la main : les extensions sont déclarées dans le DbContext (HasPostgresExtension) et créées par dotnet ef database update.

Après modification du Dockerfile : docker compose -f docker-compose.dev.yaml up -d --build (le volume postgres-data est conservé — ne jamais passer -v, qui le supprimerait).