274 lines
8.0 KiB
Markdown
274 lines
8.0 KiB
Markdown
# LeCoffre Node - Plateforme de Gestion de Documents Sécurisée
|
|
|
|
[](https://git.4nkweb.com/4nk/lecoffre_node)
|
|
[](https://example.com)
|
|
[](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 <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
|
|
|
|
```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
|
|
<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
|
|
|
|
```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://<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 :
|
|
|
|
```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)
|