Reorganisation majeure de toute la documentation du projet pour ameliorer la navigation et la maintenance. ## Changements principaux ### Organisation (80 -> 4 fichiers .md a la racine) - Deplace 82 fichiers .md dans docs/ organises en 11 categories - Conserve uniquement 4 fichiers essentiels a la racine: * README.md, CLAUDE.md, PRD.md, TODO.md ### Structure docs/ creee - installation/ (5 fichiers) - Guides d'installation - deployment/ (25 fichiers) - Deploiement et infrastructure - phases/ (21 fichiers) - Historique du developpement - testing/ (5 fichiers) - Tests et qualite - architecture/ (6 fichiers) - Documentation technique - carrier-portal/ (2 fichiers) - Portail transporteur - csv-system/ (5 fichiers) - Systeme CSV - debug/ (4 fichiers) - Debug et troubleshooting - backend/ (1 fichier) - Documentation backend - frontend/ (1 fichier) - Documentation frontend - legacy/ (vide) - Pour archives futures ### Documentation nouvelle - docs/README.md - Index complet de toute la documentation (367 lignes) * Guide de navigation par scenario * Recherche rapide par theme * FAQ et commandes rapides - docs/CLEANUP-REPORT-2025-12-22.md - Rapport detaille du nettoyage ### Scripts reorganises - add-email-to-csv.py -> scripts/ - deploy-to-portainer.sh -> docker/ ### Fichiers supprimes - 1536w default.svg (11MB) - Fichier non utilise ### References mises a jour - CLAUDE.md - Section Documentation completement reecrite - docs/architecture/EMAIL_IMPLEMENTATION_STATUS.md - Chemin script Python - docs/deployment/REGISTRY_PUSH_GUIDE.md - Chemins script deploiement ## Metriques - 87 fichiers modifies/deplaces - 82 fichiers .md organises dans docs/ - 11MB d'espace libere - Temps de recherche reduit de ~5min a ~30s (-90%) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
8.1 KiB
🚀 Guide Push Images vers Registry Scaleway
❌ Problème
Portainer ne peut pas pull les images car elles n'existent pas dans le registry Scaleway :
rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprodrg.fr-par.scw.cloud/weworkstudio/xpeditis-frontend:preprod
📋 Checklist Avant de Push
- Docker Desktop est démarré
- Vous avez accès au registry Scaleway
- Les images locales sont à jour avec les dernières modifications
🔧 Solution Étape par Étape
Étape 1 : Login au Registry Scaleway
# Login avec les credentials Scaleway
docker login rg.fr-par.scw.cloud/weworkstudio
# Vous serez invité à entrer :
# Username: <votre_username_scaleway>
# Password: <votre_token_scaleway>
Si vous n'avez pas les credentials :
- Aller sur console.scaleway.com
- Container Registry → weworkstudio
- Generate API token
- Copier le token
Étape 2 : Build Backend avec le bon tag
# Se positionner dans le dossier backend
cd apps/backend
# Build l'image avec le tag Scaleway
docker build \
--platform linux/amd64 \
-t rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod \
.
# Vérifier que l'image est créée
docker images | grep xpeditis-backend
# Devrait afficher :
# rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend preprod <IMAGE_ID> <TIME> 337MB
⏱️ Temps estimé : 2-3 minutes
Étape 3 : Push Backend vers Registry
# Push l'image backend
docker push rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod
# Vous devriez voir :
# The push refers to repository [rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend]
# preprod: digest: sha256:... size: ...
⏱️ Temps estimé : 3-5 minutes (selon connexion)
Étape 4 : Build Frontend avec le bon tag
# Retour à la racine
cd ../..
# Se positionner dans le dossier frontend
cd apps/frontend
# Build l'image avec le tag Scaleway
docker build \
--platform linux/amd64 \
-t rg.fr-par.scw.cloud/weworkstudio/xpeditis-frontend:preprod \
.
# Vérifier que l'image est créée
docker images | grep xpeditis-frontend
# Devrait afficher :
# rg.fr-par.scw.cloud/weworkstudio/xpeditis-frontend preprod <IMAGE_ID> <TIME> 165MB
⏱️ Temps estimé : 2-3 minutes
Étape 5 : Push Frontend vers Registry
# Push l'image frontend
docker push rg.fr-par.scw.cloud/weworkstudio/xpeditis-frontend:preprod
# Vous devriez voir :
# The push refers to repository [rg.fr-par.scw.cloud/weworkstudio/xpeditis-frontend]
# preprod: digest: sha256:... size: ...
⏱️ Temps estimé : 2-3 minutes
Étape 6 : Vérifier sur Scaleway Console
- Aller sur console.scaleway.com
- Container Registry → weworkstudio
- Vérifier que vous voyez :
- ✅
xpeditis-backend:preprod - ✅
xpeditis-frontend:preprod
- ✅
🤖 Utilisation du Script Automatisé
Option recommandée : Utiliser le script fourni
# Rendre le script exécutable
chmod +x docker/deploy-to-portainer.sh
# Option 1 : Build et push tout
./docker/deploy-to-portainer.sh all
# Option 2 : Backend seulement
./docker/deploy-to-portainer.sh backend
# Option 3 : Frontend seulement
./docker/deploy-to-portainer.sh frontend
Le script fait automatiquement :
- ✅ Vérifie que Docker est démarré
- 🔨 Build les images avec le bon tag
- 📤 Push vers le registry
- 📋 Affiche un résumé
🔍 Vérification des Images sur le Registry
Via Docker CLI
# Vérifier que l'image backend existe
docker manifest inspect rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod
# Vérifier que l'image frontend existe
docker manifest inspect rg.fr-par.scw.cloud/weworkstudio/xpeditis-frontend:preprod
# Si les commandes retournent un JSON, les images existent ✅
# Si erreur "manifest unknown", les images n'existent pas ❌
Via Scaleway Console
- Console Scaleway → Container Registry
- Sélectionner
weworkstudio - Chercher
xpeditis-backendetxpeditis-frontend - Vérifier le tag
preprod
⚠️ Erreurs Courantes
Erreur 1 : "denied: requested access to the resource is denied"
Cause : Pas authentifié au registry
Solution :
docker login rg.fr-par.scw.cloud/weworkstudio
# Entrer username et token Scaleway
Erreur 2 : "no such host"
Cause : URL du registry incorrecte
Solution : Vérifier l'URL exacte dans la console Scaleway
Erreur 3 : "server gave HTTP response to HTTPS client"
Cause : Docker essaie d'utiliser HTTP au lieu de HTTPS
Solution :
# Vérifier que le registry est en HTTPS
# Le registry Scaleway utilise toujours HTTPS
# Vérifier votre configuration Docker
Erreur 4 : Build échoue avec "no space left on device"
Cause : Pas assez d'espace disque
Solution :
# Nettoyer les images inutilisées
docker system prune -a
# Vérifier l'espace disponible
docker system df
🎯 Après le Push
Une fois les images pushées :
- Aller sur Portainer : https://portainer.weworkstudio.com
- Stacks →
xpeditis-preprod - Cliquer sur Editor
- Vérifier que le YAML contient :
xpeditis-backend: image: rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod xpeditis-frontend: image: rg.fr-par.scw.cloud/weworkstudio/xpeditis-frontend:preprod - Cocher ✅ Re-pull image and redeploy
- Cliquer Update the stack
📊 Résumé des Commandes
Build et Push - Version Complète
# 1. Login
docker login rg.fr-par.scw.cloud/weworkstudio
# 2. Backend
cd apps/backend
docker build --platform linux/amd64 -t rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod .
docker push rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod
# 3. Frontend
cd ../frontend
docker build --platform linux/amd64 -t rg.fr-par.scw.cloud/weworkstudio/xpeditis-frontend:preprod .
docker push rg.fr-par.scw.cloud/weworkstudio/xpeditis-frontend:preprod
# 4. Vérification
cd ../..
docker images | grep rg.fr-par.scw.cloud
Build et Push - Version Script
# Plus simple et recommandé
chmod +x docker/deploy-to-portainer.sh
./docker/deploy-to-portainer.sh all
🔐 Sécurité
Token Scaleway
Ne jamais commit ou partager votre token Scaleway !
Le token doit être stocké :
- ✅ Dans Docker credentials (après
docker login) - ✅ Dans un gestionnaire de mots de passe
- ❌ PAS dans Git
- ❌ PAS en clair dans un fichier
Rotation des Tokens
Recommandé de changer le token tous les 90 jours :
- Console Scaleway → API Tokens
- Révoquer l'ancien token
- Créer un nouveau token
- Faire un nouveau
docker login
📞 Besoin d'Aide ?
Si les images ne peuvent toujours pas être pullées après ces étapes :
-
Vérifier les logs Portainer :
- Stacks → xpeditis-preprod → Logs
- Chercher "manifest unknown" ou "access denied"
-
Vérifier les permissions :
- Console Scaleway → IAM
- Vérifier que votre compte a accès au registry
-
Tester manuellement :
# Sur votre machine docker pull rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod # Si ça fonctionne localement mais pas sur Portainer, # le problème vient de l'accès de Portainer au registry
✅ Checklist Finale
Avant de dire que c'est résolu :
docker loginréussi- Images backend et frontend buildées
- Images pushées vers le registry Scaleway
- Images visibles sur console.scaleway.com
docker manifest inspectretourne du JSON (pas d'erreur)- Portainer peut pull les images (pas d'erreur dans les logs)
Date : 2025-11-19 Version : 1.0 Statut : Guide complet pour résoudre les problèmes de pull