lecoffre_node/README.md

7.6 KiB

LeCoffre Node - Plateforme de Gestion de Documents Sécurisée

Docker Bitcoin Signet Status

🚀 Démarrage Rapide

LeCoffre Node - Architecture complète avec Bitcoin Signet et agents IA

🎯 Démarrage Simple

# Démarrage complet des services
./scripts/start.sh

# Validation du déploiement
./scripts/validate-deployment.sh

# Maintenance et monitoring
./scripts/maintenance.sh

Note scripts centralisés: le répertoire ./scripts/ de lecoffre_node est un lien symbolique vers ../../scripts/lecoffre_node. Les chemins existants restent valides.

📁 Documentation

🛡️ Protection des Données

  • Sauvegarde automatique : ./scripts/backup-data.sh
  • Mise à jour sécurisée : ./scripts/update-images.sh
  • Restauration : ./scripts/restore-data.sh <backup>

🌐 Accès aux Services

Service URL Description
LeCoffre Frontend <PUBLIC_BASE_URL>/lecoffre Interface principale
IHM Client <PUBLIC_BASE_URL>/ Interface de gestion des clés
API Backend <PUBLIC_BASE_URL>/api/ API REST
WebSocket wss://<PUBLIC_BASE_HOST>/ws/ Relay WebSocket

🏗️ Architecture

Internet → Reverse proxy (public) → Services locaux
├── Frontend: LeCoffre Application
├── IHM: Interface de gestion des clés Bitcoin
├── API: Backend REST
└── WebSocket: Relay pour transactions

🐳 Services Docker

Service Port Statut Description
lecoffre-front 3004 Interface utilisateur
ihm_client 3003 Gestion des clés
sdk_relay 8090-8091 Relay WebSocket
sdk_storage 8081 Stockage temporaire
bitcoin-signet - Nœud Bitcoin
blindbit-oracle 8000 Oracle Bitcoin
tor-proxy 9050 Proxy anonyme

🚀 Déploiement Automatique

Le système utilise Watchtower pour la mise à jour automatique des images Docker toutes les 30 secondes.

Commandes Essentielles

# Démarrer tous les services
cd lecoffre_node
docker compose up -d

# Vérifier le statut
docker compose ps

# Voir les logs
docker compose logs --tail=50

# Synchroniser les configurations
./scripts/sync-configs.sh

# Démarrage séquentiel optimisé
./scripts/startup-sequence.sh

📊 Monitoring et Logs

Stack de Monitoring

Le système utilise Grafana + Loki + Promtail pour le monitoring centralisé :

# Démarrer le monitoring
./scripts/deploy-grafana.sh start

# Accéder à Grafana
<PUBLIC_BASE_URL>/grafana/

Identifiants : admin / <GRAFANA_ADMIN_PASSWORD>

Dashboards Disponibles

  • Vue d'ensemble LeCoffre - Monitoring de tous les services
  • Bitcoin & Miner - Monitoring spécialisé blockchain
  • Services Applications - Monitoring des services applicatifs

Collecte des Logs

# Collecter les logs de tous les services
./scripts/collect-logs.sh

# Logs centralisés dans logs/

📖 Documentation complète du monitoring

🔧 Configuration

Variables d'Environnement

Les variables d'environnement sont centralisées dans .env :

# URLs des services externes (à définir selon l'environnement)
VITE_BOOTSTRAPURL=wss://<PUBLIC_BASE_HOST>/ws/
SIGNER_WS_URL=ws://<SIGNER_HOST>:9090
SIGNER_BASE_URL=https://<SIGNER_HOST>

# Configuration monitoring
GRAFANA_ADMIN_PASSWORD=<GRAFANA_ADMIN_PASSWORD>

Scripts Utiles

Tous les scripts sont dans scripts/ :

  • startup-sequence.sh - Démarrage séquentiel optimisé
  • sync-configs.sh - Synchronisation des configurations
  • build-project.sh - Construction des projets
  • fix_relay_funds.sh - Correction des fonds relay
  • deploy-grafana.sh - Déploiement du monitoring Grafana
  • setup-logs.sh - Configuration de la centralisation des logs
  • collect-logs.sh - Collecte des logs de tous les services
  • sync-monitoring-config.sh - Synchronisation de la configuration monitoring
  • test-monitoring.sh - Test de connectivité du monitoring

📊 Monitoring

Healthchecks

Tous les services disposent de healthchecks automatiques :

# Vérifier Bitcoin Signet
docker exec bitcoin-signet bitcoin-cli -signet -rpccookiefile=/home/bitcoin/.bitcoin/signet/.cookie getblockchaininfo

# Vérifier l'oracle Blindbit
curl http://localhost:8000/tweaks/1

# Vérifier le relay
curl http://localhost:8091/

Logs

# Logs en temps réel
docker compose logs -f

# Logs d'un service spécifique
docker compose logs -f sdk_relay

🔒 Sécurité

  • Aucun secret dans le code source
  • Utilisateurs non-root dans les conteneurs
  • Clés SSH pour tous les dépôts
  • Variables d'environnement externalisées
  • Réseau interne pour la communication inter-services

🛠️ Développement

Structure des Projets

lecoffre_node/
├── IA_agents/          # 📚 Documentation IA principale
├── scripts/            # 🔧 Scripts de déploiement
├── conf/               # ⚙️ Configurations
├── docs/               # 📖 Documentation technique
├── docker-compose.yml  # 🐳 Services Docker
└── .env               # 🔐 Variables d'environnement

Projets Dépendants

Projet Branche Description
sdk_relay ext Relay des transactions
sdk_storage ext Stockage temporaire
ihm_client ext Interface de gestion
lecoffre-front ext Frontend LeCoffre

📚 Documentation Complète

Documentation IA (Recommandée)

Documentation Technique

🆘 Support

Problèmes Courants

  1. Service non accessible : Vérifier docker compose ps
  2. Erreurs de connexion : Vérifier les logs avec docker compose logs
  3. Configuration : Exécuter ./scripts/sync-configs.sh

Logs d'Erreur

# Logs d'erreur récents
docker compose logs --tail=100 | grep -i error

# Logs d'un service spécifique
docker compose logs sdk_relay | grep -i error

🔄 Mise à Jour

Le système se met à jour automatiquement via Watchtower. Pour forcer une mise à jour :

# Mettre à jour toutes les images
docker compose pull

# Redémarrer les services
docker compose up -d

📄 Licence

Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.


💡 Conseil : Commencez toujours par lire 4NK_env/IA_agents/context.md pour comprendre le contexte du projet !