122 lines
3.5 KiB
Bash
Executable File
122 lines
3.5 KiB
Bash
Executable File
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
echo "🚀 DÉMARRAGE AUTONOME LECOFFRE NODE"
|
|
echo "=================================="
|
|
|
|
# Fonction de logging
|
|
log() {
|
|
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1"
|
|
}
|
|
|
|
# Chargement des variables d'environnement
|
|
if [ -f /app/env.master ]; then
|
|
log "Chargement des variables d'environnement..."
|
|
export $(cat /app/env.master | grep -v '^#' | xargs)
|
|
fi
|
|
|
|
# Vérification des prérequis
|
|
log "Vérification des prérequis..."
|
|
|
|
# Vérifier que Docker est disponible
|
|
if ! command -v docker &> /dev/null; then
|
|
log "❌ Docker non disponible"
|
|
exit 1
|
|
fi
|
|
|
|
# Vérifier que docker-compose est disponible
|
|
if ! command -v docker-compose &> /dev/null; then
|
|
log "❌ Docker Compose non disponible"
|
|
exit 1
|
|
fi
|
|
|
|
log "✅ Prérequis validés"
|
|
|
|
# Initialisation des répertoires
|
|
log "Initialisation des répertoires..."
|
|
mkdir -p /app/data /app/logs /app/backup /var/www/lecoffre/status /var/www/lecoffre/assets
|
|
chown -R appuser:appuser /app/data /app/logs /app/backup
|
|
|
|
# Création du réseau Docker
|
|
log "Création du réseau Docker..."
|
|
docker network create ${DOCKER_NETWORK_NAME:-lecoffre_network} 2>/dev/null || true
|
|
|
|
# Configuration des volumes Docker
|
|
log "Configuration des volumes Docker..."
|
|
docker volume create lecoffre_bitcoin_data 2>/dev/null || true
|
|
docker volume create lecoffre_blindbit_data 2>/dev/null || true
|
|
docker volume create lecoffre_sdk_data 2>/dev/null || true
|
|
docker volume create lecoffre_grafana_data 2>/dev/null || true
|
|
docker volume create lecoffre_loki_data 2>/dev/null || true
|
|
|
|
# Démarrage des services
|
|
log "Démarrage des services Docker Compose..."
|
|
cd /app
|
|
|
|
# Export des variables pour docker-compose
|
|
export COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME:-lecoffre}
|
|
export COMPOSE_FILE=${COMPOSE_FILE:-docker-compose.yml}
|
|
|
|
# Démarrage en mode détaché
|
|
docker-compose up -d
|
|
|
|
# Attente du démarrage des services
|
|
log "Attente du démarrage des services..."
|
|
sleep 30
|
|
|
|
# Vérification de l'état des services
|
|
log "Vérification de l'état des services..."
|
|
docker-compose ps
|
|
|
|
# Vérification de la santé des services
|
|
log "Vérification de la santé des services..."
|
|
for service in bitcoin-signet blindbit-oracle sdk_relay lecoffre-back ihm_client; do
|
|
if docker-compose ps $service | grep -q "healthy\|Up"; then
|
|
log "✅ $service: OK"
|
|
else
|
|
log "⚠️ $service: Problème détecté"
|
|
fi
|
|
done
|
|
|
|
# Test de connectivité
|
|
log "Test de connectivité..."
|
|
if curl -f -s http://localhost:8091/ > /dev/null; then
|
|
log "✅ SDK Relay: Accessible"
|
|
else
|
|
log "❌ SDK Relay: Inaccessible"
|
|
fi
|
|
|
|
if curl -f -s http://localhost:8080/api/v1/health > /dev/null; then
|
|
log "✅ LeCoffre Back: Accessible"
|
|
else
|
|
log "❌ LeCoffre Back: Inaccessible"
|
|
fi
|
|
|
|
if curl -f -s http://localhost:3003/ > /dev/null; then
|
|
log "✅ IHM Client: Accessible"
|
|
else
|
|
log "❌ IHM Client: Inaccessible"
|
|
fi
|
|
|
|
log "✅ Démarrage autonome LeCoffre Node terminé"
|
|
log "📊 Services disponibles:"
|
|
log " - Nginx: http://localhost"
|
|
log " - Status: http://localhost/status/"
|
|
log " - Grafana: http://localhost/grafana/"
|
|
log " - LeCoffre Front: http://localhost/lecoffre/"
|
|
log " - IHM Client: http://localhost/"
|
|
|
|
# Boucle de surveillance
|
|
log "Démarrage de la surveillance des services..."
|
|
while true; do
|
|
sleep 60
|
|
|
|
# Vérification périodique des services
|
|
for service in bitcoin-signet sdk_relay lecoffre-back; do
|
|
if ! docker-compose ps $service | grep -q "healthy\|Up"; then
|
|
log "⚠️ Service $service en problème, redémarrage..."
|
|
docker-compose restart $service
|
|
fi
|
|
done
|
|
done
|