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
Toutes les configurations Nginx sont centralisées dans lecoffre_node/conf/nginx/
:
- ✅ Configurations projet : Supprimées des autres projets
- ✅ Configuration native : Conservée dans
/etc/nginx/
- ✅ Liens symboliques : Pointent vers
lecoffre_node/conf/nginx/
- ✅ 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