ihm_client/docs/INSTALLATION.md

7.1 KiB

📦 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

# 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

# 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

# Installer via Homebrew
brew install node@18

# Ou télécharger depuis nodejs.org
# https://nodejs.org/en/download/

Windows

# Télécharger et installer depuis
# https://nodejs.org/en/download/

2. Installation de Rust

Linux/macOS

# 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

# Télécharger et installer rustup depuis
# https://rustup.rs/

3. Installation de wasm-pack

# Installer wasm-pack
cargo install wasm-pack

# Vérifier l'installation
wasm-pack --version

4. Configuration SSH (Recommandé)

# 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

# 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

# Installer les dépendances Node.js
npm install

# Vérifier l'installation
npm list --depth=0

7. Configuration des Dépendances WASM

# 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 :

# 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

# Test de compilation TypeScript
npm run build

# Vérifier le build
ls -la dist/

2. Test de Développement

# Démarrer le serveur de développement
npm run dev

# Ouvrir http://localhost:3000 dans le navigateur

3. Test WASM

# Vérifier que le module WASM fonctionne
npm run test:wasm

4. Test Complet

# 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é

# 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é

# 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

# 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

# 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

# Corriger les permissions
sudo chown -R $USER:$USER .
chmod +x scripts/*.sh

Logs Détaillés

# 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é

# 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

# 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

# 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 - Utiliser l'interface
  2. Consulter l'Architecture - Comprendre le système
  3. Explorer les APIs - Utiliser les fonctionnalités
  4. Consulter l'Intégration iframe - Intégrer dans un site hôte

📞 Support

En cas de problème :

  1. Consulter la documentation
  2. Vérifier les issues existantes
  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é.