# ✅ Portainer - Checklist de Déploiement Rapide ## 🎯 Avant de Déployer ### 1. Registry Configuré dans Portainer ✅ **Portainer → Registries → Vérifier** : ``` Name: Scaleway Registry URL: rg.fr-par.scw.cloud/weworkstudio Username: nologin Password: [token Scaleway] ``` **Test** : ```bash docker pull rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod # Devrait réussir ``` --- ### 2. Images ARM64 Disponibles ✅ ```bash docker manifest inspect rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod | grep architecture # Devrait afficher : # "architecture": "amd64" # "architecture": "arm64" ← Important ! ``` --- ### 3. Network Traefik Existe ✅ ```bash docker network ls | grep traefik_network # Si absent : docker network create traefik_network ``` --- ## 🚀 Déploiement ### 1. Copier la Stack Copier tout le contenu de `docker/portainer-stack.yml` ### 2. Créer le Stack dans Portainer 1. **Portainer** → **Stacks** → **Add stack** 2. **Name** : `xpeditis-preprod` 3. **Web editor** : Coller le YAML 4. **Deploy the stack** → Attendre 2-3 min ### 3. Vérifier les Services **Portainer → Stacks → xpeditis-preprod** : - ✅ `xpeditis-db` → Running (Healthy) - ✅ `xpeditis-redis` → Running - ✅ `xpeditis-minio` → Running - ✅ `xpeditis-backend` → Running (attendre ~30s) - ✅ `xpeditis-frontend` → Running --- ## 🔍 Vérification Post-Déploiement ### Backend : Logs Migrations **Portainer → Containers → xpeditis-backend → Logs** : **Chercher ces lignes** : ``` ✅ PostgreSQL is ready ✅ Successfully ran X migration(s) ✅ Database migrations completed 🚀 Starting NestJS application... ``` **Si absent** → Redémarrer le container backend. --- ### Frontend : Démarrage Next.js **Portainer → Containers → xpeditis-frontend → Logs** : **Chercher** : ``` ▲ Next.js 14.5.0 ✓ Ready in X.Xs ``` --- ### Tester les Endpoints ```bash # Backend API curl https://api.preprod.xpeditis.com/api/v1/health # Réponse attendue : {"status":"ok"} # Frontend curl -I https://app.preprod.xpeditis.com # Réponse attendue : HTTP/2 200 # MinIO Console curl -I https://minio.preprod.xpeditis.com # Réponse attendue : HTTP/2 200 ``` --- ## ❌ Si Problèmes ### Erreur : "access denied" ```bash # Sur le serveur Portainer docker login rg.fr-par.scw.cloud/weworkstudio # Username: nologin # Password: [token] ``` ### Erreur : "relation does not exist" **Portainer → Containers → xpeditis-backend → Restart** ### Erreur : "network not found" ```bash docker network create traefik_network ``` --- ## 🔄 Update des Images (CI/CD Push) Quand la CI/CD push de nouvelles images : 1. **Portainer → Stacks → xpeditis-preprod** 2. ✅ **Cocher "Re-pull image and redeploy"** 3. **Update the stack** --- ## 📊 URLs de Vérification | URL | Attendu | |-----|---------| | https://api.preprod.xpeditis.com/api/v1/health | `{"status":"ok"}` | | https://api.preprod.xpeditis.com/api/docs | Swagger UI | | https://app.preprod.xpeditis.com | Page d'accueil | | https://minio.preprod.xpeditis.com | MinIO Console | --- ## ✅ Checklist Finale - [ ] Registry Scaleway configuré dans Portainer - [ ] Images ARM64 dans le registry (tag `preprod`) - [ ] Network `traefik_network` créé - [ ] Stack déployé dans Portainer - [ ] 5 services en état "running" - [ ] Logs backend : migrations OK ✅ - [ ] API health : `200 OK` - [ ] Frontend : `200 OK` - [ ] MinIO : `200 OK` **Si tous ✅ → Déploiement réussi ! 🎉** --- **Temps estimé** : 10 minutes (si registry configuré) **Difficulté** : ⚡ Facile **Documentation complète** : [PORTAINER_DEPLOY_FINAL.md](PORTAINER_DEPLOY_FINAL.md)