## Déploiement maîtrisé du frontend (lecoffre-front) – flux ext Objectif: construire l’image via la CI (tag `ext`) avec les variables build-time, exécuter le conteneur avec les variables runtime de `lecoffre_node/.env.master`, puis valider l’environnement et CORS/state. ### Pré-requis - Variables `NEXT_PUBLIC_*` et autres correctement définies dans `lecoffre_node/.env.master`. - CI configurée pour builder `git.4nkweb.com/4nk/lecoffre-front:ext` quand on pousse la branche et le tag `ext`. ### Déclenchement CI (manuel) 1. Commit sur la branche `ext` avec le préfixe: `ci: docker_tag=ext`. 2. Push explicite de la branche et du tag: - `git push origin refs/heads/ext:refs/heads/ext` - `git tag -f ext && git push origin refs/tags/ext:refs/tags/ext -f` ### Script de déploiement et validation Le script `scripts/deploy_front_ext.sh` réalise: - Pull de l’image et redémarrage du service (optionnel) - Vérification que les `NEXT_PUBLIC_*` du runtime (`/api/env`) correspondent aux valeurs de `.env.master` - Vérification CORS sur dev3 (OPTIONS 204) et POST `/api/v1/idnot/state` (200 + `state`) Usage: ``` scripts/deploy_front_ext.sh [--ci] [--no-pull] [--no-up] [--validate-only] ``` - `--ci`: affiche un rappel pour déclencher la CI (aucun git dans le script) - `--no-pull`: ne fait pas le `docker compose pull` - `--no-up`: ne redémarre pas le service - `--validate-only`: uniquement les validations (pas de pull ni up) ### Points de contrôle - `docker-compose.yml` utilise `image: git.4nkweb.com/4nk/lecoffre-front:ext` (pas de build local) - Les `NEXT_PUBLIC_*` sont cohérents entre le build (CI) et le runtime (`.env.master`) - CORS dev3 renvoie `Access-Control-Allow-Origin: https://dev4.4nkweb.com` sur OPTIONS et POST - L’endpoint `state` renvoie 200 et un champ `state` ### En cas d’erreur - Variable manquante/mismatch: corriger `lecoffre_node/.env.master` puis relancer le script - CORS en erreur: vérifier Nginx dev3 (headers, proxy_hide_header, logique d’Origin)