🏗️ Rendre le rafraîchissement portable avec Compose #12

Merged
mat merged 1 commit from compose-portable-updater into main 2026-09-22 12:15:49 +00:00
Owner

Contexte

Le rafraîchissement hebdomadaire était lancé par un shell enfant non supervisé dans nginx et n'était pas utilisé par le déploiement actuel. La stack doit rester autonome lorsqu'elle est lancée sur un autre serveur, sans dépendre de tofu-maison ou d'un scheduler hôte.

Suivi : #11 prévoit le passage ultérieur à des images construites et publiées par la CI.

Impact

docker compose up --build -d lance désormais deux services indépendants autour d'un volume persistant : nginx en lecture seule et un updater Supercronic en lecture/écriture. Le cron vérifie les données chaque jour à 04:20 UTC, sans appeler l'API avant 7 jours. L'updater devient unhealthy après 14 jours, sans arrêter web.

Le premier fetch est obligatoire côté updater. nginx démarre immédiatement ; tant que le snapshot manque, le frontend affiche son erreur et son lien de nouvelle tentative.

Considérations

  • Supercronic v0.2.45 et ses checksums sont épinglés pour amd64/arm64.
  • Une date future force un rafraîchissement et rend le healthcheck rouge.
  • Les images web et updater sont séparées ; aucun snapshot n'est embarqué.
  • Le build arm64 natif est supporté, mais le build croisé local nécessite QEMU.

Vérification

  • node --test tests/*.test.mjs : 25/25
  • docker compose config --quiet
  • build des targets web et updater ; Supercronic v0.2.45
  • volume vide : web 200 en 2 s, snapshot disponible en 18 s (8 641 refuges)
  • gzip, cache 1 h, ETag et persistance du volume vérifiés
  • échec initial : conteneur updater relancé automatiquement
## Contexte Le rafraîchissement hebdomadaire était lancé par un shell enfant non supervisé dans nginx et n'était pas utilisé par le déploiement actuel. La stack doit rester autonome lorsqu'elle est lancée sur un autre serveur, sans dépendre de `tofu-maison` ou d'un scheduler hôte. Suivi : #11 prévoit le passage ultérieur à des images construites et publiées par la CI. ## Impact `docker compose up --build -d` lance désormais deux services indépendants autour d'un volume persistant : nginx en lecture seule et un updater Supercronic en lecture/écriture. Le cron vérifie les données chaque jour à 04:20 UTC, sans appeler l'API avant 7 jours. L'updater devient unhealthy après 14 jours, sans arrêter web. Le premier fetch est obligatoire côté updater. nginx démarre immédiatement ; tant que le snapshot manque, le frontend affiche son erreur et son lien de nouvelle tentative. ## Considérations - Supercronic v0.2.45 et ses checksums sont épinglés pour amd64/arm64. - Une date future force un rafraîchissement et rend le healthcheck rouge. - Les images web et updater sont séparées ; aucun snapshot n'est embarqué. - Le build arm64 natif est supporté, mais le build croisé local nécessite QEMU. ## Vérification - `node --test tests/*.test.mjs` : 25/25 - `docker compose config --quiet` - build des targets web et updater ; Supercronic v0.2.45 - volume vide : web 200 en 2 s, snapshot disponible en 18 s (8 641 refuges) - gzip, cache 1 h, ETag et persistance du volume vérifiés - échec initial : conteneur updater relancé automatiquement
🏗️ Rend le rafraîchissement portable avec Compose
All checks were successful
/ tests (pull_request) Successful in 26s
/ tests (push) Successful in 24s
ce99593cb8
mat force-pushed compose-portable-updater from ce99593cb8
All checks were successful
/ tests (pull_request) Successful in 26s
/ tests (push) Successful in 24s
to 7b92cb8511
All checks were successful
/ tests (push) Successful in 24s
/ tests (pull_request) Successful in 24s
2026-09-22 11:58:19 +00:00
Compare
mat force-pushed compose-portable-updater from 7b92cb8511
All checks were successful
/ tests (push) Successful in 24s
/ tests (pull_request) Successful in 24s
to c3653bf149
All checks were successful
/ tests (push) Successful in 24s
/ tests (pull_request) Successful in 25s
2026-09-22 12:03:16 +00:00
Compare
mat changed title from WIP: 🏗️ Rendre le rafraîchissement portable avec Compose to 🏗️ Rendre le rafraîchissement portable avec Compose 2026-09-22 12:15:46 +00:00
mat merged commit 3ce039a916 into main 2026-09-22 12:15:49 +00:00
mat deleted branch compose-portable-updater 2026-09-22 12:15:49 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
mat/trouve-mon-refuge!12
No description provided.