# 📦 Guide d'Installation - ihm_client Guide complet pour installer et configurer l'interface utilisateur ihm_client pour les Silent Payments. ## 📋 Prérequis ### Système - **OS** : Linux (Ubuntu 20.04+, Debian 11+, CentOS 8+), macOS 10.15+, Windows 10+ - **Architecture** : x86_64, ARM64 (Apple Silicon) - **RAM** : 4 Go minimum, 8 Go recommandés - **Stockage** : 5 Go minimum, 10 Go recommandés - **Réseau** : Connexion Internet stable ### Logiciels - **Node.js** : Version 18.0+ (LTS recommandé) - **npm** : Version 8.0+ - **Git** : Version 2.25+ - **Rust** : Version 1.70+ (pour la compilation WASM) - **Docker** : Version 20.10+ (optionnel, pour l'intégration 4NK_node) ## 🚀 Installation ### 1. Installation de Node.js #### Ubuntu/Debian ```bash # Mettre à jour les paquets sudo apt update # Installer Node.js via NodeSource curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt-get install -y nodejs # Vérifier l'installation node --version npm --version ``` #### CentOS/RHEL ```bash # Installer Node.js via NodeSource curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash - sudo yum install -y nodejs # Vérifier l'installation node --version npm --version ``` #### macOS ```bash # Installer via Homebrew brew install node@18 # Ou télécharger depuis nodejs.org # https://nodejs.org/en/download/ ``` #### Windows ```bash # Télécharger et installer depuis # https://nodejs.org/en/download/ ``` ### 2. Installation de Rust #### Linux/macOS ```bash # Installer Rust via rustup curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # Recharger l'environnement source ~/.cargo/env # Vérifier l'installation rustc --version cargo --version ``` #### Windows ```bash # Télécharger et installer rustup depuis # https://rustup.rs/ ``` ### 3. Installation de wasm-pack ```bash # Installer wasm-pack cargo install wasm-pack # Vérifier l'installation wasm-pack --version ``` ### 4. Configuration SSH (Recommandé) ```bash # Générer une clé SSH ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_ihm -C "ihm-client-automation" # Ajouter à l'agent SSH ssh-add ~/.ssh/id_ed25519_ihm # Configurer Git pour utiliser la clé git config --global core.sshCommand "ssh -i ~/.ssh/id_ed25519_ihm" # Afficher la clé publique pour Gitea cat ~/.ssh/id_ed25519_ihm.pub ``` **Ajouter la clé publique à Gitea :** 1. Aller sur Gitea > Settings > SSH Keys 2. Coller la clé publique 3. Cliquer sur "Add key" ### 5. Clonage du Repository ```bash # Cloner avec SSH (recommandé) git clone git@git.4nkweb.com:4nk/ihm_client.git cd ihm_client # Ou cloner avec HTTPS git clone https://git.4nkweb.com/4nk/ihm_client.git cd ihm_client ``` ### 6. Installation des Dépendances ```bash # Installer les dépendances Node.js npm install # Vérifier l'installation npm list --depth=0 ``` ### 7. Configuration des Dépendances WASM ```bash # Configurer les dépendances distantes (sdk_client, sdk_common) ./scripts/setup-remote-deps.sh # Vérifier la compilation WASM ls -la pkg/ ``` ## 🔧 Configuration ### Variables d'Environnement Créer un fichier `.env` à la racine du projet : ```bash # Configuration de développement NODE_ENV=development VITE_DEV_SERVER_PORT=3000 VITE_API_URL=http://localhost:8091 VITE_WS_URL=ws://localhost:8090 # Configuration WASM VITE_WASM_PATH=./pkg/sdk_client_bg.wasm # Configuration pour l'intégration 4NK_node 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 ``` ### Configuration TypeScript Le fichier `tsconfig.json` est déjà configuré pour : - Vue.js 3 - TypeScript strict - Support WASM - Path mapping ### Configuration Vite Le fichier `vite.config.ts` est configuré pour : - Support WASM - Hot module replacement - Build optimisé - Support des types TypeScript ## 🧪 Tests Post-Installation ### 1. Test de Compilation ```bash # Test de compilation TypeScript npm run build # Vérifier le build ls -la dist/ ``` ### 2. Test de Développement ```bash # Démarrer le serveur de développement npm run dev # Ouvrir http://localhost:3000 dans le navigateur ``` ### 3. Test WASM ```bash # Vérifier que le module WASM fonctionne npm run test:wasm ``` ### 4. Test Complet ```bash # Exécuter tous les tests npm run test # Vérifier la couverture npm run test:coverage ``` ## 🚨 Dépannage ### Problèmes Courants #### Node.js non trouvé ```bash # Vérifier l'installation which node node --version # Réinstaller si nécessaire curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt-get install -y nodejs ``` #### Rust non trouvé ```bash # Vérifier l'installation which rustc rustc --version # Réinstaller si nécessaire curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source ~/.cargo/env ``` #### Erreurs de compilation WASM ```bash # Nettoyer et recompiler rm -rf pkg/ ./scripts/setup-remote-deps.sh # Vérifier les dépendances Rust cd temp-deps/sdk_client cargo check ``` #### Erreurs de dépendances npm ```bash # Nettoyer et réinstaller rm -rf node_modules/ package-lock.json npm install # Vérifier les vulnérabilités npm audit npm audit fix ``` #### Problèmes de permissions ```bash # Corriger les permissions sudo chown -R $USER:$USER . chmod +x scripts/*.sh ``` ### Logs Détaillés ```bash # Logs de compilation TypeScript npm run build --verbose # Logs de compilation WASM cd temp-deps/sdk_client wasm-pack build --target web --out-dir ../../pkg --verbose # Logs du serveur de développement npm run dev --verbose ``` ## 🔒 Sécurité ### Vérifications de Sécurité ```bash # Audit des dépendances npm npm audit # Audit des dépendances Rust cargo audit # Vérification des vulnérabilités WASM wasm-pack build --target web --out-dir ../../pkg ``` ### Bonnes Pratiques - Utiliser HTTPS en production - Valider toutes les entrées utilisateur - Maintenir les dépendances à jour - Utiliser des variables d'environnement pour les secrets - Tester régulièrement la sécurité ## 📊 Monitoring ### Métriques d'Installation ```bash # Taille du projet du -sh . # Nombre de fichiers find . -type f | wc -l # Dépendances installées npm list --depth=0 | wc -l # Taille du module WASM ls -lh pkg/sdk_client_bg.wasm ``` ### Vérification de l'Installation ```bash # Script de vérification ./scripts/verify-installation.sh # Tests automatisés npm run test:installation ``` ## 🎯 Prochaines Étapes Après l'installation réussie : 1. **Lire le [Guide d'Utilisation](USAGE.md)** - Utiliser l'interface 2. **Consulter l'[Architecture](ARCHITECTURE.md)** - Comprendre le système 3. **Explorer les [APIs](API.md)** - Utiliser les fonctionnalités 4. **Consulter l'[Intégration iframe](INTEGRATION_IFRAME.md)** - Intégrer dans un site hôte ## 📞 Support En cas de problème : 1. Consulter la [documentation](INDEX.md) 2. Vérifier les [issues existantes](https://git.4nkweb.com/4nk/ihm_client/issues) 3. Créer une nouvelle issue avec les détails du problème 4. Inclure les logs et la configuration utilisée --- **🚀 Installation terminée ! ihm_client est prêt à être utilisé.** ✨