align for IA agents + grafana

This commit is contained in:
Nicolas Cantu 2025-09-21 15:38:51 +00:00
parent adff26e71b
commit 336816dd99
3 changed files with 158 additions and 10 deletions

View File

@ -15,6 +15,7 @@ Consulte attentivement `lecoffre_node/IA_agents/flux.md`.
Le déploiement se fait depuis le répertoire **`lecoffre_node/`**, en utilisant les scripts présents dans **`scripts/`**. Le déploiement se fait depuis le répertoire **`lecoffre_node/`**, en utilisant les scripts présents dans **`scripts/`**.
Ces scripts doivent évoluer au fil des retours et être améliorés plutôt que dupliqués. Ces scripts doivent évoluer au fil des retours et être améliorés plutôt que dupliqués.
Arretes toi pour corriger chaque problème rencontré avant de passer à la suite.
Dans **tous les projets** à vérifier un par un dont lecoffre_node: Dans **tous les projets** à vérifier un par un dont lecoffre_node:
@ -30,7 +31,7 @@ Via les scripts, lance tous les services de `lecoffre_node/docker-compose.yml`.
## Procédure générale ## Procédure générale
### Vérifications initiales ### Vérifications initiales par projet
1. Vérifier que le dépôt distant est **public** (si possible). 1. Vérifier que le dépôt distant est **public** (si possible).
2. Vérifier lutilisation des **clés SSH** pour le déploiement Git (idéalement ~/.ssh/id_ed25519) 2. Vérifier lutilisation des **clés SSH** pour le déploiement Git (idéalement ~/.ssh/id_ed25519)
@ -38,9 +39,9 @@ Via les scripts, lance tous les services de `lecoffre_node/docker-compose.yml`.
4. Mettre à jour les dépendances et les langages 4. Mettre à jour les dépendances et les langages
5. Vérifier les **variables denvironnement**. 5. Vérifier les **variables denvironnement**.
### Mise à jour et construction ### Mise à jour et construction par projet
6. Optimise le build du projet et build le projet. 6. Supprime les caches, Optimise le build du projet et build le projet.
7. Mettre à jour la **documentation**. 7. Mettre à jour la **documentation**.
8. Mettre à jour les **tests**. 8. Mettre à jour les **tests**.
9. Mettre à jour les **scripts**. 9. Mettre à jour les **scripts**.
@ -49,25 +50,25 @@ Via les scripts, lance tous les services de `lecoffre_node/docker-compose.yml`.
- `.dockerignore` - `.dockerignore`
- `.cursorignore` - `.cursorignore`
### Synchronisations ### Synchronisations par projet
11. Synchroniser les configurations dans `lecoffre_node/conf`. 11. Synchroniser les configurations dans `lecoffre_node/conf`.
Les configurations ngnix doivent toutes être cenralisées dans lecoffre_node/conf/ngninx (à synchroniser par des copies depuis lecoffre_node vers les fichiers cibles qui seront réellement utilisés -sauf dans lecoffre_node ce sont les fichiers de lecoffre_node/conf/ qui sont utilisés-, toujours vérifier la cohérence entre les copie et les fichiers utilisés, à intégrer dans le script existant de synchronisation à mettre à jour). Ne pas faire de liens symboliques pour les confs afin de le maintenir via git et docker. Les configurations ngnix doivent toutes être cenralisées dans lecoffre_node/conf/ngninx (à synchroniser par des copies depuis lecoffre_node vers les fichiers cibles qui seront réellement utilisés -sauf dans lecoffre_node ce sont les fichiers de lecoffre_node/conf/ qui sont utilisés-, toujours vérifier la cohérence entre les copie et les fichiers utilisés, à intégrer dans le script existant de synchronisation à mettre à jour). Ne pas faire de liens symboliques pour les confs afin de le maintenir via git et docker.
12. Synchroniser les logs dans `lecoffre_node/logs` (brancher grafana pour un dashboard par projet) 12. Synchroniser les logs dans `lecoffre_node/logs` (brancher grafana pour un dashboard par projet)
### Sécurité et conformité ### Sécurité et conformité par projet
13. Vérifier que le code ne fournit pas : 13. Vérifier que le code ne fournit pas :
- de **données personnelles**, - de **données personnelles**,
- de **données sensibles exploitables**, - de **données sensibles exploitables**,
- de **failles de sécurité**. - de **failles de sécurité**.
### Gestion Git ### Gestion Git par projet
14. Pousser toutes les modifications sur la branche Git `ext`. 14. Pousser toutes les modifications sur la branche Git `ext`.
15. Supprimer les fichiers distants non suivis par Git. 15. Supprimer les fichiers distants non suivis par Git.
### Analyse et correction ### Analyse et correction par projet
16. Analyser les logs. 16. Analyser les logs.
17. Corriger toutes les erreurs, petites et grosses, **sans désactivation**, **sans simplification**, **sans contournement**. 17. Corriger toutes les erreurs, petites et grosses, **sans désactivation**, **sans simplification**, **sans contournement**.
@ -76,7 +77,7 @@ Les configurations ngnix doivent toutes être cenralisées dans lecoffre_node/co
20. Vérifier que les logs ne contiennent pas de données personnelles ou sensibles. 20. Vérifier que les logs ne contiennent pas de données personnelles ou sensibles.
21. Corriger à nouveau si nécessaire (jusqu'à l'absence totale d'erreurs) 21. Corriger à nouveau si nécessaire (jusqu'à l'absence totale d'erreurs)
### Boucle damélioration ### Boucle damélioration par projet
22. Ne pas créer de nouvelles versions de scripts : **améliorer et tester ceux existants**. 22. Ne pas créer de nouvelles versions de scripts : **améliorer et tester ceux existants**.
23. Mettre à jour la documentation avec le **retour dexpérience** à chaque fois par une mise à jour de `docs/REX.md`. 23. Mettre à jour la documentation avec le **retour dexpérience** à chaque fois par une mise à jour de `docs/REX.md`.
@ -104,7 +105,7 @@ Les configurations ngnix doivent toutes être cenralisées dans lecoffre_node/co
--- ---
## Spécificités Dockerfile ## Spécificités Dockerfile par projet
Pour tous les projets contenant un **Dockerfile**, avant de pousser sur la branche `ext` : Pour tous les projets contenant un **Dockerfile**, avant de pousser sur la branche `ext` :

View File

@ -0,0 +1,147 @@
# 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`.