199 lines
7.4 KiB
Bash
Executable File
199 lines
7.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# Charge les variables depuis /home/debian/4NK_env/confs/.env si présent
|
|
ENV_FILE="/home/debian/4NK_env/confs/.env"
|
|
ROOT_DIR_DEFAULT="/home/debian/4NK_env"
|
|
|
|
safe_source() {
|
|
# Source un fichier en désactivant nounset pour éviter les erreurs variables non liées
|
|
local f="$1"
|
|
if [ -f "$f" ]; then
|
|
set +u
|
|
# shellcheck disable=SC1090
|
|
. "$f"
|
|
set -u
|
|
fi
|
|
}
|
|
|
|
if [ -f "$ENV_FILE" ]; then
|
|
set -a
|
|
safe_source "$ENV_FILE"
|
|
set +a
|
|
else
|
|
echo "[WARN] $ENV_FILE introuvable; tentative de chargement des env/<service>/.env"
|
|
for f in \
|
|
/home/debian/4NK_env/env/lecoffre_node/.env \
|
|
/home/debian/4NK_env/env/sdk_relay/.env \
|
|
/home/debian/4NK_env/env/sdk_storage/.env \
|
|
/home/debian/4NK_env/env/ihm_client/.env \
|
|
/home/debian/4NK_env/env/lecoffre-front/.env \
|
|
/home/debian/4NK_env/env/monitoring/.env; do
|
|
set -a
|
|
safe_source "$f"
|
|
set +a
|
|
done
|
|
fi
|
|
|
|
ROOT_DIR="${ROOT_DIR:-$ROOT_DIR_DEFAULT}"
|
|
ROOT_URL="${ROOT_URL:-https://dev4.4nkweb.com}"
|
|
BOOTSTRAP_HOST="${BOOTSTRAP_HOST:-dev3.4nkweb.com}"
|
|
|
|
# helper: test presence of all vars
|
|
have_vars() {
|
|
for name in "$@"; do
|
|
eval "val=\${$name-}"
|
|
if [ -z "${val}" ]; then
|
|
return 1
|
|
fi
|
|
done
|
|
return 0
|
|
}
|
|
|
|
# 1) bitcoin.conf
|
|
btc_conf="$ROOT_DIR/confs/bitcoin/bitcoin.conf"
|
|
if [ -f "$btc_conf" ]; then
|
|
if have_vars BITCOIN_DATA_DIR BITCOIN_BIND BITCOIN_ZMQPUBRAWTX_PORT BITCOIN_ZMQPBUBHASHBLOCK_PORT BITCOIN_SIGNET_P2P_PORT BITCOIN_SIGNET_RPC_PORT; then
|
|
sed -i \
|
|
-e "s|^datadir=.*$|datadir=${BITCOIN_DATA_DIR}|" \
|
|
-e "s|^zmqpubrawtx=.*$|zmqpubrawtx=tcp://${BITCOIN_BIND}:${BITCOIN_ZMQPUBRAWTX_PORT}|" \
|
|
-e "s|^zmqpubhashblock=.*$|zmqpubhashblock=tcp://${BITCOIN_BIND}:${BITCOIN_ZMQPBUBHASHBLOCK_PORT}|" \
|
|
-e "s|^bind=.*$|bind=${BITCOIN_BIND}:${BITCOIN_SIGNET_P2P_PORT}|" \
|
|
-e "s|^rpcbind=.*$|rpcbind=${BITCOIN_BIND}:${BITCOIN_SIGNET_RPC_PORT}|" \
|
|
"$btc_conf"
|
|
echo "[OK] bitcoin.conf mis à jour"
|
|
else
|
|
echo "[SKIP] bitcoin.conf (variables manquantes)"
|
|
fi
|
|
fi
|
|
|
|
# 2) blindbit.toml
|
|
bb_conf="$ROOT_DIR/confs/blindbit-oracle/blindbit.toml"
|
|
if [ -f "$bb_conf" ]; then
|
|
if have_vars BLINDBIT_PORT BITCOIN_DOCKER_HOST BITCOIN_SIGNET_RPC_PORT BITCOIN_DATA_DIR; then
|
|
sed -i \
|
|
-e "s|^host\s*=.*$|host = \"0.0.0.0:${BLINDBIT_PORT}\"|" \
|
|
-e "s|^rpc_endpoint\s*=.*$|rpc_endpoint = \"http://${BITCOIN_DOCKER_HOST}:${BITCOIN_SIGNET_RPC_PORT}\"|" \
|
|
-e "s|^cookie_path\s*=.*$|cookie_path = \"${BITCOIN_DATA_DIR}/signet/.cookie\"|" \
|
|
"$bb_conf"
|
|
echo "[OK] blindbit.toml mis à jour"
|
|
else
|
|
echo "[SKIP] blindbit.toml (variables manquantes)"
|
|
fi
|
|
fi
|
|
|
|
# 3) grafana.ini
|
|
gf_conf="$ROOT_DIR/confs/grafana/grafana.ini"
|
|
if [ -f "$gf_conf" ]; then
|
|
sed -i \
|
|
-e "s|^\s*root_url\s*=.*$|root_url = ${ROOT_URL}/grafana/|" \
|
|
"$gf_conf"
|
|
echo "[OK] grafana.ini mis à jour"
|
|
fi
|
|
|
|
# 4) loki-config.yaml
|
|
loki_conf="$ROOT_DIR/confs/loki/loki-config.yaml"
|
|
if [ -f "$loki_conf" ]; then
|
|
if have_vars LOKI_HTTP_LISTEN_PORT; then
|
|
sed -i \
|
|
-e "s|^\s*http_listen_port:.*$|http_listen_port: ${LOKI_HTTP_LISTEN_PORT}|" \
|
|
"$loki_conf"
|
|
echo "[OK] loki-config.yaml mis à jour"
|
|
else
|
|
echo "[SKIP] loki-config.yaml (variables manquantes)"
|
|
fi
|
|
fi
|
|
|
|
# 5) promtail.yml
|
|
pt_conf="$ROOT_DIR/confs/promtail/promtail.yml"
|
|
if [ -f "$pt_conf" ]; then
|
|
if have_vars LOKI_DOCKER_HOST LOKI_HTTP_LISTEN_PORT; then
|
|
sed -i \
|
|
-e "s|url: .*|url: http://${LOKI_DOCKER_HOST}:${LOKI_HTTP_LISTEN_PORT}/loki/api/v1/push|" \
|
|
"$pt_conf"
|
|
fi
|
|
sed -i \
|
|
-e "s|/home/debian/4NK_env/|${ROOT_DIR}/|g" \
|
|
"$pt_conf"
|
|
echo "[OK] promtail.yml mis à jour"
|
|
fi
|
|
|
|
# 6) sdk_relay.conf
|
|
relay_conf="$ROOT_DIR/confs/relay/sdk_relay.conf"
|
|
if [ -f "$relay_conf" ]; then
|
|
if have_vars BITCOIN_DOCKER_HOST BITCOIN_SIGNET_RPC_PORT RELAY_PORT BITCOIN_WALLET_NAME BLINDBIT_DOCKER_NAME BLINDBIT_PORT BITCOIN_BIND BITCOIN_ZMQPBUBHASHBLOCK_PORT BITCOIN_DATA_DIR BOOTSTRAP_HOST; then
|
|
sed -i \
|
|
-e "s|^core_url=.*$|core_url=http://${BITCOIN_DOCKER_HOST}:${BITCOIN_SIGNET_RPC_PORT}|" \
|
|
-e "s|^ws_url=.*$|ws_url=0.0.0.0:${RELAY_PORT}|" \
|
|
-e "s|^wallet_name=.*$|wallet_name=${BITCOIN_WALLET_NAME}|" \
|
|
-e "s|^blindbit_url=.*$|blindbit_url=http://${BLINDBIT_DOCKER_NAME}:${BLINDBIT_PORT}|" \
|
|
-e "s|^zmq_url=.*$|zmq_url=tcp://${BITCOIN_BIND}:${BITCOIN_ZMQPBUBHASHBLOCK_PORT}|" \
|
|
-e "s|^storage=.*$|storage=https://dev4.4nkweb.com/storage|" \
|
|
-e "s|^data_dir=.*$|data_dir=${ROOT_DIR}/data|" \
|
|
-e "s|^bitcoin_data_dir=.*$|bitcoin_data_dir=${BITCOIN_DATA_DIR}|" \
|
|
-e "s|^bootstrap_url=.*$|bootstrap_url=wss://${BOOTSTRAP_HOST}/ws|" \
|
|
"$relay_conf"
|
|
echo "[OK] sdk_relay.conf mis à jour"
|
|
else
|
|
echo "[SKIP] sdk_relay.conf (variables manquantes)"
|
|
fi
|
|
fi
|
|
|
|
# 7) env/grafana/.env
|
|
gf_env="$ROOT_DIR/env/grafana/.env"
|
|
if [ -f "$gf_env" ]; then
|
|
sed -i \
|
|
-e "s|^GF_SERVER_ROOT_URL=.*$|GF_SERVER_ROOT_URL=${ROOT_URL}/grafana/|" \
|
|
"$gf_env"
|
|
echo "[OK] env grafana mis à jour"
|
|
fi
|
|
|
|
# 8) env/ihm_client/.env
|
|
ihm_env="$ROOT_DIR/env/ihm_client/.env"
|
|
if [ -f "$ihm_env" ]; then
|
|
sed -i \
|
|
-e "s|^NEXT_PUBLIC_4NK_IFRAME_URL=.*$|NEXT_PUBLIC_4NK_IFRAME_URL=${ROOT_URL}/|" \
|
|
-e "s|^VITE_JWT_SECRET_KEY=.*$|VITE_JWT_SECRET_KEY=${VITE_JWT_SECRET_KEY:-FAKE-DATA-IA-CHANGE-ME}|" \
|
|
-e "s|^VITE_API_BASE_URL=.*$|VITE_API_BASE_URL=${ROOT_URL}/lecoffre/api|" \
|
|
-e "s|^VITE_WS_URL=.*$|VITE_WS_URL=wss://${BOOTSTRAP_HOST}/ws/|" \
|
|
-e "s|^VITE_SIGNER_URL=.*$|VITE_SIGNER_URL=https://${BOOTSTRAP_HOST}/signer|" \
|
|
-e "s|^VITE_BOOTSTRAPURL=.*$|VITE_BOOTSTRAPURL=wss://${BOOTSTRAP_HOST}/ws/|" \
|
|
"$ihm_env"
|
|
# RELAY_URLS nécessite ROOT_HOST; fallback best-effort
|
|
relay_urls="wss://${BOOTSTRAP_HOST}/ws/"
|
|
if [ -n "${ROOT_HOST:-}" ]; then relay_urls="wss://${ROOT_HOST}/ws/,${relay_urls}"; fi
|
|
sed -i -e "s|^RELAY_URLS=.*$|RELAY_URLS=${relay_urls}|" "$ihm_env"
|
|
echo "[OK] env ihm_client mis à jour"
|
|
fi
|
|
|
|
# 9) env/lecoffre-front/.env
|
|
front_env="$ROOT_DIR/env/lecoffre-front/.env"
|
|
if [ -f "$front_env" ]; then
|
|
sed -i \
|
|
-e "s|^SIGNER_API_KEY=.*$|SIGNER_API_KEY=${VITE_BOOTSTRAPURL:-}|" \
|
|
-e "s|^VITE_JWT_SECRET_KEY=.*$|VITE_JWT_SECRET_KEY=${VITE_JWT_SECRET_KEY:-FAKE-DATA-IA-CHANGE-ME}|" \
|
|
-e "s|^NEXT_PUBLIC_4NK_URL=.*$|NEXT_PUBLIC_4NK_URL=${IHM_CLIENT_URL:-${ROOT_URL}}|" \
|
|
-e "s|^NEXT_PUBLIC_FRONT_APP_HOST=.*$|NEXT_PUBLIC_FRONT_APP_HOST=https://${LECOFFRE_FRONT_URL:-dev4.4nkweb.com}/lecoffre|" \
|
|
-e "s|^NEXT_PUBLIC_BACK_API_HOST=.*$|NEXT_PUBLIC_BACK_API_HOST=${LECOFFRE_BACK_URL:-dev3.4nkweb.com}|" \
|
|
-e "s|^NEXT_PUBLIC_4NK_IFRAME_URL=.*$|NEXT_PUBLIC_4NK_IFRAME_URL=${ROOT_URL}|" \
|
|
-e "s|^NEXT_PUBLIC_API_URL=.*$|NEXT_PUBLIC_API_URL=https://${LECOFFRE_BACK_URL:-dev3.4nkweb.com}/api|" \
|
|
-e "s|^NEXT_PUBLIC_DEFAULT_STORAGE_URLS=.*$|NEXT_PUBLIC_DEFAULT_STORAGE_URLS=${ROOT_URL}/storage|" \
|
|
"$front_env"
|
|
echo "[OK] env lecoffre-front mis à jour"
|
|
fi
|
|
|
|
# 10) env/sdk_storage/.env
|
|
storage_env="$ROOT_DIR/env/sdk_storage/.env"
|
|
if [ -f "$storage_env" ]; then
|
|
sed -i \
|
|
-e "s|^DOMAIN=.*$|DOMAIN=${ROOT_HOST:-dev4.4nkweb.com}|" \
|
|
-e "s|^STORAGE_URL=.*$|STORAGE_URL=http://${STORAGE_DOCKER_HOST:-sdk_storage}:${STORAGE_PORT:-8080}|" \
|
|
-e "s|^STORAGE_PORT=.*$|STORAGE_PORT=${STORAGE_PORT:-8080}|" \
|
|
-e "s|^STORAGE_DATA_DIR=.*$|STORAGE_DATA_DIR=${ROOT_DIR}/data/storage|" \
|
|
-e "s|^VITE_STORAGE_URL=.*$|VITE_STORAGE_URL=${ROOT_URL}/storage|" \
|
|
"$storage_env"
|
|
echo "[OK] env sdk_storage mis à jour"
|
|
fi
|
|
|
|
echo "[DONE] Configuration appliquée (best-effort)"
|