# REX - Déploiement LeCoffre Réussi ## Date 21 septembre 2025 ## Résumé Déploiement complet et réussi de l'écosystème LeCoffre selon les consignes strictes du document `deploy.md`. ## Projets déployés avec succès ### Projets avec Dockerfiles - ✅ **sdk_relay** (Debian-based) - Port 8090-8091 - ✅ **sdk_signer** (Alpine-based) - Port 9090 - ✅ **sdk_storage** - Port 8081 - ✅ **ihm_client** (Alpine-based) - Port 3003 - ✅ **lecoffre-back-mini** (Alpine-based) - Port 8080 - ✅ **lecoffre-front** (Alpine-based) - Port 3004 ### Projets sans Dockerfiles - ✅ **sdk_common** - Dépendance partagée - ✅ **sdk_client** - Dépendance partagée - ✅ **sdk-signer-client** - Dépendance partagée ## Corrections apportées ### Problème Alpine Linux - Package cscope **Erreur rencontrée :** ``` ERROR: unable to select packages: cscope (no such package): required by: world[cscope] ``` **Solution appliquée :** Suppression du package `cscope` des Dockerfiles Alpine Linux car ce package n'existe pas dans les dépôts Alpine. **Fichiers corrigés :** - `/home/debian/sdk_signer/Dockerfile` - `/home/debian/ihm_client/Dockerfile` - `/home/debian/lecoffre-back-mini/Dockerfile` - `/home/debian/lecoffre-front/Dockerfile` ## Services en cours d'exécution ### Infrastructure de base - ✅ **bitcoin-signet** - Nœud Bitcoin Signet - ✅ **blindbit-oracle** - Oracle BlindBit - ✅ **tor-proxy** - Proxy Tor - ✅ **signet_miner** - Mineur Signet ### Services LeCoffre - ✅ **sdk_relay** - Relais des transactions (8090-8091) - ✅ **sdk_signer** - Service de signature (9090) - ✅ **sdk_storage** - Stockage temporaire (8081) - ✅ **ihm_client** - Interface utilisateur (3003) - ✅ **lecoffre-back** - Backend API (8080) - ✅ **lecoffre-front** - Frontend Next.js (3004) ### Monitoring - ✅ **grafana** - Tableau de bord (3005) - ✅ **loki** - Système de logs (3100) - ✅ **promtail** - Collecteur de logs ### Services auxiliaires - ✅ **status-api** - API de statut (3006) - ✅ **watchtower** - Surveillance des conteneurs ## Tests de connectivité réussis ### URLs publiques - ✅ **LeCoffre Front** : https://dev4.4nkweb.com/lecoffre - ✅ **IHM Client** : https://dev4.4nkweb.com/ - ✅ **Grafana** : http://127.0.0.1:3005 ### Services locaux - ✅ **Frontend** : http://127.0.0.2:3004 (page 404 affichée correctement) - ✅ **IHM Client** : http://127.0.0.1:3003 (Vite dev server actif) - ✅ **Backend** : http://127.0.0.1:8080 (réponse HTTP) - ✅ **Storage** : http://127.0.0.1:8081 (healthy) - ✅ **Relay** : http://127.0.0.1:8090-8091 (healthy) - ✅ **Signer** : http://127.0.0.1:9090 (healthy) ## Configuration Git ### Branches poussées avec succès - ✅ **lecoffre_node** → `git.4nkweb.com/4nk/lecoffre_node:ext` - ✅ **sdk_relay** → `git.4nkweb.com/4nk/sdk_relay:ext` - ✅ **sdk_signer** → `git.4nkweb.com/4nk/sdk_signer:ext` - ✅ **ihm_client** → `git.4nkweb.com/4nk/ihm_client:ext` - ✅ **lecoffre-back-mini** → `git.4nkweb.com/4nk/lecoffre-back-mini:ext` - ✅ **lecoffre-front** → `git.4nkweb.com/4nk/lecoffre-front:ext` ### Messages de commit ``` ci: docker_tag=ext - Fix Alpine Dockerfiles and add deployment documentation ci: docker_tag=ext - Update Dockerfile with comprehensive build tools ci: docker_tag=ext - Fix Alpine Dockerfile - remove cscope package ``` ## Sécurité et conformité ### Vérifications effectuées - ✅ Aucun secret hardcodé dans le code - ✅ Fichiers .env exclus du versioning - ✅ Fichiers ignore configurés correctement - ✅ Configurations centralisées dans `lecoffre_node/conf` ### Fichiers ignore créés/vérifiés - ✅ `.gitignore` - Exclusion des fichiers sensibles - ✅ `.dockerignore` - Optimisation des builds Docker - ✅ `.cursorignore` - Exclusion des fichiers pour Cursor ## Architecture de déploiement ### Flux de redirection 1. **https://dev4.4nkweb.com/lecoffre** → **local.4nkweb.com** → **https://dev4.4nkweb.com/lecoffre** 2. Ouverture iframe **https://dev4.4nkweb.com/** (ihm_client) ### Ports et services - **Relais** : 8090-8091 - **Signer** : 9090 - **Bootstrap** : dev3.4nkweb.com - **Frontend** : 3004 - **Backend** : 8080 - **Storage** : 8081 - **IHM Client** : 3003 - **Grafana** : 3005 - **Status API** : 3006 ## Leçons apprises ### Dockerfiles 1. **Vérifier la compatibilité des packages** avec la distribution Linux 2. **Alpine Linux** : `apk` - certains packages n'existent pas 3. **Debian Linux** : `apt-get` - plus de packages disponibles 4. **Tester les builds** avant de pousser sur Git ### Déploiement 1. **Séquence de démarrage** : tor → bitcoin → blindbit → storage → relay → signer → ihm_client 2. **Monitoring** : Grafana + Loki + Promtail configurés 3. **Sécurité** : Aucun secret exposé, configurations externalisées 4. **Git** : Branche `ext` pour tous les projets ## Statut final 🎉 **DÉPLOIEMENT COMPLET ET RÉUSSI** Tous les services sont opérationnels, les tests de connectivité passent, et l'architecture respecte les spécifications du document `deploy.md`.