Thomas Fransolet c9580fd0a8 Scripts de sauvegarde Postgres
Dump -Fc avec vérification de relecture et rotation, test de restauration qui
compare les comptages table par table, extraction par instance, contrôle de
fraîcheur, units systemd et procédure de restauration écrite.

Le dump Mongo est volontairement en lecture seule : aucun mongorestore, pour
qu'aucune erreur de manipulation ne puisse écrire dans la prod.

Ce qui manque pour que ce soit une sauvegarde : BACKUP_DEST n'est pas tranché.
Tant qu'il est vide, le dump reste sur la machine qui héberge la base et ne
protège de rien — le script le dit à chaque exécution. Et notify.sh ne fait
qu'un logger, donc les trois surveillances écrivent dans un journal que
personne ne lit.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-07 16:11:33 +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).