4NK_node/docs/scripts/manage_services.md
Debian 49b30a7ef1
Some checks failed
CI - 4NK_node / Code Quality (push) Failing after 50s
CI - 4NK_node / Unit Tests (push) Failing after 36s
CI - 4NK_node / Integration Tests (push) Successful in 34s
CI - 4NK_node / Security Tests (push) Failing after 32s
CI - 4NK_node / Docker Build & Test (push) Failing after 15s
CI - 4NK_node / Documentation Tests (push) Successful in 11s
CI - 4NK_node / Security Audit (push) Successful in 9s
CI - 4NK_node / Release Guard (push) Has been skipped
CI - 4NK_node / Performance Tests (push) Successful in 34s
CI - 4NK_node / Notify (push) Failing after 2s
CI - 4NK_node / Publish Release (push) Has been skipped
feat: Ajout du script de gestion des services et documentation
- Ajout du script manage_services.sh pour arrêter, nettoyer et redémarrer les services
- Documentation complète du script dans docs/scripts/
- Tests unitaires pour le script dans tests/scripts/
- Correction des contextes de build dans docker-compose.yml
2025-08-29 15:37:32 +00:00

180 lines
4.2 KiB
Markdown

# Script de Gestion des Services 4NK Node
## Description
Le script `manage_services.sh` est un outil de gestion complet pour arrêter, nettoyer et relancer tous les services de l'infrastructure 4NK Node. Il utilise Docker Compose pour orchestrer les services et fournit des fonctionnalités de nettoyage et de surveillance.
## Emplacement
```
4NK_dev/4NK_node/scripts/manage_services.sh
```
## Fonctionnalités
### Commandes Disponibles
| Commande | Description |
|----------|-------------|
| `stop` | Arrêter tous les services |
| `clean` | Arrêter et nettoyer les conteneurs |
| `clean-all` | Arrêter, nettoyer conteneurs et volumes |
| `start` | Démarrer tous les services |
| `restart` | Arrêter, nettoyer et redémarrer (défaut) |
| `status` | Afficher le statut des services |
| `logs` | Afficher les logs en temps réel |
| `help` | Afficher l'aide |
### Services Gérés
Le script gère les services suivants définis dans `docker-compose.yml` :
- **tor-proxy** : Proxy Tor pour l'anonymat
- **bitcoin-signet** : Nœud Bitcoin Core (signet)
- **blindbit-oracle** : Oracle BlindBit
- **sdk_relay_1/2/3** : Trois instances de relais SDK
- **sdk-storage** : Service de stockage
- **4nk-ihm-client** : Interface utilisateur
- **4nk-reverse-proxy** : Proxy inverse Nginx
## Utilisation
### Redémarrage Complet (Recommandé)
```bash
./scripts/manage_services.sh
# ou
./scripts/manage_services.sh restart
```
### Arrêt des Services
```bash
./scripts/manage_services.sh stop
```
### Nettoyage Complet
```bash
./scripts/manage_services.sh clean-all
```
**⚠️ Attention** : Cette commande supprime TOUTES les données persistantes !
### Vérification du Statut
```bash
./scripts/manage_services.sh status
```
### Surveillance des Logs
```bash
./scripts/manage_services.sh logs
```
## Fonctionnalités Avancées
### Nettoyage Intelligent
Le script effectue un nettoyage intelligent en supprimant :
- Conteneurs arrêtés
- Images non utilisées
- Volumes non utilisés
- Réseaux non utilisés
### Attente des Services Critiques
Le script attend automatiquement que les services critiques soient prêts :
- Tor Proxy
- Bitcoin Core
- BlindBit Oracle
### Gestion des Erreurs
- Vérification de la présence de Docker
- Vérification du daemon Docker
- Vérification de Docker Compose
- Arrêt en cas d'erreur (`set -e`)
## Configuration
### Variables d'Environnement
Le script utilise les variables suivantes :
```bash
PROJECT_NAME="4NK Node"
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
COMPOSE_FILE="$PROJECT_DIR/docker-compose.yml"
```
### Couleurs d'Affichage
Le script utilise des couleurs pour améliorer la lisibilité :
- 🔵 Bleu : En-têtes
- 🟢 Vert : Succès
- 🟡 Jaune : Avertissements
- 🔴 Rouge : Erreurs
- 🟣 Violet : Informations
- 🔵 Cyan : Étapes en cours
## Dépannage
### Problèmes Courants
1. **Docker non installé**
```
❌ Docker n'est pas installé ou n'est pas dans le PATH
```
2. **Daemon Docker non démarré**
```
❌ Docker daemon n'est pas en cours d'exécution
```
3. **Docker Compose non disponible**
```
❌ Docker Compose n'est pas installé ou n'est pas dans le PATH
```
### Logs de Construction
En cas de problème lors de la construction des images, utilisez :
```bash
docker compose -f docker-compose.yml build --no-cache --progress=plain
```
## Notes Techniques
### Services Temporairement Désactivés
Le service `sdk_signer` est temporairement désactivé en raison de dépendances manquantes (module `../pkg/sdk_client`).
### Volumes Persistants
Les volumes suivants sont préservés lors du redémarrage :
- `4nk_node_bitcoin_data`
- `4nk_node_blindbit_data`
- `4nk_node_sdk_relay_1_data`
- `4nk_node_sdk_relay_2_data`
- `4nk_node_sdk_relay_3_data`
- `4nk_node_sdk_storage_data`
- `4nk_node_sdk_signer_data`
### Réseau Docker
Le script utilise le réseau `4nk_node_btcnet` pour la communication inter-services.
## Historique des Modifications
- **2025-08-29** : Création du script avec support Docker Compose v2
- Correction des chemins de build pour sdk_storage et sdk_signer
- Désactivation temporaire du service sdk_signer
- Ajout de la documentation complète
## Auteur
Script créé pour l'infrastructure 4NK Node.