# Prompt de Déploiement LeCoffre Node ## 🎯 Prompt pour l'Agent IA ``` Déploie l'architecture LeCoffre Node complète en respectant strictement les consignes de déploiement. ## Contexte obligatoire - Consulte attentivement `IA_agents/context.md` pour le contexte technique - Consulte attentivement `IA_agents/flux.md` pour l'architecture des services - Consulte attentivement `IA_agents/deploy.md` pour les procédures détaillées - Reste TOUJOURS sur la branche git "ext" - Déclenche TOUJOURS les builds via CI avec des images docker tagées "ext" - Corrige aussi les problèmes de code ## Objectifs de déploiement 1. Déployer depuis le répertoire `lecoffre_node/` en utilisant les scripts présents dans `scripts/` 2. Assurer que tous les services écoutent sur 0.0.0.0 et soient accessibles depuis l'extérieur via le nom de domaine 3. Vérifier chaque projet un par un (analyse du dossier, du code, branche Git `ext`, pas de tag Git `ext`) 4. Corriger toutes les erreurs sans désactivation, simplification ou contournement ## Procédure de déploiement ### Phase 1: Vérifications initiales - [ ] Vérifier que le dépôt distant est public (si possible) - [ ] Vérifier l'utilisation des clés SSH pour le déploiement Git - [ ] Vérifier que la branche courante est bien `ext` - [ ] Mettre à jour les dépendances et les langages - [ ] Vérifier les variables d'environnement centralisées dans `.env.master` ### Phase 2: Construction et optimisation - [ ] Supprimer les caches et optimiser le build de chaque projet - [ ] Mettre à jour la documentation - [ ] Mettre à jour les tests - [ ] Mettre à jour les scripts - [ ] Vérifier les fichiers .gitignore, .dockerignore, .cursorignore ### Phase 3: Synchronisation - [ ] Synchroniser les configurations dans `lecoffre_node/conf` - [ ] Synchroniser les logs dans `lecoffre_node/logs` - [ ] Brancher Grafana pour un dashboard par projet ### Phase 4: Sécurité et conformité - [ ] Vérifier que le code ne fournit pas de données personnelles ou sensibles - [ ] Vérifier qu'il n'y a pas de failles de sécurité ### Phase 5: Gestion Git - [ ] Pousser toutes les modifications sur la branche Git `ext` - [ ] Supprimer les fichiers distants non suivis par Git ### Phase 6: Tests et corrections - [ ] Analyser les logs - [ ] Corriger toutes les erreurs (sans désactivation, simplification, contournement) - [ ] Tester - [ ] Analyser à nouveau les logs - [ ] Vérifier que les logs ne contiennent pas de données sensibles - [ ] Corriger à nouveau si nécessaire (jusqu'à l'absence totale d'erreurs) ### Phase 7: Déploiement des services - [ ] Lancer tous les services de `lecoffre_node/docker-compose.yml` via les scripts - [ ] Utiliser la configuration centralisée: `docker compose --env-file .env.master up` - [ ] Corriger toutes les erreurs rencontrées - [ ] Tester la connectivité externe ### Phase 8: Monitoring et validation - [ ] S'assurer que Grafana est à jour - [ ] Synchroniser la configuration Nginx et relancer le serveur - [ ] Vérifier que Loki, Promtail et Grafana sont OK avec des dashboards alimentés - [ ] Vérifier qu'il n'y a aucun conflit de ports - [ ] Tester toutes les URLs publiques depuis l'extérieur - [ ] Tester spécifiquement les WebSockets et services HTTP(S) - [ ] Vérifier que tous les imports sont présents ## Variables d'environnement centralisées (2024-09-21) Utilise TOUJOURS le fichier `.env.master` centralisé : ```bash docker compose --env-file .env.master up -d ``` Variables disponibles : - SDK_RELAY_* : Configuration du service relay - SIGNER_* : Configuration du service signer - VITE_* : Configuration des applications frontend - IDNOT_* : Configuration des APIs notaires - STRIPE_* : Configuration des paiements - MAILCHIMP_* : Configuration des emails - OVH_* : Configuration des SMS ## Architecture Docker optimisée - Base standardisée : `debian:bookworm-slim` pour tous les services - Packages minimaux : ca-certificates, curl, jq, git - Utilisateurs non-root : appuser (UID 1000) - Images optimisées : 120-300MB selon le service - Tag Docker : `ext` pour tous les déploiements ## Tests fonctionnels obligatoires 1. **Login notaire** : Tenter un login notaire avec redirection IdNot et validation dans l'iframe 2. **Connexion Stripe** : Arriver connecté après vérification du compte Stripe 3. **Création dossier** : Créer un dossier en tant que notaire et ajouter un client 4. **Email Mailchimp** : Vérifier l'envoi du lien par email 5. **Login client** : Se connecter avec le lien email et confirmer le code SMS (API OVH) 6. **Accès dossier** : Accéder au dossier en tant que client ## Tests techniques obligatoires 1. **Page de statut** : https://dev4.4nkweb.com/status/ 2. **Dashboard Grafana** : https://dev4.4nkweb.com/grafana/ 3. **Connectivité WebSocket** : Test spécifique des WebSockets 4. **Services HTTP(S)** : Test spécifique des services HTTP(S) ## Commandes essentielles ```bash # Démarrage avec variables centralisées docker compose --env-file .env.master up -d # Test de configuration ./scripts/test-env-config.sh # Test monitoring ./scripts/test-monitoring.sh # Synchronisation config ./scripts/sync-monitoring-config.sh ``` ## Points d'attention critiques - N'attends pas infiniment le résultat des curls - Si le terminal est interrompu, analyse la sortie - Teste TOUTES les URLs publiques depuis l'extérieur avant de dire qu'elles sont OK - Vérifie spécifiquement les WebSockets et services HTTP(S) - Vérifie que tous les imports sont présents - Déclenche les builds via CI - Vérifie les droits et résultats d'écriture sur les fichiers de conf Nginx et Bitcoin ## Ordre de démarrage des services (CRITIQUE) 1. tor 2. bitcoin 3. blindbit 4. sdk_storage 5. sdk_relay 6. sdk_signer 7. ihm_client 8. lecoffre-back 9. lecoffre-front 10. loki 11. promtail 12. grafana ## Validation finale - [ ] Tous les services démarrés et fonctionnels - [ ] Toutes les URLs publiques accessibles depuis l'extérieur - [ ] Tests fonctionnels validés - [ ] Tests techniques validés - [ ] Monitoring opérationnel - [ ] Aucune erreur dans les logs - [ ] Configuration centralisée opérationnelle ## En cas de problème 1. Arrête-toi pour corriger chaque problème rencontré avant de passer à la suite 2. Analyse les logs en détail 3. Corrige sans désactivation, simplification ou contournement 4. Documente toute nouvelle connaissance technique ou fonctionnelle acquise 5. Mets à jour la documentation avec le retour d'expérience Déploie maintenant l'architecture LeCoffre Node complète en suivant cette procédure étape par étape. ``` --- ## 📋 Instructions d'utilisation ### Pour l'agent IA 1. Copie le prompt ci-dessus 2. Colle-le dans votre conversation avec l'agent IA 3. L'agent suivra automatiquement la procédure de déploiement ### Pour l'utilisateur 1. Assure-toi que tous les prérequis sont remplis 2. Vérifie que la branche `ext` est active 3. Lance le prompt de déploiement 4. Suis l'exécution étape par étape ## 🔧 Personnalisation Ce prompt peut être adapté selon les besoins : - Modifier les phases selon l'environnement - Ajouter des tests spécifiques - Personnaliser les commandes selon l'infrastructure ## 📊 Suivi Le prompt inclut des cases à cocher pour suivre l'avancement : - [ ] Phase 1: Vérifications initiales - [ ] Phase 2: Construction et optimisation - [ ] Phase 3: Synchronisation - [ ] Phase 4: Sécurité et conformité - [ ] Phase 5: Gestion Git - [ ] Phase 6: Tests et corrections - [ ] Phase 7: Déploiement des services - [ ] Phase 8: Monitoring et validation --- **Note** : Ce prompt est basé sur `deploy.md` et respecte toutes les consignes de déploiement du projet LeCoffre Node.