4NK_node/manage_services.sh

112 lines
2.8 KiB
Bash
Executable File

#!/bin/bash
# Script de gestion des services 4NK_node
set -e
# Variables
COMPOSE_FILE="docker-compose.yml"
SERVICES=("tor-proxy" "bitcoin-signet" "blindbit-oracle" "sdk_relay_1" "sdk_relay_2" "sdk_relay_3" "sdk_signer" "sdk_storage" "ihm_client" "reverse_proxy")
# Fonction d'aide
show_help() {
echo "🔧 Gestionnaire des services 4NK_node"
echo ""
echo "Usage: $0 [COMMANDE]"
echo ""
echo "Commandes:"
echo " start Démarrer tous les services"
echo " stop Arrêter tous les services"
echo " restart Redémarrer tous les services"
echo " status Afficher le statut des services"
echo " logs Afficher les logs de tous les services"
echo " logs [SVC] Afficher les logs d'un service spécifique"
echo " build Construire tous les modules"
echo " clean Nettoyer les containers et volumes"
echo " help Afficher cette aide"
echo ""
echo "Services disponibles:"
printf " %s\n" "${SERVICES[@]}"
}
# Fonction pour démarrer les services
start_services() {
echo "🚀 Démarrage des services 4NK_node..."
docker compose -f "$COMPOSE_FILE" up -d
echo "✅ Services démarrés"
}
# Fonction pour arrêter les services
stop_services() {
echo "🛑 Arrêt des services 4NK_node..."
docker compose -f "$COMPOSE_FILE" down
echo "✅ Services arrêtés"
}
# Fonction pour redémarrer les services
restart_services() {
echo "🔄 Redémarrage des services 4NK_node..."
docker compose -f "$COMPOSE_FILE" restart
echo "✅ Services redémarrés"
}
# Fonction pour afficher le statut
show_status() {
echo "📊 Statut des services 4NK_node..."
docker compose -f "$COMPOSE_FILE" ps
}
# Fonction pour afficher les logs
show_logs() {
local service=$1
if [ -z "$service" ]; then
echo "📋 Logs de tous les services..."
docker compose -f "$COMPOSE_FILE" logs --tail=50
else
echo "📋 Logs du service $service..."
docker compose -f "$COMPOSE_FILE" logs --tail=50 "$service"
fi
}
# Fonction pour construire les modules
build_modules() {
echo "🏗️ Construction des modules..."
./build_modules.sh
}
# Fonction pour nettoyer
clean_services() {
echo "🧹 Nettoyage des services..."
docker compose -f "$COMPOSE_FILE" down -v --remove-orphans
docker system prune -f
echo "✅ Nettoyage terminé"
}
# Gestion des commandes
case "${1:-help}" in
start)
start_services
;;
stop)
stop_services
;;
restart)
restart_services
;;
status)
show_status
;;
logs)
show_logs "$2"
;;
build)
build_modules
;;
clean)
clean_services
;;
help|*)
show_help
;;
esac