Architecture des Flux et Services - LeCoffre Node
Tableau des Services - IP/Domaines et Ports
🚀 Scripts de Gestion (Nouveau)
| Script |
Fonction |
Utilisation |
start.sh |
Démarrage séquentiel avec progression |
./scripts/start.sh |
validate-deployment.sh |
Validation complète du déploiement |
./scripts/validate-deployment.sh |
maintenance.sh |
Menu interactif de maintenance |
./scripts/maintenance.sh |
backup-data.sh |
Sauvegarde des volumes Docker |
./scripts/backup-data.sh |
restore-data.sh |
Restauration depuis sauvegarde |
./scripts/restore-data.sh <backup> |
update-images.sh |
Mise à jour sécurisée |
./scripts/update-images.sh |
🏠 Services Locaux (Docker Compose)
| Service |
Container |
Port Local |
Port Interne |
Protocole |
URL d'accès |
| tor |
tor-proxy |
- |
9050 |
TCP |
Réseau interne uniquement |
| bitcoin |
bitcoin-signet |
- |
38332 (RPC) 38333 (P2P) 29000 (ZMQ hash) 29001 (ZMQ rawtx) |
TCP |
Réseau interne uniquement |
| blindbit |
blindbit-oracle |
0.0.0.0:8000 |
8000 |
HTTP |
http://0.0.0.0:8000 |
| sdk_relay |
sdk_relay |
0.0.0.0:8090 0.0.0.0:8091 |
8090 (WS) 8091 (HTTP) |
WebSocket/HTTP |
ws://0.0.0.0:8090 http://0.0.0.0:8091 |
| lecoffre-front |
lecoffre-front |
127.0.0.2:3004 |
3000 |
HTTP |
http://127.0.0.2:3004 |
| ihm_client |
ihm_client |
0.0.0.0:3003 |
3003 |
HTTP |
http://0.0.0.0:3003 |
| sdk_storage |
sdk_storage |
0.0.0.0:8081 |
8080 |
HTTP |
http://0.0.0.0:8081 |
| grafana |
grafana |
127.0.0.1:3005 |
3000 |
HTTP |
http://127.0.0.1:3005 |
| loki |
loki |
127.0.0.1:3100 |
3100 |
HTTP |
http://127.0.0.1:3100 |
| promtail |
promtail |
- |
- |
- |
Collecte des logs |
🌐 Services Externes
| Service |
Domaine |
Port |
Protocole |
URL d'accès |
Statut |
| Bootstrap Relay |
dev3.4nkweb.com |
443 |
WSS |
wss://dev3.4nkweb.com/ws/ |
✅ Actif |
| Signer Externe |
dev3.4nkweb.com |
9090 |
WS |
ws://dev3.4nkweb.com:9090 |
✅ Actif |
| Signer Base |
dev3.4nkweb.com |
443 |
HTTPS |
https://dev3.4nkweb.com |
✅ Actif |
| Mempool |
mempool2.4nkweb.com |
443 |
HTTPS |
https://mempool2.4nkweb.com |
✅ Actif |
| Storage |
dev4.4nkweb.com |
443 |
HTTPS |
https://dev4.4nkweb.com/storage |
✅ Actif |
🔄 Proxy Nginx (dev4.4nkweb.com)
| Route |
Destination |
Port |
Protocole |
Description |
| / |
ihm_client |
3003 |
HTTP |
Interface principale |
| /lecoffre |
lecoffre-front |
3004 |
HTTP |
Application LeCoffre |
| /ws/ |
sdk_relay |
8090 |
WebSocket |
Relay WebSocket |
| /src/service-workers/ |
ihm_client |
3003 |
HTTP |
Service Workers |
| /grafana/ |
grafana |
3005 |
HTTP |
Interface de monitoring |
| /loki/ |
loki |
3100 |
HTTP |
API de logs |
🏠 Proxy Nginx Local (dev3.4nkweb.com)
| Route |
Destination |
Port |
Protocole |
Description |
| / |
Redirection |
3000 |
HTTP |
Redirige vers port 3000 |
| /lecoffre/ |
lecoffre-front |
3004 |
HTTP |
Application LeCoffre local |
🔧 Configuration Bitcoin Signet
| Service |
Port |
Protocole |
Description |
| RPC |
38332 |
TCP |
Interface RPC Bitcoin |
| P2P |
38333 |
TCP |
Réseau peer-to-peer |
| ZMQ Hash |
29000 |
TCP |
Notifications de blocs |
| ZMQ RawTx |
29001 |
TCP |
Notifications de transactions |
| Tor |
9050 |
TCP |
Proxy Tor |
🌐 Réseau Docker
| Réseau |
Subnet |
Driver |
Services |
| btcnet |
172.20.0.0/16 |
bridge |
Tous les services |
🔗 Variables d'Environnement Clés (Centralisées - 2024-09-21)
Configuration centralisée : Toutes les variables sont dans lecoffre_node/.env.master
| Variable |
Valeur |
Service |
| VITE_BOOTSTRAPURL |
wss://dev4.4nkweb.com/ws/ |
ihm_client |
| RELAY_URLS |
wss://dev4.4nkweb.com/ws/,wss://dev3.4nkweb.com/ws/ |
|
| bootstrap_url |
wss://dev3.4nkweb.com/ws/ |
sdk_relay |
| storage |
https://dev4.4nkweb.com/storage |
sdk_relay |
| GRAFANA_ADMIN_PASSWORD |
<GRAFANA_ADMIN_PASSWORD> |
grafana |
| GF_SERVER_ROOT_URL |
https://dev4.4nkweb.com/grafana/ |
grafana |
Variables centralisées :
- SDK_RELAY_* : Configuration complète du service relay
- SIGNER_* : Configuration complète du service signer
- VITE_* : Configuration des applications frontend
- IDNOT_* : Configuration des APIs notaires
- STRIPE_* : Configuration des paiements
- MAILCHIMP_* : Configuration des emails
- OVH_* : Configuration des SMS
Flux d'Architecture
🔄 Flux Principal
Internet → dev4.4nkweb.com (Nginx) → Services Locaux
- Frontend :
https://dev4.4nkweb.com/lecoffre → lecoffre-front (127.0.0.2:3004)
- IHM :
https://dev4.4nkweb.com/ → ihm_client (0.0.0.0:3003)
- WebSocket :
https://dev4.4nkweb.com/ws/ → sdk_relay (0.0.0.0:8090)
- Monitoring :
https://dev4.4nkweb.com/grafana/ → grafana (127.0.0.1:3005)
- Logs API :
https://dev4.4nkweb.com/loki/ → loki (127.0.0.1:3100)
🌐 Flux Externes
- Bootstrap :
wss://dev3.4nkweb.com/ws/ (Relay externe)
- Signer :
ws://dev3.4nkweb.com:9090 (Actuellement inactif)
- Mempool :
https://mempool2.4nkweb.com (Réseau Bitcoin Signet)
📊 Architecture du Monitoring
🔄 Stack de Monitoring
Services → Logs Centralisés → Promtail → Loki → Grafana
↓ ↓ ↓ ↓ ↓
Docker logs/ Collecte Stockage Dashboard
📁 Centralisation des Logs
| Service |
Dossier de Logs |
Volume Docker |
Description |
| bitcoin |
logs/bitcoin/ |
./logs/bitcoin:/var/log/bitcoin |
Logs Bitcoin Signet |
| blindbit |
logs/blindbit/ |
./logs/blindbit:/var/log/blindbit |
Logs Oracle |
| sdk_relay |
logs/sdk_relay/ |
./logs/sdk_relay:/var/log/sdk_relay |
Logs Relay |
| sdk_storage | logs/sdk_storage/ | ./logs/sdk_storage:/var/log/sdk_storage | Logs Storage |
| lecoffre-front | logs/lecoffre-front/ | ./logs/lecoffre-front:/var/log/lecoffre-front | Logs Frontend |
| ihm_client | logs/ihm_client/ | ./logs/ihm_client:/var/log/ihm_client | Logs IHM |
| miner | logs/miner/ | ./logs/miner:/var/log/miner | Logs Mineur |
| tor | logs/tor/ | ./logs/tor:/var/log/tor | Logs Tor |
📊 Dashboards Grafana
| Dashboard |
ID |
Description |
Métriques |
| Vue d'ensemble LeCoffre |
lecoffre-overview |
Monitoring global |
Erreurs par service, volume de logs, logs d'erreur temps réel |
| Bitcoin & Miner |
bitcoin-miner |
Monitoring blockchain |
Nouveaux blocs, blocs minés, erreurs blockchain |
| Services Applications |
services-overview |
Monitoring applicatif |
Volume de logs par service, erreurs applications |
🔧 Scripts de Gestion
| Script |
Description |
Usage |
deploy-grafana.sh |
Déploiement du monitoring |
./scripts/deploy-grafana.sh start |
setup-logs.sh |
Configuration des logs |
./scripts/setup-logs.sh |
collect-logs.sh |
Collecte des logs |
./scripts/collect-logs.sh |
test-monitoring.sh |
Test de connectivité |
./scripts/test-monitoring.sh |
sync-monitoring-config.sh |
Synchronisation config |
./scripts/sync-monitoring-config.sh |
⚠️ Points d'Attention
- dev3.4nkweb.com:9090 - Service signer externe actuellement inactif
- dev3.4nkweb.com - Retourne 502 Bad Gateway (services backend indisponibles)
- Ports 0.0.0.0 - Services locaux uniquement accessibles depuis la machine
- Ports 127.0.0.2 - lecoffre-front sur interface séparée
- Grafana Port 3005 - Changé de 3000 pour éviter conflit avec lecoffre-front
- Monitoring - Loki et Promtail doivent être démarrés avant Grafana
📋 Ordre de Démarrage des Services
Selon les règles du projet, l'ordre de démarrage est :
🚀 Services Principaux
- tor - Proxy anonyme
- bitcoin - Nœud Bitcoin Signet
- blindbit - Oracle Bitcoin
- sdk_storage - Stockage temporaire
- sdk_relay - Relais des transactions
- ihm_client - Interface utilisateur
- lecoffre-front - Frontend application
📊 Services de Monitoring
- loki - Base de données de logs
- promtail - Agent de collecte des logs
- grafana - Interface de visualisation
🔧 Services Utilitaires
- watchtower - Surveillance automatique des conteneurs
- signet_miner - Mineur Bitcoin (profil séparé)
🔧 Configuration Critique
🌐 Services Externes
- Mempool du réseau signet :
https://mempool2.4nkweb.com/fr/docs/api/rest
- Test de connectivité Bitcoin :
docker exec bitcoin-signet bitcoin-cli -signet -rpccookiefile=/home/bitcoin/.bitcoin/signet/.cookie getblockchaininfo
- Test WebSocket Bootstrap :
wss://dev3.4nkweb.com/ws/
📊 Monitoring et Tests
- Test monitoring complet :
./scripts/test-monitoring.sh
- Déploiement Grafana :
./scripts/deploy-grafana.sh start
- Collecte des logs :
./scripts/collect-logs.sh
- Grafana local :
http://localhost:3005 (admin/<GRAFANA_ADMIN_PASSWORD>)
- Loki API :
http://localhost:3100/loki/api/v1/labels
- Test connectivité Grafana :
curl http://localhost:3005/api/health
- Test connectivité Loki :
curl http://localhost:3100/ready
💾 Volumes et Persistance des Données
📦 Volumes Docker
| Volume |
Services |
Données |
Persistance |
| 4nk_node_bitcoin_data |
bitcoin, blindbit |
Blockchain, wallet, conf |
✅ Critique |
| blindbit_data |
blindbit |
Oracle data, tweaks |
✅ Critique |
| sdk_data |
sdk_relay |
Relay data, logs |
✅ Important |
| grafana_data |
grafana |
Dashboards, config |
✅ Important |
| loki_data |
loki |
Logs stockés |
✅ Important |
📁 Volumes de Logs
| Service |
Volume Local |
Volume Conteneur |
Description |
| Tous services |
./logs/{service}/ |
/var/log/{service} |
Logs centralisés |
| Bitcoin |
./logs/bitcoin/ |
/var/log/bitcoin |
Logs blockchain |
| Applications |
./logs/{app}/ |
/var/log/{app} |
Logs applicatifs |
🔄 Rotation et Nettoyage
- Rotation automatique : Configuration dans
conf/logrotate/
- Rétention : 7 jours par défaut
- Compression : Automatique après rotation
- Nettoyage : Scripts de maintenance disponibles
🚀 Déploiement et Maintenance
📋 Commandes Essentielles
# Démarrage complet avec variables centralisées
docker compose --env-file .env.master up -d
# Test de la configuration centralisée
./scripts/test-env-config.sh
# Démarrage monitoring
./scripts/deploy-grafana.sh start
# Test de connectivité
./scripts/test-monitoring.sh
# Collecte des logs
./scripts/collect-logs.sh
# Synchronisation config
./scripts/sync-monitoring-config.sh
🔧 Maintenance
- Surveillance : Watchtower automatique toutes les 30s
- Logs : Centralisés et rotatifs
- Monitoring : Grafana + Loki + Promtail
- Backup : Volumes Docker persistants
🌐 Configuration Nginx - Règles et Routes
📋 Tableau Récapitulatif des Routes
| Domaine |
Port |
Route |
Destination |
Protocole |
Statut |
| dev4.4nkweb.com |
80 |
/ |
Redirection HTTPS |
HTTP |
✅ Actif |
| dev4.4nkweb.com |
80 |
/.well-known/acme-challenge/ |
Let's Encrypt |
HTTP |
✅ Actif |
| dev4.4nkweb.com |
443 |
/grafana/ |
Grafana (3005) |
HTTPS |
✅ Actif |
| dev4.4nkweb.com |
443 |
/loki/ |
Loki (3100) |
HTTPS |
✅ Actif |
| dev4.4nkweb.com |
443 |
/status/ |
Page statut |
HTTPS |
✅ Actif |
| dev4.4nkweb.com |
443 |
/status/api |
API statut (3006) |
HTTPS |
✅ Actif |
| dev4.4nkweb.com |
443 |
/api/ |
Backend (8080) |
HTTPS |
✅ Actif |
| dev4.4nkweb.com |
443 |
/ws/ |
SDK Relay (8090) |
HTTPS |
✅ Actif |
| dev4.4nkweb.com |
443 |
/signer/ |
SDK Signer (3001) |
HTTPS |
✅ Actif |
| dev4.4nkweb.com |
443 |
/blindbit/ |
BlindBit (8000) |
HTTPS |
✅ Actif |
| dev4.4nkweb.com |
443 |
/ |
IHM Client (3003) |
HTTPS |
✅ Actif |
| dev3.4nkweb.com |
80 |
/ |
Redirection port 3000 |
HTTP |
✅ Actif |
| dev3.4nkweb.com |
3000 |
/lecoffre/ |
Frontend (3004) |
HTTP |
✅ Actif |
| dev3.4nkweb.com |
3000 |
/authorized-client |
Frontend (3004) |
HTTP |
✅ Actif |
🔧 Configuration des Certificats SSL
| Domaine |
Certificat |
Expiration |
Statut |
| dev4.4nkweb.com |
/etc/letsencrypt/live/dev4.4nkweb.com/ |
15 Déc 2025 |
✅ Valide |
📁 Fichiers de Configuration
| Fichier |
Description |
Statut |
/etc/nginx/sites-enabled/dev4.4nkweb.com.conf |
HTTP + Redirection |
✅ Actif |
/etc/nginx/sites-enabled/dev4.4nkweb.com-https.conf |
HTTPS complet |
✅ Actif |
/etc/nginx/sites-enabled/dev3.4nkweb.com.conf |
Local HTTP |
✅ Actif |
/etc/nginx/sites-enabled/dev3.4nkweb.com-3000.conf |
Local port 3000 |
✅ Actif |
🧹 Configuration Centralisée (Nginx en Docker)
Toutes les configurations Nginx restent centralisées dans lecoffre_node/conf/nginx/, mais l’exécution cible est en Docker pour lecoffre_node et les modules 4NK :
- ✅ Exécution: conteneur
nginx:stable-alpine
- ✅ Montages:
/etc/nginx/conf.d depuis lecoffre_node/conf/nginx/
- ✅ Logs: montés vers
/var/log/nginx
- ✅ Ports: publication
80/443
- ✅ Fichiers supprimés:
ihm_client/nginx.dev.conf (obsolète)
✅ Statut Final
- Configuration HTTPS active : Le port 443 est en écoute ✅
- Fichiers nettoyés : Tous les fichiers de sauvegarde supprimés ✅
- Configuration complète : Tous les services accessibles en HTTPS ✅
- Redirection HTTP → HTTPS : Fonctionnelle ✅
🎉 Services HTTPS Opérationnels
- ✅ Grafana :
https://dev4.4nkweb.com/grafana/
- ✅ Page de Statut :
https://dev4.4nkweb.com/status/
- ✅ API de Statut :
https://dev4.4nkweb.com/status/api
- ✅ Loki :
https://dev4.4nkweb.com/loki/
- ✅ IHM Client :
https://dev4.4nkweb.com/
- ✅ API Backend :
https://dev4.4nkweb.com/api/
- ✅ WebSocket Relay :
https://dev4.4nkweb.com/ws/
- ✅ BlindBit :
https://dev4.4nkweb.com/blindbit/
Met à jour ce document si tu détectes des incohérences ou pose des questions pour confirmer.
Propose des améliorations dans un document lecoffre_node/IA_agents/todo.md