- Ajout du workflow CI/CD avec configuration SSH automatique - Création des templates pour issues et pull requests - Script de configuration SSH automatique (scripts/setup-ssh-ci.sh) - Documentation SSH complète (docs/SSH_SETUP.md) - Mise à jour de la configuration d'intégration 4NK_node - Amélioration du script de démarrage et de la config Nginx La clé SSH est maintenant utilisée automatiquement dans tous les environnements : - CI/CD Gitea Actions avec variable SSH_PRIVATE_KEY - Environnement local avec détection automatique - Configuration Git pour utiliser SSH au lieu de HTTPS
8.4 KiB
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égrationnginx.4nk-node.conf
- Configuration nginx adaptée à 4NK_nodestart-4nk-node.sh
- Script de démarrage avec vérification des servicesdocker-compose.4nk-node.yml
- Configuration Docker ComposeINTEGRATION_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
-
sdk_relay WebSocket (
/ws/
)- Communication temps réel
- Synchronisation des données
- Notifications
-
sdk_relay HTTP API (
/api/
)- Endpoints REST
- Gestion des paiements
- Configuration
-
Bitcoin Core RPC (
/bitcoin/
)- Accès aux données blockchain
- Gestion des transactions
- Monitoring
-
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
-
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
-
Erreurs nginx
# Vérifier la configuration docker exec 4nk-ihm-client nginx -t # Redémarrer nginx docker exec 4nk-ihm-client nginx -s reload
-
Problèmes de build
# Nettoyer et rebuilder docker-compose down docker system prune -f docker-compose build --no-cache ihm_client
📈 Évolution
Prochaines Étapes
- Intégration complète dans 4NK_node
- Tests automatisés d'intégration
- Monitoring avancé avec métriques
- Interface d'administration pour 4NK_node
- 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.