ihm_client/docs/INTEGRATION_4NK_NODE.md

8.4 KiB

Intégration de l'Interface Utilisateur dans 4NK_node

Ce document décrit le processus d'intégration de l'interface utilisateur ihm_client dans l'infrastructure 4NK_node.

🎯 Objectif

Intégrer l'interface utilisateur web dans le conteneur 4NK_node pour fournir une interface graphique complète pour :

  • Gestion des paiements silencieux
  • Interaction avec les relais sdk_relay
  • Monitoring de l'infrastructure Bitcoin
  • Interface utilisateur pour les fonctionnalités 4NK

📁 Fichiers d'Intégration

Nouveaux Fichiers Créés

  • Dockerfile.4nk-node - Dockerfile optimisé pour l'intégration
  • nginx.4nk-node.conf - Configuration nginx adaptée à 4NK_node
  • start-4nk-node.sh - Script de démarrage avec vérification des services
  • docker-compose.4nk-node.yml - Configuration Docker Compose
  • INTEGRATION_4NK_NODE.md - Cette documentation

🏗️ Architecture d'Intégration

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   ihm_client    │    │   sdk_relay_1   │    │   sdk_relay_2   │
│   (Port 8080)   │◄──►│   (Port 8090)   │◄──►│   (Port 8091)   │
└─────────────────┘    └─────────────────┘    └─────────────────┘
         │                       │                       │
         │                       ▼                       ▼
         │              ┌─────────────────┐    ┌─────────────────┐
         │              │   sdk_relay_3   │    │     Bitcoin     │
         │              │   (Port 8092)   │    │   (Port 18443)  │
         │              └─────────────────┘    └─────────────────┘
         │                       │                       │
         │                       ▼                       ▼
         │              ┌─────────────────┐    ┌─────────────────┐
         └─────────────►│    Blindbit     │    │       Tor       │
                        │   (Port 8000)   │    │   (Port 9050)   │
                        └─────────────────┘    └─────────────────┘

🚀 Démarrage Rapide

1. Prérequis

  • Docker et Docker Compose installés
  • Réseau btcnet créé (via 4NK_node)
  • Services 4NK_node en cours d'exécution

2. Intégration dans 4NK_node

# Depuis le répertoire 4NK_node
cd 4NK_node

# Ajouter le service ihm_client au docker-compose.yml
# Copier les fichiers d'intégration depuis ihm_client
cp ../ihm_client/Dockerfile.4nk-node ./ihm_client/
cp ../ihm_client/nginx.4nk-node.conf ./ihm_client/
cp ../ihm_client/start-4nk-node.sh ./ihm_client/

# Ajouter le service au docker-compose.yml principal

3. Configuration du docker-compose.yml principal

Ajouter le service suivant au docker-compose.yml de 4NK_node :

ihm_client:
  build:
    context: ./ihm_client
    dockerfile: Dockerfile.4nk-node
  container_name: 4nk-ihm-client
  ports:
    - "8080:80"
  environment:
    - SDK_RELAY_WS_URL=ws://sdk_relay_1:8090
    - SDK_RELAY_HTTP_URL=http://sdk_relay_1:8091
    - BITCOIN_RPC_URL=http://bitcoin:18443
    - BLINDBIT_URL=http://blindbit:8000
  volumes:
    - ihm_client_logs:/var/log/nginx
  networks:
    - btcnet
  depends_on:
    - sdk_relay_1
    - sdk_relay_2
    - sdk_relay_3
  restart: unless-stopped

4. Démarrage

# Redémarrer l'infrastructure complète
./restart_4nk_node.sh

# Ou démarrer uniquement l'interface
docker-compose up -d ihm_client

🔧 Configuration

Variables d'Environnement

Variable Défaut Description
SDK_RELAY_WS_URL ws://sdk_relay_1:8090 URL WebSocket du relais principal
SDK_RELAY_HTTP_URL http://sdk_relay_1:8091 URL HTTP de l'API du relais
BITCOIN_RPC_URL http://bitcoin:18443 URL RPC de Bitcoin Core
BLINDBIT_URL http://blindbit:8000 URL du service Blindbit

Ports

Port Service Description
8080 HTTP Interface utilisateur principale
3003 Dev Serveur de développement (optionnel)

