
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
- 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
180 lines
4.2 KiB
Markdown
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.
|