ihm_client/docs/INSTALLATION.md

375 lines
7.1 KiB
Markdown

# 📦 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é.** ✨