149 lines
5.5 KiB
Bash
Executable File
149 lines
5.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Script pour mettre à jour les fichiers de configuration
|
|
# à partir des variables définies dans /home/debian/4NK_env/confs/.env
|
|
|
|
set -e
|
|
|
|
# Couleurs pour les messages
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# Fonction pour afficher les messages
|
|
log_info() {
|
|
echo -e "${BLUE}[INFO]${NC} $1"
|
|
}
|
|
|
|
log_success() {
|
|
echo -e "${GREEN}[SUCCESS]${NC} $1"
|
|
}
|
|
|
|
log_warning() {
|
|
echo -e "${YELLOW}[WARNING]${NC} $1"
|
|
}
|
|
|
|
log_error() {
|
|
echo -e "${RED}[ERROR]${NC} $1"
|
|
}
|
|
|
|
# Vérifier que le fichier .env existe
|
|
ENV_FILE="/home/debian/4NK_env/env/.env"
|
|
if [[ ! -f "$ENV_FILE" ]]; then
|
|
log_error "Le fichier $ENV_FILE n'existe pas!"
|
|
log_error "Veuillez créer ce fichier avec les variables nécessaires avant d'exécuter le script."
|
|
exit 1
|
|
fi
|
|
|
|
# Charger les variables d'environnement
|
|
log_info "Chargement des variables depuis $ENV_FILE"
|
|
source "$ENV_FILE"
|
|
|
|
# Fonction pour remplacer une valeur dans un fichier
|
|
replace_in_file() {
|
|
local file="$1"
|
|
local pattern="$2"
|
|
local replacement="$3"
|
|
local description="$4"
|
|
|
|
if [[ -f "$file" ]]; then
|
|
# Utiliser sed pour remplacer la ligne
|
|
sed -i "s|$pattern|$replacement|g" "$file"
|
|
log_success "Mis à jour: $description dans $(basename "$file")"
|
|
else
|
|
log_warning "Fichier non trouvé: $file"
|
|
fi
|
|
}
|
|
|
|
# Fonction pour ajouter ou modifier une ligne dans un fichier
|
|
set_config_value() {
|
|
local file="$1"
|
|
local key="$2"
|
|
local value="$3"
|
|
local description="$4"
|
|
|
|
if [[ -f "$file" ]]; then
|
|
# Vérifier si la clé existe déjà
|
|
if grep -q "^$key=" "$file" 2>/dev/null || grep -q "^$key " "$file" 2>/dev/null; then
|
|
# Remplacer la ligne existante
|
|
sed -i "/^$key[ =]/c\\$key=$value" "$file"
|
|
else
|
|
# Ajouter la ligne à la fin du fichier
|
|
echo "$key=$value" >> "$file"
|
|
fi
|
|
log_success "Mis à jour: $description dans $(basename "$file")"
|
|
else
|
|
log_warning "Fichier non trouvé: $file"
|
|
fi
|
|
}
|
|
|
|
log_info "Début de la mise à jour des configurations..."
|
|
|
|
# 1. Configuration Bitcoin
|
|
log_info "Mise à jour de bitcoin.conf..."
|
|
BITCOIN_CONF="/home/debian/4NK_env/confs/bitcoin/bitcoin.conf"
|
|
|
|
replace_in_file "$BITCOIN_CONF" "datadir=.*" "datadir=$BITCOIN_DATA_DIR" "datadir"
|
|
replace_in_file "$BITCOIN_CONF" "zmqpubrawtx=.*" "zmqpubrawtx=tcp://$BITCOIN_BIND:$BITCOIN_ZMQPUBRAWTX_PORT" "zmqpubrawtx"
|
|
replace_in_file "$BITCOIN_CONF" "zmqpubhashblock=.*" "zmqpubhashblock=tcp://$BITCOIN_BIND:$BITCOIN_ZMQPBUBHASHBLOCK_PORT" "zmqpubhashblock"
|
|
replace_in_file "$BITCOIN_CONF" "bind=.*" "bind=$BITCOIN_BIND:$BITCOIN_SIGNET_P2P_PORT" "bind"
|
|
replace_in_file "$BITCOIN_CONF" "rpcbind=.*" "rpcbind=$BITCOIN_BIND:$BITCOIN_SIGNET_RPC_PORT" "rpcbind"
|
|
|
|
# 2. Configuration Blindbit Oracle
|
|
log_info "Mise à jour de blindbit.toml..."
|
|
BLINDBIT_CONF="/home/debian/4NK_env/confs/blindbit-oracle/blindbit.toml"
|
|
|
|
replace_in_file "$BLINDBIT_CONF" 'host = ".*"' 'host = "0.0.0.0:'$BLINDBIT_PORT'"' "host"
|
|
replace_in_file "$BLINDBIT_CONF" 'rpc_endpoint = ".*"' 'rpc_endpoint = "http://'$BITCOIN_DOCKER_HOST:$BITCOIN_SIGNET_RPC_PORT'"' "rpc_endpoint"
|
|
replace_in_file "$BLINDBIT_CONF" 'cookie_path = ".*"' 'cookie_path = "'$BITCOIN_DATA_DIR'/signet/.cookie"' "cookie_path"
|
|
|
|
# 3. Configuration Grafana
|
|
log_info "Mise à jour de grafana.ini..."
|
|
GRAFANA_CONF="/home/debian/4NK_env/confs/grafana/grafana.ini"
|
|
|
|
replace_in_file "$GRAFANA_CONF" "root_url = .*" "root_url = $ROOT_URL/grafana/" "root_url"
|
|
|
|
# 4. Configuration Loki
|
|
log_info "Mise à jour de loki-config.yaml..."
|
|
LOKI_CONF="/home/debian/4NK_env/confs/loki/loki-config.yaml"
|
|
|
|
replace_in_file "$LOKI_CONF" "http_listen_port:.*" "http_listen_port: $LOKI_HTTP_LISTEN_PORT" "http_listen_port"
|
|
|
|
# 5. Configuration Promtail
|
|
log_info "Mise à jour de promtail.yml..."
|
|
PROMTAIL_CONF="/home/debian/4NK_env/confs/promtail/promtail.yml"
|
|
|
|
replace_in_file "$PROMTAIL_CONF" "url: http://.*" "url: http://$LOKI_DOCKER_HOST:$LOKI_HTTP_LISTEN_PORT/loki/api/v1/push" "url"
|
|
replace_in_file "$PROMTAIL_CONF" "/home/debian/4NK_env/" "$ROOT_DIR/" "__path__"
|
|
|
|
# 6. Configuration SDK Relay
|
|
log_info "Mise à jour de sdk_relay.conf..."
|
|
RELAY_CONF="/home/debian/4NK_env/confs/relay/sdk_relay.conf"
|
|
|
|
set_config_value "$RELAY_CONF" "core_url" "http://$BITCOIN_DOCKER_HOST:$BITCOIN_SIGNET_RPC_PORT" "core_url"
|
|
set_config_value "$RELAY_CONF" "ws_url" "0.0.0.0:$RELAY_PORT" "ws_url"
|
|
set_config_value "$RELAY_CONF" "wallet_name" "$BITCOIN_WALLET_NAME" "wallet_name"
|
|
set_config_value "$RELAY_CONF" "blindbit_url" "http://$BLINDBIT_DOCKER_NAME:$BLINDBIT_PORT" "blindbit_url"
|
|
set_config_value "$RELAY_CONF" "zmq_url" "tcp://$BITCOIN_BIND:$BITCOIN_ZMQPBUBHASHBLOCK_PORT" "zmq_url"
|
|
set_config_value "$RELAY_CONF" "storage" "https://dev4.4nkweb.com/storage" "storage"
|
|
set_config_value "$RELAY_CONF" "data_dir" "$ROOT_DIR/data" "data_dir"
|
|
set_config_value "$RELAY_CONF" "bitcoin_data_dir" "$BITCOIN_DATA_DIR" "bitcoin_data_dir"
|
|
set_config_value "$RELAY_CONF" "bootstrap_url" "wss://$BOOTSTRAP_HOST/ws" "bootstrap_url"
|
|
|
|
log_success "Mise à jour des configurations terminée!"
|
|
log_info "Seuls les fichiers de configuration principaux ont été modifiés"
|
|
log_warning "Vérifiez les configurations avant de redémarrer les services"
|
|
|
|
# Afficher un résumé des fichiers modifiés
|
|
echo ""
|
|
log_info "Résumé des fichiers modifiés:"
|
|
echo " - $BITCOIN_CONF"
|
|
echo " - $BLINDBIT_CONF"
|
|
echo " - $GRAFANA_CONF"
|
|
echo " - $LOKI_CONF"
|
|
echo " - $PROMTAIL_CONF"
|
|
echo " - $RELAY_CONF"
|
|
echo ""
|
|
log_info "Les fichiers .env existants n'ont PAS été modifiés pour préserver la sécurité" |