From e4cc35a07ddca8aaf84cca071dec2ba31b844476 Mon Sep 17 00:00:00 2001 From: Nicolas Cantu Date: Mon, 25 Aug 2025 18:47:04 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20ajout=20de=20la=20documentation=20compl?= =?UTF-8?q?=C3=A8te=20de=20l'int=C3=A9gration=20ihm=5Fclient=20-=20Archite?= =?UTF-8?q?cture=20d=C3=A9taill=C3=A9e=20des=20services=20-=20Configuratio?= =?UTF-8?q?n=20et=20variables=20d'environnement=20-=20Scripts=20de=20d?= =?UTF-8?q?=C3=A9marrage=20et=20commandes=20utiles=20-=20URLs=20d'acc?= =?UTF-8?q?=C3=A8s=20et=20fonctionnalit=C3=A9s=20-=20Guide=20de=20troubles?= =?UTF-8?q?hooting=20et=20maintenance?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/INTEGRATION_IHM_CLIENT.md | 295 +++++++++++++++++++++++++++++++++ 1 file changed, 295 insertions(+) create mode 100644 docs/INTEGRATION_IHM_CLIENT.md diff --git a/docs/INTEGRATION_IHM_CLIENT.md b/docs/INTEGRATION_IHM_CLIENT.md new file mode 100644 index 00000000..9010475b --- /dev/null +++ b/docs/INTEGRATION_IHM_CLIENT.md @@ -0,0 +1,295 @@ +# Intégration de ihm_client dans 4NK_node + +## Vue d'ensemble + +L'interface utilisateur `ihm_client` a été intégrée avec succès dans l'infrastructure `4NK_node`, permettant une expérience utilisateur complète pour interagir avec les Silent Payments. + +## Architecture + +### Services intégrés + +1. **ihm_client** - Interface utilisateur web + - Port: 8080 + - URL: http://localhost:8080 + - Technologie: TypeScript + Vite + Vue.js + +2. **sdk_relay_1, sdk_relay_2, sdk_relay_3** - Relais Silent Payments + - Ports: 8090-8095 + - Technologie: Rust + +3. **bitcoin** - Nœud Bitcoin Signet + - Port: 18443 (RPC) + - Technologie: Bitcoin Core + +4. **blindbit** - Oracle Blindbit + - Port: 8000 + - Technologie: Rust + +### Communication entre services + +``` +ihm_client (8080) + ↓ HTTP/WebSocket +sdk_relay_1 (8090/8091) + ↓ P2P +sdk_relay_2 (8092/8093) + ↓ P2P +sdk_relay_3 (8094/8095) + ↓ RPC +bitcoin (18443) + ↓ API +blindbit (8000) +``` + +## Configuration + +### Variables d'environnement + +Le service `ihm_client` est configuré avec les variables d'environnement suivantes : + +```yaml +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 +``` + +### Dépendances + +- `ihm_client` dépend de `sdk_relay_1`, `sdk_relay_2`, `sdk_relay_3` +- Les SDK relays dépendent de `bitcoin` et `blindbit` +- `blindbit` dépend de `bitcoin` + +## Démarrage + +### Script de démarrage complet + +```bash +./start-4nk-node-with-ui.sh +``` + +Ce script : +1. Arrête et nettoie les conteneurs existants +2. Démarre tous les services +3. Vérifie la santé de chaque service +4. Affiche les URLs d'accès + +### Script de démarrage UI uniquement + +```bash +./start-ihm-client.sh +``` + +Ce script démarre uniquement l'interface utilisateur. + +### Démarrage manuel + +```bash +# Démarrer tous les services +docker-compose up -d + +# Démarrer uniquement l'interface utilisateur +docker-compose up -d ihm_client +``` + +## URLs d'accès + +| Service | URL | Description | +|---------|-----|-------------| +| Interface utilisateur | http://localhost:8080 | Interface web principale | +| Bitcoin RPC | http://localhost:18443 | API Bitcoin | +| Blindbit | http://localhost:8000 | Oracle Blindbit | +| SDK Relay 1 | http://localhost:8091 | Relais 1 HTTP | +| SDK Relay 2 | http://localhost:8093 | Relais 2 HTTP | +| SDK Relay 3 | http://localhost:8095 | Relais 3 HTTP | + +## Commandes utiles + +### Vérification du statut + +```bash +# Statut de tous les services +docker-compose ps + +# Logs d'un service spécifique +docker-compose logs ihm_client +docker-compose logs sdk_relay_1 +docker-compose logs bitcoin +``` + +### Gestion des services + +```bash +# Redémarrer un service +docker-compose restart ihm_client + +# Arrêter tous les services +docker-compose down + +# Reconstruire un service +docker-compose build ihm_client +``` + +### Debugging + +```bash +# Accéder au conteneur ihm_client +docker exec -it 4nk-ihm-client bash + +# Vérifier les logs en temps réel +docker-compose logs -f ihm_client +``` + +## Fonctionnalités de l'interface utilisateur + +### Pages principales + +1. **Accueil** - Vue d'ensemble et navigation +2. **Compte** - Gestion du profil utilisateur +3. **Processus** - Création et gestion des processus +4. **Signature** - Signatures de documents +5. **Chat** - Communication entre membres + +### Fonctionnalités clés + +- **Pairing** - Connexion avec d'autres utilisateurs +- **Wallet** - Gestion des Silent Payments +- **Documents** - Validation et signature de documents +- **Notifications** - Système de notifications en temps réel +- **QR Code** - Scanner et génération de QR codes + +## Développement + +### Structure des fichiers + +``` +4NK_node/ +├── ihm_client/ # Interface utilisateur +│ ├── src/ # Code source TypeScript +│ ├── public/ # Assets statiques +│ ├── Dockerfile # Configuration Docker +│ ├── nginx.conf # Configuration Nginx +│ └── start.sh # Script de démarrage +├── docker-compose.yml # Orchestration des services +└── start-*.sh # Scripts de démarrage +``` + +### Compilation + +L'interface utilisateur est compilée automatiquement lors du build Docker : + +```bash +# Build manuel +docker-compose build ihm_client + +# Build avec cache +docker-compose build --no-cache ihm_client +``` + +### Développement local + +Pour développer l'interface utilisateur localement : + +```bash +cd ihm_client +npm install +npm run dev +``` + +## Monitoring et logs + +### Health checks + +Chaque service dispose d'un health check configuré : + +- **ihm_client** : Vérification HTTP sur localhost +- **sdk_relay** : Script de vérification personnalisé +- **bitcoin** : Commande `getblockchaininfo` + +### Logs + +Les logs sont configurés avec rotation : + +```yaml +logging: + driver: "json-file" + options: + max-size: "10m" + max-file: "3" +``` + +## Sécurité + +### Variables d'environnement + +Les variables sensibles sont configurées via les variables d'environnement Docker. + +### Réseau + +Tous les services communiquent via le réseau Docker `btcnet` isolé. + +### Volumes + +Les données persistantes sont stockées dans des volumes Docker nommés. + +## Troubleshooting + +### Problèmes courants + +1. **Service ne démarre pas** + ```bash + docker-compose logs + ``` + +2. **Port déjà utilisé** + ```bash + sudo netstat -tulpn | grep :8080 + ``` + +3. **Problème de compilation** + ```bash + docker-compose build --no-cache ihm_client + ``` + +### Logs de debug + +Pour activer les logs de debug : + +```bash +# SDK relays +export RUST_LOG=debug + +# Interface utilisateur +docker-compose logs -f ihm_client +``` + +## Maintenance + +### Mise à jour + +```bash +# Mettre à jour depuis le repository +git pull origin main + +# Reconstruire les services +docker-compose build + +# Redémarrer +docker-compose up -d +``` + +### Sauvegarde + +```bash +# Sauvegarder les volumes +docker run --rm -v 4nk_node_bitcoin_data:/data -v $(pwd):/backup alpine tar czf /backup/backup.tar.gz -C /data . +``` + +## Support + +Pour toute question ou problème : + +1. Vérifier les logs : `docker-compose logs` +2. Consulter la documentation : `docs/` +3. Créer une issue sur le repository Gitea