# LeCoffre Node - Plateforme de Gestion de Documents Sécurisée [![Docker](https://img.shields.io/badge/Docker-Ext-blue)](https://git.4nkweb.com/4nk/lecoffre_node) [![Bitcoin Signet](https://img.shields.io/badge/Bitcoin-Signet-orange)](https://example.com) [![Status](https://img.shields.io/badge/Status-Production-green)](https://example.com) ## 🚀 Démarrage Rapide **LeCoffre Node - Architecture complète avec Bitcoin Signet et agents IA** ### 🎯 Démarrage Simple ```bash # 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 - **[`scripts/README.md`](scripts/README.md)** - Documentation complète des scripts - **[`4NK_env/IA_agents/context.md`](IA_agents/context.md)** - Contexte et architecture du projet - **[`4NK_env/IA_agents/flux.md`](IA_agents/flux.md)** - Flux d'architecture et services - **[`4NK_env/IA_agents/deploy.md`](IA_agents/deploy.md)** - Procédure de déploiement complète ### 🛡️ Protection des Données - **Sauvegarde automatique** : `./scripts/backup-data.sh` - **Mise à jour sécurisée** : `./scripts/update-images.sh` - **Restauration** : `./scripts/restore-data.sh ` ## 🌐 Accès aux Services | Service | URL | Description | |---------|-----|-------------| | **LeCoffre Frontend** | `/lecoffre` | Interface principale | | **IHM Client** | `/` | Interface de gestion des clés | | **API Backend** | `/api/` | API REST | | **WebSocket** | `wss:///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 ```bash # 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é : ```bash # Démarrer le monitoring ./scripts/deploy-grafana.sh start # Accéder à Grafana /grafana/ ``` **Identifiants** : `admin` / `` ### 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 ```bash # Collecter les logs de tous les services ./scripts/collect-logs.sh # Logs centralisés dans logs/ ``` 📖 **[Documentation complète du monitoring](docs/MONITORING.md)** ## 🔧 Configuration ### Variables d'Environnement Les variables d'environnement sont centralisées dans `.env` : ```bash # URLs des services externes (à définir selon l'environnement) VITE_BOOTSTRAPURL=wss:///ws/ SIGNER_WS_URL=ws://:9090 SIGNER_BASE_URL=https:// # Configuration monitoring 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 : ```bash # 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 ```bash # 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) - [`4NK_env/IA_agents/context.md`](IA_agents/context.md) - Contexte et objectifs - [`4NK_env/IA_agents/flux.md`](IA_agents/flux.md) - Architecture et flux - [`4NK_env/IA_agents/deploy.md`](IA_agents/deploy.md) - Procédure de déploiement ### Documentation Technique - [`docs/REX.md`](docs/REX.md) - Rapport d'expérience de déploiement - [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) - Architecture détaillée - [`docs/CONFIGURATION_SERVICES.md`](docs/CONFIGURATION_SERVICES.md) - Configuration des services ## 🆘 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 ```bash # 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 : ```bash # 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](LICENSE) pour plus de détails. --- **💡 Conseil** : Commencez toujours par lire [`4NK_env/IA_agents/context.md`](IA_agents/context.md) pour comprendre le contexte du projet ! ## 📋 Fichiers centralisés Les fichiers suivants sont centralisés dans le dépôt principal `4NK_env` : - `CODE_OF_CONDUCT.md` - Code de conduite - `CODEOWNERS` - Propriétaires du code - `CONTRIBUTING.md` - Guide de contribution - `LICENSE` - Licence du projet Voir : [`4NK_env/CODE_OF_CONDUCT.md`](../../CODE_OF_CONDUCT.md), [`4NK_env/CODEOWNERS`](../../CODEOWNERS), [`4NK_env/CONTRIBUTING.md`](../../CONTRIBUTING.md), [`4NK_env/LICENSE`](../../LICENSE)