Volumes

Volume Description
ihm_client_logs Logs nginx
ihm_client_data Données persistantes

🔌 Connectivité

Services Intégrés

  1. sdk_relay WebSocket (/ws/)

    • Communication temps réel
    • Synchronisation des données
    • Notifications
  2. sdk_relay HTTP API (/api/)

    • Endpoints REST
    • Gestion des paiements
    • Configuration
  3. Bitcoin Core RPC (/bitcoin/)

    • Accès aux données blockchain
    • Gestion des transactions
    • Monitoring
  4. Blindbit (/blindbit/)

    • Filtres de paiements silencieux
    • Services de validation

🧪 Tests d'Intégration

Test de Connectivité

# Test de l'interface principale
curl -f http://localhost:8080

# Test de l'API sdk_relay
curl -f http://localhost:8080/api/health

# Test WebSocket
wscat -c ws://localhost:8080/ws/

Test de Fonctionnalités

# Vérifier les logs
docker logs 4nk-ihm-client

# Tester la santé du conteneur
docker exec 4nk-ihm-client wget -q -O- http://localhost

# Vérifier la configuration
docker exec 4nk-ihm-client cat /usr/share/nginx/html/config.js

🔍 Monitoring

Logs

# Logs en temps réel
docker logs -f 4nk-ihm-client

# Logs nginx
docker exec 4nk-ihm-client tail -f /var/log/nginx/ihm_client_access.log
docker exec 4nk-ihm-client tail -f /var/log/nginx/ihm_client_error.log

Métriques

  • Disponibilité : Healthcheck automatique
  • Performance : Logs nginx avec métriques
  • Erreurs : Logs d'erreur centralisés

🛠️ Développement

Mode Développement

# Démarrer en mode développement
docker-compose -f docker-compose.4nk-node.yml up -d

# Rebuild après modifications
docker-compose -f docker-compose.4nk-node.yml build --no-cache ihm_client

Debugging

# Accès au conteneur
docker exec -it 4nk-ihm-client sh

# Vérifier la configuration nginx
docker exec 4nk-ihm-client nginx -t

# Tester les services
docker exec 4nk-ihm-client wget -q -O- http://sdk_relay_1:8091/health

🔒 Sécurité

Headers de Sécurité

  • X-Frame-Options: SAMEORIGIN
  • X-Content-Type-Options: nosniff
  • X-XSS-Protection: 1; mode=block
  • Referrer-Policy: strict-origin-when-cross-origin

Authentification

  • Bitcoin RPC : Authentification basique
  • API sdk_relay : CORS configuré
  • WebSocket : Validation des connexions

📊 Performance

Optimisations

  • Cache statique : Assets avec expiration 1 an
  • Compression : Nginx gzip activé
  • Proxy : Connexions persistantes
  • Healthcheck : Monitoring automatique

Ressources

  • CPU : 0.5-1 core
  • RAM : 256-512 MB
  • Stockage : 100-200 MB

🚨 Dépannage

Problèmes Courants

  1. Service non accessible

    # Vérifier les logs de démarrage
    docker logs 4nk-ihm-client
    
    # Vérifier la connectivité réseau
    docker exec 4nk-ihm-client ping sdk_relay_1
    
  2. Erreurs nginx

    # Vérifier la configuration
    docker exec 4nk-ihm-client nginx -t
    
    # Redémarrer nginx
    docker exec 4nk-ihm-client nginx -s reload
    
  3. Problèmes de build

    # Nettoyer et rebuilder
    docker-compose down
    docker system prune -f
    docker-compose build --no-cache ihm_client
    

📈 Évolution

Prochaines Étapes

  1. Intégration complète dans 4NK_node
  2. Tests automatisés d'intégration
  3. Monitoring avancé avec métriques
  4. Interface d'administration pour 4NK_node
  5. Documentation utilisateur complète

Améliorations Futures

  • Interface d'administration pour gérer l'infrastructure
  • Dashboard de monitoring en temps réel
  • Gestion des utilisateurs et permissions
  • API REST pour l'automatisation
  • Interface mobile responsive

Note : Cette intégration est conçue pour être transparente et non intrusive dans l'infrastructure 4NK_node existante.