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