diff --git a/__pycache__/api_server.cpython-313.pyc b/__pycache__/api_server.cpython-313.pyc index e92ca22..537dc46 100644 Binary files a/__pycache__/api_server.cpython-313.pyc and b/__pycache__/api_server.cpython-313.pyc differ diff --git a/api_server.py b/api_server.py index c012894..bb0475f 100644 --- a/api_server.py +++ b/api_server.py @@ -140,41 +140,36 @@ class EnvProcessor: self.variables = self._load_env_file(env_file) def _load_env_file(self, env_file: Path) -> Dict[str, str]: - """Charge le fichier .env principal et le fichier .env.secrets""" + """Charge les fichiers d'environnement dans l'ordre correct pour le templating""" variables = {} - # Charger le fichier .env principal - if env_file.exists(): - try: - with open(env_file, 'r', encoding='utf-8') as f: - for line in f: - line = line.strip() - if line and not line.startswith('#') and '=' in line: - key, value = line.split('=', 1) - variables[key.strip()] = value.strip() - logger.info(f"Variables chargées depuis {env_file}: {len(variables)} variables") - except Exception as e: - logger.error(f"Erreur lors du chargement du fichier .env: {e}") + # Ordre de chargement des fichiers d'environnement + env_files = [ + '.env.secrets', # 1. Secrets de base + '.env', # 2. Variables de configuration (peut utiliser les secrets) + '.env.auto', # 3. Variables générées automatiquement (peut utiliser les précédentes) + '.env.post' # 4. Variables finales (peut utiliser toutes les précédentes) + ] - # Charger le fichier .env.secrets (si il existe) - env_secrets_file = env_file.parent / '.env.secrets' - if env_secrets_file.exists(): - try: - secrets_count = 0 - with open(env_secrets_file, 'r', encoding='utf-8') as f: - for line in f: - line = line.strip() - if line and not line.startswith('#') and '=' in line: - key, value = line.split('=', 1) - variables[key.strip()] = value.strip() - secrets_count += 1 - logger.info(f"Secrets chargés depuis {env_secrets_file}: {secrets_count} variables") - except Exception as e: - logger.error(f"Erreur lors du chargement du fichier .env.secrets: {e}") - - # Note: Les fichiers .env des sous-répertoires ne sont PAS chargés - # car ils sont des configurations spécifiques aux services, pas des variables globales + for env_filename in env_files: + env_file_path = env_file.parent / env_filename + if env_file_path.exists(): + try: + file_variables = 0 + with open(env_file_path, 'r', encoding='utf-8') as f: + for line in f: + line = line.strip() + if line and not line.startswith('#') and '=' in line: + key, value = line.split('=', 1) + variables[key.strip()] = value.strip() + file_variables += 1 + logger.info(f"Variables chargées depuis {env_file_path}: {file_variables} variables") + except Exception as e: + logger.error(f"Erreur lors du chargement du fichier {env_file_path}: {e}") + else: + logger.debug(f"Fichier {env_file_path} non trouvé, ignoré") + logger.info(f"Total des variables d'environnement chargées: {len(variables)} variables") return variables def _resolve_variable(self, var_name: str, visited: set = None) -> str: diff --git a/docs/environment-variables.md b/docs/environment-variables.md index 6dc263b..6033134 100644 --- a/docs/environment-variables.md +++ b/docs/environment-variables.md @@ -12,9 +12,11 @@ L'API Vault 4NK intègre un système avancé de traitement des variables d'envir - **Protection contre les boucles infinies** : Détection automatique des dépendances circulaires - **Traitement en mémoire** : Les fichiers originaux ne sont jamais modifiés -### Sources de variables -- **Fichier `.env` principal** : `storage//.env` -- **Fichier `.env.secrets`** : `storage//.env.secrets` (mots de passe, clés API, etc.) +### Sources de variables (ordre de chargement) +1. **Fichier `.env.secrets`** : `storage//.env.secrets` (secrets de base) +2. **Fichier `.env`** : `storage//.env` (variables de configuration, peut utiliser les secrets) +3. **Fichier `.env.auto`** : `storage//.env.auto` (variables générées automatiquement, peut utiliser les précédentes) +4. **Fichier `.env.post`** : `storage//.env.post` (variables finales, peut utiliser toutes les précédentes) - **Variables système** : Non utilisées (isolation complète) - **Fichiers de sous-répertoires** : Non chargés (configurations spécifiques aux services) @@ -50,12 +52,16 @@ TOR_LOG_DIR → /home/debian/4NK_env/logs/tor ## 🔄 Processus de résolution -### 1. Chargement des variables +### 1. Chargement des variables (ordre séquentiel) ```python -# Chargement du fichier .env principal et .env.secrets -env_file = STORAGE_ROOT / env / '.env' -env_secrets_file = STORAGE_ROOT / env / '.env.secrets' -variables = load_env_file(env_file) # Charge les deux fichiers +# Chargement des fichiers d'environnement dans l'ordre correct +env_files = ['.env.secrets', '.env', '.env.auto', '.env.post'] +variables = {} + +for env_filename in env_files: + env_file_path = STORAGE_ROOT / env / env_filename + if env_file_path.exists(): + variables.update(load_env_file(env_file_path)) ``` ### 2. Résolution récursive @@ -264,8 +270,8 @@ logger.warning(f"Dépendance circulaire détectée pour {var_name}") ### Messages de debug ``` INFO: Variables chargées depuis storage/dev/.env: 15 variables -INFO: Variable résolue: HOST = dev4.4nkweb.com -INFO: Variable résolue: ROOT_URL = https://dev4.4nkweb.com +INFO: Variable résolue: HOST = xxx.com +INFO: Variable résolue: ROOT_URL = https://xxx.com WARNING: Variable non trouvée: UNDEFINED_VAR ``` diff --git a/storage/dev/.env b/storage/dev/.env index cbe54ff..08d5754 100644 --- a/storage/dev/.env +++ b/storage/dev/.env @@ -1,151 +1,140 @@ # Modifiez ces valeurs selon votre environnement -API_PASS=testpass ENV_NAME=DEV DOMAIN=4nkweb.com HOST=dev4.$DOMAIN +BACK_API_HOST=dev3.$DOMAIN +BOOSTRAP_NETWORK_HOST=dev3.$DOMAIN DOCKER_LOG_LEVEL=info COMPOSE_LOG_LEVEL=WARNING NODE_OPTIONS=--max-old-space-size=4096 NODE_ENV=production -DOCKER_GLOBAL=project/lecoffre/lecoffre_node - -# Répertoires ROOT_DIR=/home/debian/4NK_env -ROOT_DIR_DATA=$ROOT_DIR/$DOCKER_GLOBAL/data -BITCOIN_DATA_DIR=$ROOT_DIR_DATA/bitcoin -BITCOIN_COOKIE_PATH=$BITCOIN_DATA_DIR/signet/.cookie -SIGNER_DATA_DIR=$ROOT_DIR_DATA/signer -SDK_RELAY_DATA_DIR=$ROOT_DIR_DATA/sdk_relay -SDK_STORAGE_DATA_DIR=$ROOT_DIR_DATA/sdk_storage -SDK_TOR_DATA_DIR=$ROOT_DIR_DATA/tor -BLINDBIT_DATA_DIR=$ROOT_DIR_DATA/blindbit-oracle - -ROOT_DIR_LOGS=$ROOT_DIR/$DOCKER_GLOBAL/logs -BITCOIN_LOGS_DIR=$ROOT_DIR_LOGS/bitcoin -BLINDBIT_LOGS_DIR=$ROOT_DIR_LOGS/blindbit-oracle -IHM_CLIENT_LOGS_DIR=$ROOT_DIR_LOGS/ihm_client -LECOFFRE_FRONT_LOGS_DIR=$ROOT_DIR_LOGS/lecoffre-front -LECOFFRE_BACK_LOGS_DIR=$ROOT_DIR_LOGS/lecoffre-back-mini -MINER_LOGS_DIR=$ROOT_DIR_LOGS/miner +DOCKER_GLOBAL=$ROOT_DIR/project/lecoffre/lecoffre_node NGINX_LOGS_DIR=$ROOT_DIR_LOGS/nginx -SDK_RELAY_LOGS_DIR=$ROOT_DIR_LOGS/sdk_relay -SDK_STORAGE_LOGS_DIR=$ROOT_DIR_LOGS/sdk_storage -TOR_LOGS_DIR=$ROOT_DIR_LOGS/tor SUPERVISOR_LOGS_DIR=$ROOT_DIR_LOGS/supervisor - -ROOT_DIR_CONFS=$ROOT_DIR/$DOCKER_GLOBAL/confs -PROMTAIL_CONF_DIR=$ROOT_DIR_CONFS/promtail -GRAFANA_CONF_DIR=$ROOT_DIR_CONFS/grafana -NGINX_CONF_DIR=$ROOT_DIR_CONFS/nginx -BITCOIN_CONF_DIR=$ROOT_DIR_CONFS/bitcoin LOGROTATE_CONF_DIR=$ROOT_DIR_CONFS/logrotate - -ROOT_DIR_BACKUPS=$ROOT_DIR/$DOCKER_GLOBAL/backups -ROOT_DIR_RUN=$ROOT_DIR/$DOCKER_GLOBAL/run -LECOFFRE_NODE_SCRIPTS_DIR=$ROOT_DIR/$DOCKER_GLOBAL/scripts - CERT_PATH=/etc/letsencrypt/live/$HOST -# Noms internes -TOR_DOCKER_HOST=tor-proxy -BITCOIN_DOCKER_HOST=bitcoin-signet -BLINDBIT_DOCKER_NAME=blindbit-oracle -STORAGE_DOCKER_HOST=storage -LOKI_DOCKER_HOST=loki -SDK_RELAY_DOCKER_HOST=sdk_relay -LECOFFRE_FRONT_DOCKER_HOST=lecoffre-front +## Internes -# Ports des services -TOR_PORT=9050 -BITCOIN_SIGNET_P2P_PORT=38333 -BITCOIN_SIGNET_RPC_PORT=38332 -BITCOIN_ZMQPUBRAWTX_PORT=29001 -BITCOIN_ZMQPBUBHASHBLOCK_PORT=29000 -BLINDBIT_PORT=8000 -SDK_RELAY_PORT=8080 -STORAGE_PORT=8081 -SIGNER_PORT=9090 -LECOFFRE_FRONT_PORT=3000 -GRAFANA_PORT=3001 -LOKI_PORT=3100 -STATUS_PORT=3005 -STATUS_API_PORT=3006 -PROMTAIL_PORT=8090 -IHM_CLIENT_PORT=3003 -CERTIFICATOR_PORT=8082 -REDIS_PORT=6379 +export SERVICES=( + "REDIS" + "POSTGRESQL" + "LOKI" + "PROMTAIL" + "GRAFANA" + "4NK_VAULT" + "TOR" + "BITCOIN" + "BLINDBIT_ORACLE" + "SDK_RELAY" + "SDK_STORAGE" + "IHM_CLIENT" + "4NK_CERTIFICATOR" + "4NK_MINER" + "LECOFFRE_FRONT" + "4NK_WEB_STATUS" +) -# Routes -URL_ROUTE_SIGNER=/signer -URL_ROUTE_STORAGE=/storage -URL_ROUTE_IHM_CLIENT=/ -URL_ROUTE_LECOFFRE_FRONT=/lecoffre -URL_ROUTE_LECOFFRE_FRONT_HMR=/lecoffre-hmr -URL_ROUTE_LECOFFRE_BACK=/api -POSTGRESQL_USER=postgres -POSTGRESQL_PASSWORD=password -URL_ROUTE_RELAY=/relay -URL_ROUTE_GRAFAN=/grafana -URL_ROUTE_STATUS=/status -URL_ROUTE_STATUS_API=/status/api -URL_ROUTE_BLINDBIT=/blindbit -URL_ROUTE_NEXT=/_next +REDIS=redis +REDIS_IMAGE=redis:latest +REDIS_PORT=6379:6379 + +POSTGRESQL=postgresql +POSTGRESQL_IMAGE=postgres:latest +POSTGRESQL_PORT=5432:5432 + +GRAFANA=grafana +GRAFANA_IMAGE=grafana/grafana:latest +GRAFANA_PORT=3001:3001 + +LOKI=loki +LOKI_IMAGE=grafana/loki:latest +LOKI_PORT=3100:3100 + +PROMTAIL=promtail +PROMTAIL_IMAGE=grafana/promtail:latest +PROMTAIL_PORT=8090:8090 + +4NK_VAULT=4NK_vault +4NK_VAULT_IMAGE=git.4nkweb.com/4nk/4NK_vault:ext + +TOR=tor-proxy +TOR_IMAGE=btcpayserver/tor:0.4.8.10 +TOR_PORT=9050:9050 + +BITCOIN=bitcoin +BITCOIN_IMAGE=lscr.io/linuxserver/bitcoin-knots:latest +BITCOIN_PORT=38332:38332 +BITCOIN_EXTERNAL_PORT=38333:38333 +BITCOIN_PORT2=29001:29001 +BITCOIN_PORT3=29000:29000 + +BLINDBIT_ORACLE=blindbit-oracle +BLINDBIT_ORACLE_IMAGE=git.4nkweb.com/4nk/blindbit-oracle:fixed-source +BLINDBIT_ORACLE_PORT=8000:8000 + +SDK_RELAY=sdk_relay +SDK_RELAY_IMAGE=git.4nkweb.com/4nk/sdk_relay:ext +SDK_RELAY_PORT=8080:8080 + +SDK_STORAGE=sdk_storage +SDK_STORAGE_IMAGE=git.4nkweb.com/4nk/sdk_storage:ext +SDK_STORAGE_PORT=8081:8081 + +IHM_CLIENT=ihm_client +IHM_CLIENT_IMAGE=git.4nkweb.com/4nk/ihm_client:ext +IHM_CLIENT_PORT=3003:3003 + +4NK_CERTIFICATOR=4NK_certificator +4NK_CERTIFICATOR_IMAGE=git.4nkweb.com/4nk/4NK_certificator:ext +4NK_CERTIFICATOR_PORT=8082:8082 + +4NK_MINER=4NK_miner +4NK_MINER_IMAGE=git.4nkweb.com/4nk/4NK_miner:ext +4NK_MINER_PORT=8083:8083 + +LECOFFRE_FRONT=lecoffre-front +LECOFFRE_FRONT_IMAGE=git.4nkweb.com/4nk/lecoffre-front:ext +LECOFFRE_FRONT_PORT=3000:3000 + +4NK_WEB_STATUS=4NK_web_status +4NK_STATUS_IMAGE=git.4nkweb.com/4nk/4NK_web_status:ext +4NK_WEB_STATUS_PORT=3006:3006 +4NK_WEB_STATUS_EXTERNAL_PORT=3006:3006 + +## Externes + +SERVICES_EXTERNAL=( + "BOOSTRAP" + "LECOFFRE_BACK_MINI" +) + +SDK_SIGNER=sdk_signer +SDK_SIGNER_HOST=$BACK_API_HOST +SDK_SIGNER_IMAGE=git.4nkweb.com/4nk/sdk_signer:ext +SDK_SIGNER_PORT=9090:9090 +SDK_SIGNER_EXTERNAL_PORT=9090 + +LECOFFRE_BACK_MINI=lecoffre-back-mini +LECOFFRE_BACK_MINI_HOST=$BACK_API_HOST +LECOFFRE_BACK_MINI_IMAGE=git.4nkweb.com/4nk/lecoffre-back-mini:ext +LECOFFRE_BACK_MINI_PORT=3001:3001 +LECOFFRE_BACK_MINI_EXTERNAL_PORT=3001 + +BOOTSTRAP=bootstrap +BOOTSTRAP_HOST=$BOOSTRAP_NETWORK_HOST +BOOTSTRAP_EXTERNAL_PORT=3006 # URLs et domaines -ROOT_HOST=$HOST -ROOT_URL=https://$ROOT_HOST -BOOTSTRAP_HOST=dev3.$DOMAIN -LECOFFRE_BACK_HOST=dev3.$DOMAIN -LECOFFRE_FRONT_URL=https://$ROOT_HOST$URL_ROUTE_LECOFFRE_FRONT -LECOFFRE_BACK_URL=https://$LECOFFRE_BACK_HOST$URL_ROUTE_LECOFFRE_BACK -IHM_CLIENT_URL=$ROOT_URL$URL_ROUTE_IHM_CLIENT -RELAY_URL=wss://$ROOT_HOST$URL_ROUTE_RELAY -RELAY_BOOSTRAP_URL=wss://$BOOTSTRAP_HOST$URL_ROUTE_RELAY -RELAY_URLS=$RELAY_URL,$RELAY_BOOSTRAP_URL -SIGNER_URL=https://dev3.$DOMAIN$URL_ROUTE_SIGNER -STORAGE_URL=$ROOT_URL$URL_ROUTE_STORAGE -LOKI_URL=http://$LOKI_DOCKER_HOST:$LOKI_PORT -BLINDBIT_URL=http://$BLINDBIT_DOCKER_NAME:$BLINDBIT_PORT -BITCOIN_RPC_URL=http://$BITCOIN_DOCKER_HOST:$BITCOIN_SIGNET_RPC_PORT -GRAFANA_URL=$ROOT_URL$URL_ROUTE_GRAFAN -ZMQ_URL=tcp://$BITCOIN_DOCKER_HOST:$BITCOIN_ZMQPBUBHASHBLOCK_PORT -# Variables +ROOT_HOST=$HOST +ROOT_URL_INTERNAL=http:// +ROOT_URL=https://$ROOT_HOST +ROOT_URL_WS_INTERNAL=ws:// +ROOT_URL_WS=wss://$ROOT_HOST + +# Wallets + BITCOIN_WALLET_NAME=mining BITCOIN_CERTIFICATOR_NAME=certificator - -# DB -CERTIFICATOR_POSTGRESQL_CONNECT=$POSTGRESQL_USER:$POSTGRESQL_PASSWORD//certificator:@certificator_db/certificator_db -CERTIFICATOR_REDIS_CONNECT=redis://certificator_redis:$REDIS_PORT - -# Noms des services Docker -SDK_RELAY_DOCKER_NAME=sdk_relay -LECOFFRE_FRONT_DOCKER_NAME=lecoffre-front -IHM_CLIENT_DOCKER_NAME=ihm_client -SDK_STORAGE_DOCKER_NAME=sdk_storage -WATCHTOWER_DOCKER_NAME=watchtower -SIGNET_MINER_DOCKER_NAME=signet_miner -GRAFANA_DOCKER_NAME=grafana -LOKI_DOCKER_NAME=loki -PROMTAIL_DOCKER_NAME=promtail -STATUS_API_DOCKER_NAME=status-api - -# Ports externes exposés -LECOFFRE_FRONT_EXTERNAL_PORT=3004 -IHM_CLIENT_EXTERNAL_PORT=3003 -SDK_STORAGE_EXTERNAL_PORT=8081 -GRAFANA_EXTERNAL_PORT=3005 -LOKI_EXTERNAL_PORT=3100 -STATUS_API_EXTERNAL_PORT=3006 - -# Mots de passe et secrets -GRAFANA_ADMIN_PASSWORD=Fuy8ZfxQI2xdSdoB8wsGxNjyU - -# Chemins de configuration -LECOFFRE_NODE_CONFS_DIR=/home/debian/4NK_env/confs -LECOFFRE_NODE_LOGS_DIR=/home/debian/4NK_env/logs - -# Ports supplémentaires -BLINDBIT_EXTERNAL_PORT=8000 -SDK_RELAY_EXTERNAL_PORT_1=8090 -SDK_RELAY_EXTERNAL_PORT_2=8091 diff --git a/storage/dev/.env.auto b/storage/dev/.env.auto new file mode 100644 index 0000000..82c92e8 --- /dev/null +++ b/storage/dev/.env.auto @@ -0,0 +1,938 @@ +# ====== INTERNAL REDIS ====== + +REDIS_DOCKER_NAME=$REDIS +REDIS_CONFS_DIR=$DOCKER_GLOBAL/confs/$REDIS +REDIS_LOGS_DIR=$DOCKER_GLOBAL/logs/$REDIS +REDIS_RUNS_DIR=$DOCKER_GLOBAL/runs/$REDIS +REDIS_DATAS_DIR=$DOCKER_GLOBAL/datas/$REDIS +REDIS_BACKUPS_DIR=$DOCKER_GLOBAL/backups/$REDIS +REDIS_SCRIPTS_DIR=$DOCKER_GLOBAL/scripts/$REDIS +REDIS_DOCKER_WORKING_DIR=/home/$REDIS + +REDIS_DOCKER_CONFS_DIR=$DOCKER_GLOBAL/confs/$REDIS +REDIS_DOCKER_LOGS_DIR=$DOCKER_GLOBAL/logs/$REDIS +REDIS_DOCKER_RUNS_DIR=$DOCKER_GLOBAL/runs/$REDIS +REDIS_DOCKER_DATAS_DIR=$DOCKER_GLOBAL/datas/$REDIS +REDIS_DOCKER_BACKUPS_DIR=$DOCKER_GLOBAL/backups/$REDIS +REDIS_DOCKER_SCRIPTS_DIR=$DOCKER_GLOBAL/scripts/$REDIS +REDIS_DOCKER_WORKING_DIR=/home/$REDIS + +REDIS_DOCKER_WORKING_DIR_CREATE="id -u $REDIS >/dev/null 2>&1 || adduser --disabled-password --gecos '' $REDIS; chown -R $REDIS:$REDIS /home/root/.$REDIS || echo 'warn: chown partiel (fichiers bind-mount Windows)'; exec \"$@\"" +REDIS_URL_ROUTE=/$REDIS +REDIS_URL=$ROOT_URL_INTERNAL\$REDIS_DOCKER_NAME:$REDIS_DOCKER_PORT +REDIS_URL_EXTERNAL=$ROOT_URL$REDIS_URL_ROUTE +REDIS_URL_WS=$ROOT_URL_WS_INTERNAL\$REDIS_DOCKER_PORT +REDIS_URL_WS_EXTERNAL=$ROOT_URL_WS\ws + +REDIS_HEALTHCHECK=$lecoffre-front_CONFS_DIR/healthcheck_$REDIS.sh +REDIS_DOCKER_SERVICE=" + $REDIS_DOCKER_NAME: + image: $REDIS_DOCKER_IMAGE + container_name: $REDIS_DOCKER_NAME + working_dir: /$REDIS_DOCKER_NAME + ports: + - \"0.0.0.0:$REDIS_EXTERNAL_PORT\" + - \"0.0.0.0:$REDIS_PORT\" + - \"0.0.0.0:$REDIS_PORT2\" + - \"0.0.0.0:$REDIS_PORT3\" + volumes: + - $REDIS_CONFS_DIR=$REDIS_DOCKER_CONFS_DIR + - $REDIS_LOGS_DIR=$REDIS_DOCKER_LOGS_DIR + - $REDIS_RUNS_DIR=$REDIS_DOCKER_RUNS_DIR + - $REDIS_DATAS_DIR=$REDIS_DOCKER_DATAS_DIR + - $REDIS_BACKUPS_DIR=$REDIS_DOCKER_BACKUPS_DIR + - $REDIS_SCRIPTS_DIR=$REDIS_DOCKER_SCRIPTS_DIR + networks: + btcnet: + aliases: + - $REDIS_DOCKER_NAME + user: root + entrypoint: > + /bin/sh -c \"$REDIS_DOCKER_WORKING_DIR_CREATE\" + healthcheck: + test: [\"CMD\", \"sh\", \"$REDIS_HEALTHCHECK\"] + interval: 30s + timeout: 10s + retries: 50 + restart: unless-stopped" + +# ====== INTERNAL POSTGRESQL ====== + +POSTGRESQL_DOCKER_NAME=$POSTGRESQL +POSTGRESQL_CONFS_DIR=$DOCKER_GLOBAL/confs/$POSTGRESQL +POSTGRESQL_LOGS_DIR=$DOCKER_GLOBAL/logs/$POSTGRESQL +POSTGRESQL_RUNS_DIR=$DOCKER_GLOBAL/runs/$POSTGRESQL +POSTGRESQL_DATAS_DIR=$DOCKER_GLOBAL/datas/$POSTGRESQL +POSTGRESQL_BACKUPS_DIR=$DOCKER_GLOBAL/backups/$POSTGRESQL +POSTGRESQL_SCRIPTS_DIR=$DOCKER_GLOBAL/scripts/$POSTGRESQL +POSTGRESQL_DOCKER_WORKING_DIR=/home/$POSTGRESQL + +POSTGRESQL_DOCKER_CONFS_DIR=$DOCKER_GLOBAL/confs/$POSTGRESQL +POSTGRESQL_DOCKER_LOGS_DIR=$DOCKER_GLOBAL/logs/$POSTGRESQL +POSTGRESQL_DOCKER_RUNS_DIR=$DOCKER_GLOBAL/runs/$POSTGRESQL +POSTGRESQL_DOCKER_DATAS_DIR=$DOCKER_GLOBAL/datas/$POSTGRESQL +POSTGRESQL_DOCKER_BACKUPS_DIR=$DOCKER_GLOBAL/backups/$POSTGRESQL +POSTGRESQL_DOCKER_SCRIPTS_DIR=$DOCKER_GLOBAL/scripts/$POSTGRESQL +POSTGRESQL_DOCKER_WORKING_DIR=/home/$POSTGRESQL + +POSTGRESQL_DOCKER_WORKING_DIR_CREATE="id -u $POSTGRESQL >/dev/null 2>&1 || adduser --disabled-password --gecos '' $POSTGRESQL; chown -R $POSTGRESQL:$POSTGRESQL /home/root/.$POSTGRESQL || echo 'warn: chown partiel (fichiers bind-mount Windows)'; exec \"$@\"" +POSTGRESQL_URL_ROUTE=/$POSTGRESQL +POSTGRESQL_URL=$ROOT_URL_INTERNAL\$POSTGRESQL_DOCKER_NAME:$POSTGRESQL_DOCKER_PORT +POSTGRESQL_URL_EXTERNAL=$ROOT_URL$POSTGRESQL_URL_ROUTE +POSTGRESQL_URL_WS=$ROOT_URL_WS_INTERNAL\$POSTGRESQL_DOCKER_PORT +POSTGRESQL_URL_WS_EXTERNAL=$ROOT_URL_WS\ws + +POSTGRESQL_HEALTHCHECK=$lecoffre-front_CONFS_DIR/healthcheck_$POSTGRESQL.sh +POSTGRESQL_DOCKER_SERVICE=" + $POSTGRESQL_DOCKER_NAME: + image: $POSTGRESQL_DOCKER_IMAGE + container_name: $POSTGRESQL_DOCKER_NAME + working_dir: /$POSTGRESQL_DOCKER_NAME + ports: + - \"0.0.0.0:$POSTGRESQL_EXTERNAL_PORT\" + - \"0.0.0.0:$POSTGRESQL_PORT\" + - \"0.0.0.0:$POSTGRESQL_PORT2\" + - \"0.0.0.0:$POSTGRESQL_PORT3\" + volumes: + - $POSTGRESQL_CONFS_DIR=$POSTGRESQL_DOCKER_CONFS_DIR + - $POSTGRESQL_LOGS_DIR=$POSTGRESQL_DOCKER_LOGS_DIR + - $POSTGRESQL_RUNS_DIR=$POSTGRESQL_DOCKER_RUNS_DIR + - $POSTGRESQL_DATAS_DIR=$POSTGRESQL_DOCKER_DATAS_DIR + - $POSTGRESQL_BACKUPS_DIR=$POSTGRESQL_DOCKER_BACKUPS_DIR + - $POSTGRESQL_SCRIPTS_DIR=$POSTGRESQL_DOCKER_SCRIPTS_DIR + networks: + btcnet: + aliases: + - $POSTGRESQL_DOCKER_NAME + user: root + entrypoint: > + /bin/sh -c \"$POSTGRESQL_DOCKER_WORKING_DIR_CREATE\" + healthcheck: + test: [\"CMD\", \"sh\", \"$POSTGRESQL_HEALTHCHECK\"] + interval: 30s + timeout: 10s + retries: 50 + restart: unless-stopped" + +# ====== INTERNAL LOKI ====== + +LOKI_DOCKER_NAME=$LOKI +LOKI_CONFS_DIR=$DOCKER_GLOBAL/confs/$LOKI +LOKI_LOGS_DIR=$DOCKER_GLOBAL/logs/$LOKI +LOKI_RUNS_DIR=$DOCKER_GLOBAL/runs/$LOKI +LOKI_DATAS_DIR=$DOCKER_GLOBAL/datas/$LOKI +LOKI_BACKUPS_DIR=$DOCKER_GLOBAL/backups/$LOKI +LOKI_SCRIPTS_DIR=$DOCKER_GLOBAL/scripts/$LOKI +LOKI_DOCKER_WORKING_DIR=/home/$LOKI + +LOKI_DOCKER_CONFS_DIR=$DOCKER_GLOBAL/confs/$LOKI +LOKI_DOCKER_LOGS_DIR=$DOCKER_GLOBAL/logs/$LOKI +LOKI_DOCKER_RUNS_DIR=$DOCKER_GLOBAL/runs/$LOKI +LOKI_DOCKER_DATAS_DIR=$DOCKER_GLOBAL/datas/$LOKI +LOKI_DOCKER_BACKUPS_DIR=$DOCKER_GLOBAL/backups/$LOKI +LOKI_DOCKER_SCRIPTS_DIR=$DOCKER_GLOBAL/scripts/$LOKI +LOKI_DOCKER_WORKING_DIR=/home/$LOKI + +LOKI_DOCKER_WORKING_DIR_CREATE="id -u $LOKI >/dev/null 2>&1 || adduser --disabled-password --gecos '' $LOKI; chown -R $LOKI:$LOKI /home/root/.$LOKI || echo 'warn: chown partiel (fichiers bind-mount Windows)'; exec \"$@\"" +LOKI_URL_ROUTE=/$LOKI +LOKI_URL=$ROOT_URL_INTERNAL\$LOKI_DOCKER_NAME:$LOKI_DOCKER_PORT +LOKI_URL_EXTERNAL=$ROOT_URL$LOKI_URL_ROUTE +LOKI_URL_WS=$ROOT_URL_WS_INTERNAL\$LOKI_DOCKER_PORT +LOKI_URL_WS_EXTERNAL=$ROOT_URL_WS\ws + +LOKI_HEALTHCHECK=$lecoffre-front_CONFS_DIR/healthcheck_$LOKI.sh +LOKI_DOCKER_SERVICE=" + $LOKI_DOCKER_NAME: + image: $LOKI_DOCKER_IMAGE + container_name: $LOKI_DOCKER_NAME + working_dir: /$LOKI_DOCKER_NAME + ports: + - \"0.0.0.0:$LOKI_EXTERNAL_PORT\" + - \"0.0.0.0:$LOKI_PORT\" + - \"0.0.0.0:$LOKI_PORT2\" + - \"0.0.0.0:$LOKI_PORT3\" + volumes: + - $LOKI_CONFS_DIR=$LOKI_DOCKER_CONFS_DIR + - $LOKI_LOGS_DIR=$LOKI_DOCKER_LOGS_DIR + - $LOKI_RUNS_DIR=$LOKI_DOCKER_RUNS_DIR + - $LOKI_DATAS_DIR=$LOKI_DOCKER_DATAS_DIR + - $LOKI_BACKUPS_DIR=$LOKI_DOCKER_BACKUPS_DIR + - $LOKI_SCRIPTS_DIR=$LOKI_DOCKER_SCRIPTS_DIR + networks: + btcnet: + aliases: + - $LOKI_DOCKER_NAME + user: root + entrypoint: > + /bin/sh -c \"$LOKI_DOCKER_WORKING_DIR_CREATE\" + healthcheck: + test: [\"CMD\", \"sh\", \"$LOKI_HEALTHCHECK\"] + interval: 30s + timeout: 10s + retries: 50 + restart: unless-stopped" + +# ====== INTERNAL PROMTAIL ====== + +PROMTAIL_DOCKER_NAME=$PROMTAIL +PROMTAIL_CONFS_DIR=$DOCKER_GLOBAL/confs/$PROMTAIL +PROMTAIL_LOGS_DIR=$DOCKER_GLOBAL/logs/$PROMTAIL +PROMTAIL_RUNS_DIR=$DOCKER_GLOBAL/runs/$PROMTAIL +PROMTAIL_DATAS_DIR=$DOCKER_GLOBAL/datas/$PROMTAIL +PROMTAIL_BACKUPS_DIR=$DOCKER_GLOBAL/backups/$PROMTAIL +PROMTAIL_SCRIPTS_DIR=$DOCKER_GLOBAL/scripts/$PROMTAIL +PROMTAIL_DOCKER_WORKING_DIR=/home/$PROMTAIL + +PROMTAIL_DOCKER_CONFS_DIR=$DOCKER_GLOBAL/confs/$PROMTAIL +PROMTAIL_DOCKER_LOGS_DIR=$DOCKER_GLOBAL/logs/$PROMTAIL +PROMTAIL_DOCKER_RUNS_DIR=$DOCKER_GLOBAL/runs/$PROMTAIL +PROMTAIL_DOCKER_DATAS_DIR=$DOCKER_GLOBAL/datas/$PROMTAIL +PROMTAIL_DOCKER_BACKUPS_DIR=$DOCKER_GLOBAL/backups/$PROMTAIL +PROMTAIL_DOCKER_SCRIPTS_DIR=$DOCKER_GLOBAL/scripts/$PROMTAIL +PROMTAIL_DOCKER_WORKING_DIR=/home/$PROMTAIL + +PROMTAIL_DOCKER_WORKING_DIR_CREATE="id -u $PROMTAIL >/dev/null 2>&1 || adduser --disabled-password --gecos '' $PROMTAIL; chown -R $PROMTAIL:$PROMTAIL /home/root/.$PROMTAIL || echo 'warn: chown partiel (fichiers bind-mount Windows)'; exec \"$@\"" +PROMTAIL_URL_ROUTE=/$PROMTAIL +PROMTAIL_URL=$ROOT_URL_INTERNAL\$PROMTAIL_DOCKER_NAME:$PROMTAIL_DOCKER_PORT +PROMTAIL_URL_EXTERNAL=$ROOT_URL$PROMTAIL_URL_ROUTE +PROMTAIL_URL_WS=$ROOT_URL_WS_INTERNAL\$PROMTAIL_DOCKER_PORT +PROMTAIL_URL_WS_EXTERNAL=$ROOT_URL_WS\ws + +PROMTAIL_HEALTHCHECK=$lecoffre-front_CONFS_DIR/healthcheck_$PROMTAIL.sh +PROMTAIL_DOCKER_SERVICE=" + $PROMTAIL_DOCKER_NAME: + image: $PROMTAIL_DOCKER_IMAGE + container_name: $PROMTAIL_DOCKER_NAME + working_dir: /$PROMTAIL_DOCKER_NAME + ports: + - \"0.0.0.0:$PROMTAIL_EXTERNAL_PORT\" + - \"0.0.0.0:$PROMTAIL_PORT\" + - \"0.0.0.0:$PROMTAIL_PORT2\" + - \"0.0.0.0:$PROMTAIL_PORT3\" + volumes: + - $PROMTAIL_CONFS_DIR=$PROMTAIL_DOCKER_CONFS_DIR + - $PROMTAIL_LOGS_DIR=$PROMTAIL_DOCKER_LOGS_DIR + - $PROMTAIL_RUNS_DIR=$PROMTAIL_DOCKER_RUNS_DIR + - $PROMTAIL_DATAS_DIR=$PROMTAIL_DOCKER_DATAS_DIR + - $PROMTAIL_BACKUPS_DIR=$PROMTAIL_DOCKER_BACKUPS_DIR + - $PROMTAIL_SCRIPTS_DIR=$PROMTAIL_DOCKER_SCRIPTS_DIR + networks: + btcnet: + aliases: + - $PROMTAIL_DOCKER_NAME + user: root + entrypoint: > + /bin/sh -c \"$PROMTAIL_DOCKER_WORKING_DIR_CREATE\" + healthcheck: + test: [\"CMD\", \"sh\", \"$PROMTAIL_HEALTHCHECK\"] + interval: 30s + timeout: 10s + retries: 50 + restart: unless-stopped" + +# ====== INTERNAL GRAFANA ====== + +GRAFANA_DOCKER_NAME=$GRAFANA +GRAFANA_CONFS_DIR=$DOCKER_GLOBAL/confs/$GRAFANA +GRAFANA_LOGS_DIR=$DOCKER_GLOBAL/logs/$GRAFANA +GRAFANA_RUNS_DIR=$DOCKER_GLOBAL/runs/$GRAFANA +GRAFANA_DATAS_DIR=$DOCKER_GLOBAL/datas/$GRAFANA +GRAFANA_BACKUPS_DIR=$DOCKER_GLOBAL/backups/$GRAFANA +GRAFANA_SCRIPTS_DIR=$DOCKER_GLOBAL/scripts/$GRAFANA +GRAFANA_DOCKER_WORKING_DIR=/home/$GRAFANA + +GRAFANA_DOCKER_CONFS_DIR=$DOCKER_GLOBAL/confs/$GRAFANA +GRAFANA_DOCKER_LOGS_DIR=$DOCKER_GLOBAL/logs/$GRAFANA +GRAFANA_DOCKER_RUNS_DIR=$DOCKER_GLOBAL/runs/$GRAFANA +GRAFANA_DOCKER_DATAS_DIR=$DOCKER_GLOBAL/datas/$GRAFANA +GRAFANA_DOCKER_BACKUPS_DIR=$DOCKER_GLOBAL/backups/$GRAFANA +GRAFANA_DOCKER_SCRIPTS_DIR=$DOCKER_GLOBAL/scripts/$GRAFANA +GRAFANA_DOCKER_WORKING_DIR=/home/$GRAFANA + +GRAFANA_DOCKER_WORKING_DIR_CREATE="id -u $GRAFANA >/dev/null 2>&1 || adduser --disabled-password --gecos '' $GRAFANA; chown -R $GRAFANA:$GRAFANA /home/root/.$GRAFANA || echo 'warn: chown partiel (fichiers bind-mount Windows)'; exec \"$@\"" +GRAFANA_URL_ROUTE=/$GRAFANA +GRAFANA_URL=$ROOT_URL_INTERNAL\$GRAFANA_DOCKER_NAME:$GRAFANA_DOCKER_PORT +GRAFANA_URL_EXTERNAL=$ROOT_URL$GRAFANA_URL_ROUTE +GRAFANA_URL_WS=$ROOT_URL_WS_INTERNAL\$GRAFANA_DOCKER_PORT +GRAFANA_URL_WS_EXTERNAL=$ROOT_URL_WS\ws + +GRAFANA_HEALTHCHECK=$lecoffre-front_CONFS_DIR/healthcheck_$GRAFANA.sh +GRAFANA_DOCKER_SERVICE=" + $GRAFANA_DOCKER_NAME: + image: $GRAFANA_DOCKER_IMAGE + container_name: $GRAFANA_DOCKER_NAME + working_dir: /$GRAFANA_DOCKER_NAME + ports: + - \"0.0.0.0:$GRAFANA_EXTERNAL_PORT\" + - \"0.0.0.0:$GRAFANA_PORT\" + - \"0.0.0.0:$GRAFANA_PORT2\" + - \"0.0.0.0:$GRAFANA_PORT3\" + volumes: + - $GRAFANA_CONFS_DIR=$GRAFANA_DOCKER_CONFS_DIR + - $GRAFANA_LOGS_DIR=$GRAFANA_DOCKER_LOGS_DIR + - $GRAFANA_RUNS_DIR=$GRAFANA_DOCKER_RUNS_DIR + - $GRAFANA_DATAS_DIR=$GRAFANA_DOCKER_DATAS_DIR + - $GRAFANA_BACKUPS_DIR=$GRAFANA_DOCKER_BACKUPS_DIR + - $GRAFANA_SCRIPTS_DIR=$GRAFANA_DOCKER_SCRIPTS_DIR + networks: + btcnet: + aliases: + - $GRAFANA_DOCKER_NAME + user: root + entrypoint: > + /bin/sh -c \"$GRAFANA_DOCKER_WORKING_DIR_CREATE\" + healthcheck: + test: [\"CMD\", \"sh\", \"$GRAFANA_HEALTHCHECK\"] + interval: 30s + timeout: 10s + retries: 50 + restart: unless-stopped" + +# ====== INTERNAL 4NK_VAULT ====== + +4NK_VAULT_DOCKER_NAME=$4NK_VAULT +4NK_VAULT_CONFS_DIR=$DOCKER_GLOBAL/confs/$4NK_VAULT +4NK_VAULT_LOGS_DIR=$DOCKER_GLOBAL/logs/$4NK_VAULT +4NK_VAULT_RUNS_DIR=$DOCKER_GLOBAL/runs/$4NK_VAULT +4NK_VAULT_DATAS_DIR=$DOCKER_GLOBAL/datas/$4NK_VAULT +4NK_VAULT_BACKUPS_DIR=$DOCKER_GLOBAL/backups/$4NK_VAULT +4NK_VAULT_SCRIPTS_DIR=$DOCKER_GLOBAL/scripts/$4NK_VAULT +4NK_VAULT_DOCKER_WORKING_DIR=/home/$4NK_VAULT + +4NK_VAULT_DOCKER_CONFS_DIR=$DOCKER_GLOBAL/confs/$4NK_VAULT +4NK_VAULT_DOCKER_LOGS_DIR=$DOCKER_GLOBAL/logs/$4NK_VAULT +4NK_VAULT_DOCKER_RUNS_DIR=$DOCKER_GLOBAL/runs/$4NK_VAULT +4NK_VAULT_DOCKER_DATAS_DIR=$DOCKER_GLOBAL/datas/$4NK_VAULT +4NK_VAULT_DOCKER_BACKUPS_DIR=$DOCKER_GLOBAL/backups/$4NK_VAULT +4NK_VAULT_DOCKER_SCRIPTS_DIR=$DOCKER_GLOBAL/scripts/$4NK_VAULT +4NK_VAULT_DOCKER_WORKING_DIR=/home/$4NK_VAULT + +4NK_VAULT_DOCKER_WORKING_DIR_CREATE="id -u $4NK_VAULT >/dev/null 2>&1 || adduser --disabled-password --gecos '' $4NK_VAULT; chown -R $4NK_VAULT:$4NK_VAULT /home/root/.$4NK_VAULT || echo 'warn: chown partiel (fichiers bind-mount Windows)'; exec \"$@\"" +4NK_VAULT_URL_ROUTE=/$4NK_VAULT +4NK_VAULT_URL=$ROOT_URL_INTERNAL\$4NK_VAULT_DOCKER_NAME:$4NK_VAULT_DOCKER_PORT +4NK_VAULT_URL_EXTERNAL=$ROOT_URL$4NK_VAULT_URL_ROUTE +4NK_VAULT_URL_WS=$ROOT_URL_WS_INTERNAL\$4NK_VAULT_DOCKER_PORT +4NK_VAULT_URL_WS_EXTERNAL=$ROOT_URL_WS\ws + +4NK_VAULT_HEALTHCHECK=$lecoffre-front_CONFS_DIR/healthcheck_$4NK_VAULT.sh +4NK_VAULT_DOCKER_SERVICE=" + $4NK_VAULT_DOCKER_NAME: + image: $4NK_VAULT_DOCKER_IMAGE + container_name: $4NK_VAULT_DOCKER_NAME + working_dir: /$4NK_VAULT_DOCKER_NAME + ports: + - \"0.0.0.0:$4NK_VAULT_EXTERNAL_PORT\" + - \"0.0.0.0:$4NK_VAULT_PORT\" + - \"0.0.0.0:$4NK_VAULT_PORT2\" + - \"0.0.0.0:$4NK_VAULT_PORT3\" + volumes: + - $4NK_VAULT_CONFS_DIR=$4NK_VAULT_DOCKER_CONFS_DIR + - $4NK_VAULT_LOGS_DIR=$4NK_VAULT_DOCKER_LOGS_DIR + - $4NK_VAULT_RUNS_DIR=$4NK_VAULT_DOCKER_RUNS_DIR + - $4NK_VAULT_DATAS_DIR=$4NK_VAULT_DOCKER_DATAS_DIR + - $4NK_VAULT_BACKUPS_DIR=$4NK_VAULT_DOCKER_BACKUPS_DIR + - $4NK_VAULT_SCRIPTS_DIR=$4NK_VAULT_DOCKER_SCRIPTS_DIR + networks: + btcnet: + aliases: + - $4NK_VAULT_DOCKER_NAME + user: root + entrypoint: > + /bin/sh -c \"$4NK_VAULT_DOCKER_WORKING_DIR_CREATE\" + healthcheck: + test: [\"CMD\", \"sh\", \"$4NK_VAULT_HEALTHCHECK\"] + interval: 30s + timeout: 10s + retries: 50 + restart: unless-stopped" + +# ====== INTERNAL TOR ====== + +TOR_DOCKER_NAME=$TOR +TOR_CONFS_DIR=$DOCKER_GLOBAL/confs/$TOR +TOR_LOGS_DIR=$DOCKER_GLOBAL/logs/$TOR +TOR_RUNS_DIR=$DOCKER_GLOBAL/runs/$TOR +TOR_DATAS_DIR=$DOCKER_GLOBAL/datas/$TOR +TOR_BACKUPS_DIR=$DOCKER_GLOBAL/backups/$TOR +TOR_SCRIPTS_DIR=$DOCKER_GLOBAL/scripts/$TOR +TOR_DOCKER_WORKING_DIR=/home/$TOR + +TOR_DOCKER_CONFS_DIR=$DOCKER_GLOBAL/confs/$TOR +TOR_DOCKER_LOGS_DIR=$DOCKER_GLOBAL/logs/$TOR +TOR_DOCKER_RUNS_DIR=$DOCKER_GLOBAL/runs/$TOR +TOR_DOCKER_DATAS_DIR=$DOCKER_GLOBAL/datas/$TOR +TOR_DOCKER_BACKUPS_DIR=$DOCKER_GLOBAL/backups/$TOR +TOR_DOCKER_SCRIPTS_DIR=$DOCKER_GLOBAL/scripts/$TOR +TOR_DOCKER_WORKING_DIR=/home/$TOR + +TOR_DOCKER_WORKING_DIR_CREATE="id -u $TOR >/dev/null 2>&1 || adduser --disabled-password --gecos '' $TOR; chown -R $TOR:$TOR /home/root/.$TOR || echo 'warn: chown partiel (fichiers bind-mount Windows)'; exec \"$@\"" +TOR_URL_ROUTE=/$TOR +TOR_URL=$ROOT_URL_INTERNAL\$TOR_DOCKER_NAME:$TOR_DOCKER_PORT +TOR_URL_EXTERNAL=$ROOT_URL$TOR_URL_ROUTE +TOR_URL_WS=$ROOT_URL_WS_INTERNAL\$TOR_DOCKER_PORT +TOR_URL_WS_EXTERNAL=$ROOT_URL_WS\ws + +TOR_HEALTHCHECK=$lecoffre-front_CONFS_DIR/healthcheck_$TOR.sh +TOR_DOCKER_SERVICE=" + $TOR_DOCKER_NAME: + image: $TOR_DOCKER_IMAGE + container_name: $TOR_DOCKER_NAME + working_dir: /$TOR_DOCKER_NAME + ports: + - \"0.0.0.0:$TOR_EXTERNAL_PORT\" + - \"0.0.0.0:$TOR_PORT\" + - \"0.0.0.0:$TOR_PORT2\" + - \"0.0.0.0:$TOR_PORT3\" + volumes: + - $TOR_CONFS_DIR=$TOR_DOCKER_CONFS_DIR + - $TOR_LOGS_DIR=$TOR_DOCKER_LOGS_DIR + - $TOR_RUNS_DIR=$TOR_DOCKER_RUNS_DIR + - $TOR_DATAS_DIR=$TOR_DOCKER_DATAS_DIR + - $TOR_BACKUPS_DIR=$TOR_DOCKER_BACKUPS_DIR + - $TOR_SCRIPTS_DIR=$TOR_DOCKER_SCRIPTS_DIR + networks: + btcnet: + aliases: + - $TOR_DOCKER_NAME + user: root + entrypoint: > + /bin/sh -c \"$TOR_DOCKER_WORKING_DIR_CREATE\" + healthcheck: + test: [\"CMD\", \"sh\", \"$TOR_HEALTHCHECK\"] + interval: 30s + timeout: 10s + retries: 50 + restart: unless-stopped" + +# ====== INTERNAL BITCOIN ====== + +BITCOIN_DOCKER_NAME=$BITCOIN +BITCOIN_CONFS_DIR=$DOCKER_GLOBAL/confs/$BITCOIN +BITCOIN_LOGS_DIR=$DOCKER_GLOBAL/logs/$BITCOIN +BITCOIN_RUNS_DIR=$DOCKER_GLOBAL/runs/$BITCOIN +BITCOIN_DATAS_DIR=$DOCKER_GLOBAL/datas/$BITCOIN +BITCOIN_BACKUPS_DIR=$DOCKER_GLOBAL/backups/$BITCOIN +BITCOIN_SCRIPTS_DIR=$DOCKER_GLOBAL/scripts/$BITCOIN +BITCOIN_DOCKER_WORKING_DIR=/home/$BITCOIN + +BITCOIN_DOCKER_CONFS_DIR=$DOCKER_GLOBAL/confs/$BITCOIN +BITCOIN_DOCKER_LOGS_DIR=$DOCKER_GLOBAL/logs/$BITCOIN +BITCOIN_DOCKER_RUNS_DIR=$DOCKER_GLOBAL/runs/$BITCOIN +BITCOIN_DOCKER_DATAS_DIR=$DOCKER_GLOBAL/datas/$BITCOIN +BITCOIN_DOCKER_BACKUPS_DIR=$DOCKER_GLOBAL/backups/$BITCOIN +BITCOIN_DOCKER_SCRIPTS_DIR=$DOCKER_GLOBAL/scripts/$BITCOIN +BITCOIN_DOCKER_WORKING_DIR=/home/$BITCOIN + +BITCOIN_DOCKER_WORKING_DIR_CREATE="id -u $BITCOIN >/dev/null 2>&1 || adduser --disabled-password --gecos '' $BITCOIN; chown -R $BITCOIN:$BITCOIN /home/root/.$BITCOIN || echo 'warn: chown partiel (fichiers bind-mount Windows)'; exec \"$@\"" +BITCOIN_URL_ROUTE=/$BITCOIN +BITCOIN_URL=$ROOT_URL_INTERNAL\$BITCOIN_DOCKER_NAME:$BITCOIN_DOCKER_PORT +BITCOIN_URL_EXTERNAL=$ROOT_URL$BITCOIN_URL_ROUTE +BITCOIN_URL_WS=$ROOT_URL_WS_INTERNAL\$BITCOIN_DOCKER_PORT +BITCOIN_URL_WS_EXTERNAL=$ROOT_URL_WS\ws + +BITCOIN_HEALTHCHECK=$lecoffre-front_CONFS_DIR/healthcheck_$BITCOIN.sh +BITCOIN_DOCKER_SERVICE=" + $BITCOIN_DOCKER_NAME: + image: $BITCOIN_DOCKER_IMAGE + container_name: $BITCOIN_DOCKER_NAME + working_dir: /$BITCOIN_DOCKER_NAME + ports: + - \"0.0.0.0:$BITCOIN_EXTERNAL_PORT\" + - \"0.0.0.0:$BITCOIN_PORT\" + - \"0.0.0.0:$BITCOIN_PORT2\" + - \"0.0.0.0:$BITCOIN_PORT3\" + volumes: + - $BITCOIN_CONFS_DIR=$BITCOIN_DOCKER_CONFS_DIR + - $BITCOIN_LOGS_DIR=$BITCOIN_DOCKER_LOGS_DIR + - $BITCOIN_RUNS_DIR=$BITCOIN_DOCKER_RUNS_DIR + - $BITCOIN_DATAS_DIR=$BITCOIN_DOCKER_DATAS_DIR + - $BITCOIN_BACKUPS_DIR=$BITCOIN_DOCKER_BACKUPS_DIR + - $BITCOIN_SCRIPTS_DIR=$BITCOIN_DOCKER_SCRIPTS_DIR + networks: + btcnet: + aliases: + - $BITCOIN_DOCKER_NAME + user: root + entrypoint: > + /bin/sh -c \"$BITCOIN_DOCKER_WORKING_DIR_CREATE\" + healthcheck: + test: [\"CMD\", \"sh\", \"$BITCOIN_HEALTHCHECK\"] + interval: 30s + timeout: 10s + retries: 50 + restart: unless-stopped" + +# ====== INTERNAL BLINDBIT_ORACLE ====== + +BLINDBIT_ORACLE_DOCKER_NAME=$BLINDBIT_ORACLE +BLINDBIT_ORACLE_CONFS_DIR=$DOCKER_GLOBAL/confs/$BLINDBIT_ORACLE +BLINDBIT_ORACLE_LOGS_DIR=$DOCKER_GLOBAL/logs/$BLINDBIT_ORACLE +BLINDBIT_ORACLE_RUNS_DIR=$DOCKER_GLOBAL/runs/$BLINDBIT_ORACLE +BLINDBIT_ORACLE_DATAS_DIR=$DOCKER_GLOBAL/datas/$BLINDBIT_ORACLE +BLINDBIT_ORACLE_BACKUPS_DIR=$DOCKER_GLOBAL/backups/$BLINDBIT_ORACLE +BLINDBIT_ORACLE_SCRIPTS_DIR=$DOCKER_GLOBAL/scripts/$BLINDBIT_ORACLE +BLINDBIT_ORACLE_DOCKER_WORKING_DIR=/home/$BLINDBIT_ORACLE + +BLINDBIT_ORACLE_DOCKER_CONFS_DIR=$DOCKER_GLOBAL/confs/$BLINDBIT_ORACLE +BLINDBIT_ORACLE_DOCKER_LOGS_DIR=$DOCKER_GLOBAL/logs/$BLINDBIT_ORACLE +BLINDBIT_ORACLE_DOCKER_RUNS_DIR=$DOCKER_GLOBAL/runs/$BLINDBIT_ORACLE +BLINDBIT_ORACLE_DOCKER_DATAS_DIR=$DOCKER_GLOBAL/datas/$BLINDBIT_ORACLE +BLINDBIT_ORACLE_DOCKER_BACKUPS_DIR=$DOCKER_GLOBAL/backups/$BLINDBIT_ORACLE +BLINDBIT_ORACLE_DOCKER_SCRIPTS_DIR=$DOCKER_GLOBAL/scripts/$BLINDBIT_ORACLE +BLINDBIT_ORACLE_DOCKER_WORKING_DIR=/home/$BLINDBIT_ORACLE + +BLINDBIT_ORACLE_DOCKER_WORKING_DIR_CREATE="id -u $BLINDBIT_ORACLE >/dev/null 2>&1 || adduser --disabled-password --gecos '' $BLINDBIT_ORACLE; chown -R $BLINDBIT_ORACLE:$BLINDBIT_ORACLE /home/root/.$BLINDBIT_ORACLE || echo 'warn: chown partiel (fichiers bind-mount Windows)'; exec \"$@\"" +BLINDBIT_ORACLE_URL_ROUTE=/$BLINDBIT_ORACLE +BLINDBIT_ORACLE_URL=$ROOT_URL_INTERNAL\$BLINDBIT_ORACLE_DOCKER_NAME:$BLINDBIT_ORACLE_DOCKER_PORT +BLINDBIT_ORACLE_URL_EXTERNAL=$ROOT_URL$BLINDBIT_ORACLE_URL_ROUTE +BLINDBIT_ORACLE_URL_WS=$ROOT_URL_WS_INTERNAL\$BLINDBIT_ORACLE_DOCKER_PORT +BLINDBIT_ORACLE_URL_WS_EXTERNAL=$ROOT_URL_WS\ws + +BLINDBIT_ORACLE_HEALTHCHECK=$lecoffre-front_CONFS_DIR/healthcheck_$BLINDBIT_ORACLE.sh +BLINDBIT_ORACLE_DOCKER_SERVICE=" + $BLINDBIT_ORACLE_DOCKER_NAME: + image: $BLINDBIT_ORACLE_DOCKER_IMAGE + container_name: $BLINDBIT_ORACLE_DOCKER_NAME + working_dir: /$BLINDBIT_ORACLE_DOCKER_NAME + ports: + - \"0.0.0.0:$BLINDBIT_ORACLE_EXTERNAL_PORT\" + - \"0.0.0.0:$BLINDBIT_ORACLE_PORT\" + - \"0.0.0.0:$BLINDBIT_ORACLE_PORT2\" + - \"0.0.0.0:$BLINDBIT_ORACLE_PORT3\" + volumes: + - $BLINDBIT_ORACLE_CONFS_DIR=$BLINDBIT_ORACLE_DOCKER_CONFS_DIR + - $BLINDBIT_ORACLE_LOGS_DIR=$BLINDBIT_ORACLE_DOCKER_LOGS_DIR + - $BLINDBIT_ORACLE_RUNS_DIR=$BLINDBIT_ORACLE_DOCKER_RUNS_DIR + - $BLINDBIT_ORACLE_DATAS_DIR=$BLINDBIT_ORACLE_DOCKER_DATAS_DIR + - $BLINDBIT_ORACLE_BACKUPS_DIR=$BLINDBIT_ORACLE_DOCKER_BACKUPS_DIR + - $BLINDBIT_ORACLE_SCRIPTS_DIR=$BLINDBIT_ORACLE_DOCKER_SCRIPTS_DIR + networks: + btcnet: + aliases: + - $BLINDBIT_ORACLE_DOCKER_NAME + user: root + entrypoint: > + /bin/sh -c \"$BLINDBIT_ORACLE_DOCKER_WORKING_DIR_CREATE\" + healthcheck: + test: [\"CMD\", \"sh\", \"$BLINDBIT_ORACLE_HEALTHCHECK\"] + interval: 30s + timeout: 10s + retries: 50 + restart: unless-stopped" + +# ====== INTERNAL SDK_RELAY ====== + +SDK_RELAY_DOCKER_NAME=$SDK_RELAY +SDK_RELAY_CONFS_DIR=$DOCKER_GLOBAL/confs/$SDK_RELAY +SDK_RELAY_LOGS_DIR=$DOCKER_GLOBAL/logs/$SDK_RELAY +SDK_RELAY_RUNS_DIR=$DOCKER_GLOBAL/runs/$SDK_RELAY +SDK_RELAY_DATAS_DIR=$DOCKER_GLOBAL/datas/$SDK_RELAY +SDK_RELAY_BACKUPS_DIR=$DOCKER_GLOBAL/backups/$SDK_RELAY +SDK_RELAY_SCRIPTS_DIR=$DOCKER_GLOBAL/scripts/$SDK_RELAY +SDK_RELAY_DOCKER_WORKING_DIR=/home/$SDK_RELAY + +SDK_RELAY_DOCKER_CONFS_DIR=$DOCKER_GLOBAL/confs/$SDK_RELAY +SDK_RELAY_DOCKER_LOGS_DIR=$DOCKER_GLOBAL/logs/$SDK_RELAY +SDK_RELAY_DOCKER_RUNS_DIR=$DOCKER_GLOBAL/runs/$SDK_RELAY +SDK_RELAY_DOCKER_DATAS_DIR=$DOCKER_GLOBAL/datas/$SDK_RELAY +SDK_RELAY_DOCKER_BACKUPS_DIR=$DOCKER_GLOBAL/backups/$SDK_RELAY +SDK_RELAY_DOCKER_SCRIPTS_DIR=$DOCKER_GLOBAL/scripts/$SDK_RELAY +SDK_RELAY_DOCKER_WORKING_DIR=/home/$SDK_RELAY + +SDK_RELAY_DOCKER_WORKING_DIR_CREATE="id -u $SDK_RELAY >/dev/null 2>&1 || adduser --disabled-password --gecos '' $SDK_RELAY; chown -R $SDK_RELAY:$SDK_RELAY /home/root/.$SDK_RELAY || echo 'warn: chown partiel (fichiers bind-mount Windows)'; exec \"$@\"" +SDK_RELAY_URL_ROUTE=/$SDK_RELAY +SDK_RELAY_URL=$ROOT_URL_INTERNAL\$SDK_RELAY_DOCKER_NAME:$SDK_RELAY_DOCKER_PORT +SDK_RELAY_URL_EXTERNAL=$ROOT_URL$SDK_RELAY_URL_ROUTE +SDK_RELAY_URL_WS=$ROOT_URL_WS_INTERNAL\$SDK_RELAY_DOCKER_PORT +SDK_RELAY_URL_WS_EXTERNAL=$ROOT_URL_WS\ws + +SDK_RELAY_HEALTHCHECK=$lecoffre-front_CONFS_DIR/healthcheck_$SDK_RELAY.sh +SDK_RELAY_DOCKER_SERVICE=" + $SDK_RELAY_DOCKER_NAME: + image: $SDK_RELAY_DOCKER_IMAGE + container_name: $SDK_RELAY_DOCKER_NAME + working_dir: /$SDK_RELAY_DOCKER_NAME + ports: + - \"0.0.0.0:$SDK_RELAY_EXTERNAL_PORT\" + - \"0.0.0.0:$SDK_RELAY_PORT\" + - \"0.0.0.0:$SDK_RELAY_PORT2\" + - \"0.0.0.0:$SDK_RELAY_PORT3\" + volumes: + - $SDK_RELAY_CONFS_DIR=$SDK_RELAY_DOCKER_CONFS_DIR + - $SDK_RELAY_LOGS_DIR=$SDK_RELAY_DOCKER_LOGS_DIR + - $SDK_RELAY_RUNS_DIR=$SDK_RELAY_DOCKER_RUNS_DIR + - $SDK_RELAY_DATAS_DIR=$SDK_RELAY_DOCKER_DATAS_DIR + - $SDK_RELAY_BACKUPS_DIR=$SDK_RELAY_DOCKER_BACKUPS_DIR + - $SDK_RELAY_SCRIPTS_DIR=$SDK_RELAY_DOCKER_SCRIPTS_DIR + networks: + btcnet: + aliases: + - $SDK_RELAY_DOCKER_NAME + user: root + entrypoint: > + /bin/sh -c \"$SDK_RELAY_DOCKER_WORKING_DIR_CREATE\" + healthcheck: + test: [\"CMD\", \"sh\", \"$SDK_RELAY_HEALTHCHECK\"] + interval: 30s + timeout: 10s + retries: 50 + restart: unless-stopped" + +# ====== INTERNAL SDK_STORAGE ====== + +SDK_STORAGE_DOCKER_NAME=$SDK_STORAGE +SDK_STORAGE_CONFS_DIR=$DOCKER_GLOBAL/confs/$SDK_STORAGE +SDK_STORAGE_LOGS_DIR=$DOCKER_GLOBAL/logs/$SDK_STORAGE +SDK_STORAGE_RUNS_DIR=$DOCKER_GLOBAL/runs/$SDK_STORAGE +SDK_STORAGE_DATAS_DIR=$DOCKER_GLOBAL/datas/$SDK_STORAGE +SDK_STORAGE_BACKUPS_DIR=$DOCKER_GLOBAL/backups/$SDK_STORAGE +SDK_STORAGE_SCRIPTS_DIR=$DOCKER_GLOBAL/scripts/$SDK_STORAGE +SDK_STORAGE_DOCKER_WORKING_DIR=/home/$SDK_STORAGE + +SDK_STORAGE_DOCKER_CONFS_DIR=$DOCKER_GLOBAL/confs/$SDK_STORAGE +SDK_STORAGE_DOCKER_LOGS_DIR=$DOCKER_GLOBAL/logs/$SDK_STORAGE +SDK_STORAGE_DOCKER_RUNS_DIR=$DOCKER_GLOBAL/runs/$SDK_STORAGE +SDK_STORAGE_DOCKER_DATAS_DIR=$DOCKER_GLOBAL/datas/$SDK_STORAGE +SDK_STORAGE_DOCKER_BACKUPS_DIR=$DOCKER_GLOBAL/backups/$SDK_STORAGE +SDK_STORAGE_DOCKER_SCRIPTS_DIR=$DOCKER_GLOBAL/scripts/$SDK_STORAGE +SDK_STORAGE_DOCKER_WORKING_DIR=/home/$SDK_STORAGE + +SDK_STORAGE_DOCKER_WORKING_DIR_CREATE="id -u $SDK_STORAGE >/dev/null 2>&1 || adduser --disabled-password --gecos '' $SDK_STORAGE; chown -R $SDK_STORAGE:$SDK_STORAGE /home/root/.$SDK_STORAGE || echo 'warn: chown partiel (fichiers bind-mount Windows)'; exec \"$@\"" +SDK_STORAGE_URL_ROUTE=/$SDK_STORAGE +SDK_STORAGE_URL=$ROOT_URL_INTERNAL\$SDK_STORAGE_DOCKER_NAME:$SDK_STORAGE_DOCKER_PORT +SDK_STORAGE_URL_EXTERNAL=$ROOT_URL$SDK_STORAGE_URL_ROUTE +SDK_STORAGE_URL_WS=$ROOT_URL_WS_INTERNAL\$SDK_STORAGE_DOCKER_PORT +SDK_STORAGE_URL_WS_EXTERNAL=$ROOT_URL_WS\ws + +SDK_STORAGE_HEALTHCHECK=$lecoffre-front_CONFS_DIR/healthcheck_$SDK_STORAGE.sh +SDK_STORAGE_DOCKER_SERVICE=" + $SDK_STORAGE_DOCKER_NAME: + image: $SDK_STORAGE_DOCKER_IMAGE + container_name: $SDK_STORAGE_DOCKER_NAME + working_dir: /$SDK_STORAGE_DOCKER_NAME + ports: + - \"0.0.0.0:$SDK_STORAGE_EXTERNAL_PORT\" + - \"0.0.0.0:$SDK_STORAGE_PORT\" + - \"0.0.0.0:$SDK_STORAGE_PORT2\" + - \"0.0.0.0:$SDK_STORAGE_PORT3\" + volumes: + - $SDK_STORAGE_CONFS_DIR=$SDK_STORAGE_DOCKER_CONFS_DIR + - $SDK_STORAGE_LOGS_DIR=$SDK_STORAGE_DOCKER_LOGS_DIR + - $SDK_STORAGE_RUNS_DIR=$SDK_STORAGE_DOCKER_RUNS_DIR + - $SDK_STORAGE_DATAS_DIR=$SDK_STORAGE_DOCKER_DATAS_DIR + - $SDK_STORAGE_BACKUPS_DIR=$SDK_STORAGE_DOCKER_BACKUPS_DIR + - $SDK_STORAGE_SCRIPTS_DIR=$SDK_STORAGE_DOCKER_SCRIPTS_DIR + networks: + btcnet: + aliases: + - $SDK_STORAGE_DOCKER_NAME + user: root + entrypoint: > + /bin/sh -c \"$SDK_STORAGE_DOCKER_WORKING_DIR_CREATE\" + healthcheck: + test: [\"CMD\", \"sh\", \"$SDK_STORAGE_HEALTHCHECK\"] + interval: 30s + timeout: 10s + retries: 50 + restart: unless-stopped" + +# ====== INTERNAL IHM_CLIENT ====== + +IHM_CLIENT_DOCKER_NAME=$IHM_CLIENT +IHM_CLIENT_CONFS_DIR=$DOCKER_GLOBAL/confs/$IHM_CLIENT +IHM_CLIENT_LOGS_DIR=$DOCKER_GLOBAL/logs/$IHM_CLIENT +IHM_CLIENT_RUNS_DIR=$DOCKER_GLOBAL/runs/$IHM_CLIENT +IHM_CLIENT_DATAS_DIR=$DOCKER_GLOBAL/datas/$IHM_CLIENT +IHM_CLIENT_BACKUPS_DIR=$DOCKER_GLOBAL/backups/$IHM_CLIENT +IHM_CLIENT_SCRIPTS_DIR=$DOCKER_GLOBAL/scripts/$IHM_CLIENT +IHM_CLIENT_DOCKER_WORKING_DIR=/home/$IHM_CLIENT + +IHM_CLIENT_DOCKER_CONFS_DIR=$DOCKER_GLOBAL/confs/$IHM_CLIENT +IHM_CLIENT_DOCKER_LOGS_DIR=$DOCKER_GLOBAL/logs/$IHM_CLIENT +IHM_CLIENT_DOCKER_RUNS_DIR=$DOCKER_GLOBAL/runs/$IHM_CLIENT +IHM_CLIENT_DOCKER_DATAS_DIR=$DOCKER_GLOBAL/datas/$IHM_CLIENT +IHM_CLIENT_DOCKER_BACKUPS_DIR=$DOCKER_GLOBAL/backups/$IHM_CLIENT +IHM_CLIENT_DOCKER_SCRIPTS_DIR=$DOCKER_GLOBAL/scripts/$IHM_CLIENT +IHM_CLIENT_DOCKER_WORKING_DIR=/home/$IHM_CLIENT + +IHM_CLIENT_DOCKER_WORKING_DIR_CREATE="id -u $IHM_CLIENT >/dev/null 2>&1 || adduser --disabled-password --gecos '' $IHM_CLIENT; chown -R $IHM_CLIENT:$IHM_CLIENT /home/root/.$IHM_CLIENT || echo 'warn: chown partiel (fichiers bind-mount Windows)'; exec \"$@\"" +IHM_CLIENT_URL_ROUTE=/$IHM_CLIENT +IHM_CLIENT_URL=$ROOT_URL_INTERNAL\$IHM_CLIENT_DOCKER_NAME:$IHM_CLIENT_DOCKER_PORT +IHM_CLIENT_URL_EXTERNAL=$ROOT_URL$IHM_CLIENT_URL_ROUTE +IHM_CLIENT_URL_WS=$ROOT_URL_WS_INTERNAL\$IHM_CLIENT_DOCKER_PORT +IHM_CLIENT_URL_WS_EXTERNAL=$ROOT_URL_WS\ws + +IHM_CLIENT_HEALTHCHECK=$lecoffre-front_CONFS_DIR/healthcheck_$IHM_CLIENT.sh +IHM_CLIENT_DOCKER_SERVICE=" + $IHM_CLIENT_DOCKER_NAME: + image: $IHM_CLIENT_DOCKER_IMAGE + container_name: $IHM_CLIENT_DOCKER_NAME + working_dir: /$IHM_CLIENT_DOCKER_NAME + ports: + - \"0.0.0.0:$IHM_CLIENT_EXTERNAL_PORT\" + - \"0.0.0.0:$IHM_CLIENT_PORT\" + - \"0.0.0.0:$IHM_CLIENT_PORT2\" + - \"0.0.0.0:$IHM_CLIENT_PORT3\" + volumes: + - $IHM_CLIENT_CONFS_DIR=$IHM_CLIENT_DOCKER_CONFS_DIR + - $IHM_CLIENT_LOGS_DIR=$IHM_CLIENT_DOCKER_LOGS_DIR + - $IHM_CLIENT_RUNS_DIR=$IHM_CLIENT_DOCKER_RUNS_DIR + - $IHM_CLIENT_DATAS_DIR=$IHM_CLIENT_DOCKER_DATAS_DIR + - $IHM_CLIENT_BACKUPS_DIR=$IHM_CLIENT_DOCKER_BACKUPS_DIR + - $IHM_CLIENT_SCRIPTS_DIR=$IHM_CLIENT_DOCKER_SCRIPTS_DIR + networks: + btcnet: + aliases: + - $IHM_CLIENT_DOCKER_NAME + user: root + entrypoint: > + /bin/sh -c \"$IHM_CLIENT_DOCKER_WORKING_DIR_CREATE\" + healthcheck: + test: [\"CMD\", \"sh\", \"$IHM_CLIENT_HEALTHCHECK\"] + interval: 30s + timeout: 10s + retries: 50 + restart: unless-stopped" + +# ====== INTERNAL 4NK_CERTIFICATOR ====== + +4NK_CERTIFICATOR_DOCKER_NAME=$4NK_CERTIFICATOR +4NK_CERTIFICATOR_CONFS_DIR=$DOCKER_GLOBAL/confs/$4NK_CERTIFICATOR +4NK_CERTIFICATOR_LOGS_DIR=$DOCKER_GLOBAL/logs/$4NK_CERTIFICATOR +4NK_CERTIFICATOR_RUNS_DIR=$DOCKER_GLOBAL/runs/$4NK_CERTIFICATOR +4NK_CERTIFICATOR_DATAS_DIR=$DOCKER_GLOBAL/datas/$4NK_CERTIFICATOR +4NK_CERTIFICATOR_BACKUPS_DIR=$DOCKER_GLOBAL/backups/$4NK_CERTIFICATOR +4NK_CERTIFICATOR_SCRIPTS_DIR=$DOCKER_GLOBAL/scripts/$4NK_CERTIFICATOR +4NK_CERTIFICATOR_DOCKER_WORKING_DIR=/home/$4NK_CERTIFICATOR + +4NK_CERTIFICATOR_DOCKER_CONFS_DIR=$DOCKER_GLOBAL/confs/$4NK_CERTIFICATOR +4NK_CERTIFICATOR_DOCKER_LOGS_DIR=$DOCKER_GLOBAL/logs/$4NK_CERTIFICATOR +4NK_CERTIFICATOR_DOCKER_RUNS_DIR=$DOCKER_GLOBAL/runs/$4NK_CERTIFICATOR +4NK_CERTIFICATOR_DOCKER_DATAS_DIR=$DOCKER_GLOBAL/datas/$4NK_CERTIFICATOR +4NK_CERTIFICATOR_DOCKER_BACKUPS_DIR=$DOCKER_GLOBAL/backups/$4NK_CERTIFICATOR +4NK_CERTIFICATOR_DOCKER_SCRIPTS_DIR=$DOCKER_GLOBAL/scripts/$4NK_CERTIFICATOR +4NK_CERTIFICATOR_DOCKER_WORKING_DIR=/home/$4NK_CERTIFICATOR + +4NK_CERTIFICATOR_DOCKER_WORKING_DIR_CREATE="id -u $4NK_CERTIFICATOR >/dev/null 2>&1 || adduser --disabled-password --gecos '' $4NK_CERTIFICATOR; chown -R $4NK_CERTIFICATOR:$4NK_CERTIFICATOR /home/root/.$4NK_CERTIFICATOR || echo 'warn: chown partiel (fichiers bind-mount Windows)'; exec \"$@\"" +4NK_CERTIFICATOR_URL_ROUTE=/$4NK_CERTIFICATOR +4NK_CERTIFICATOR_URL=$ROOT_URL_INTERNAL\$4NK_CERTIFICATOR_DOCKER_NAME:$4NK_CERTIFICATOR_DOCKER_PORT +4NK_CERTIFICATOR_URL_EXTERNAL=$ROOT_URL$4NK_CERTIFICATOR_URL_ROUTE +4NK_CERTIFICATOR_URL_WS=$ROOT_URL_WS_INTERNAL\$4NK_CERTIFICATOR_DOCKER_PORT +4NK_CERTIFICATOR_URL_WS_EXTERNAL=$ROOT_URL_WS\ws + +4NK_CERTIFICATOR_HEALTHCHECK=$lecoffre-front_CONFS_DIR/healthcheck_$4NK_CERTIFICATOR.sh +4NK_CERTIFICATOR_DOCKER_SERVICE=" + $4NK_CERTIFICATOR_DOCKER_NAME: + image: $4NK_CERTIFICATOR_DOCKER_IMAGE + container_name: $4NK_CERTIFICATOR_DOCKER_NAME + working_dir: /$4NK_CERTIFICATOR_DOCKER_NAME + ports: + - \"0.0.0.0:$4NK_CERTIFICATOR_EXTERNAL_PORT\" + - \"0.0.0.0:$4NK_CERTIFICATOR_PORT\" + - \"0.0.0.0:$4NK_CERTIFICATOR_PORT2\" + - \"0.0.0.0:$4NK_CERTIFICATOR_PORT3\" + volumes: + - $4NK_CERTIFICATOR_CONFS_DIR=$4NK_CERTIFICATOR_DOCKER_CONFS_DIR + - $4NK_CERTIFICATOR_LOGS_DIR=$4NK_CERTIFICATOR_DOCKER_LOGS_DIR + - $4NK_CERTIFICATOR_RUNS_DIR=$4NK_CERTIFICATOR_DOCKER_RUNS_DIR + - $4NK_CERTIFICATOR_DATAS_DIR=$4NK_CERTIFICATOR_DOCKER_DATAS_DIR + - $4NK_CERTIFICATOR_BACKUPS_DIR=$4NK_CERTIFICATOR_DOCKER_BACKUPS_DIR + - $4NK_CERTIFICATOR_SCRIPTS_DIR=$4NK_CERTIFICATOR_DOCKER_SCRIPTS_DIR + networks: + btcnet: + aliases: + - $4NK_CERTIFICATOR_DOCKER_NAME + user: root + entrypoint: > + /bin/sh -c \"$4NK_CERTIFICATOR_DOCKER_WORKING_DIR_CREATE\" + healthcheck: + test: [\"CMD\", \"sh\", \"$4NK_CERTIFICATOR_HEALTHCHECK\"] + interval: 30s + timeout: 10s + retries: 50 + restart: unless-stopped" + +# ====== INTERNAL 4NK_MINER ====== + +4NK_MINER_DOCKER_NAME=$4NK_MINER +4NK_MINER_CONFS_DIR=$DOCKER_GLOBAL/confs/$4NK_MINER +4NK_MINER_LOGS_DIR=$DOCKER_GLOBAL/logs/$4NK_MINER +4NK_MINER_RUNS_DIR=$DOCKER_GLOBAL/runs/$4NK_MINER +4NK_MINER_DATAS_DIR=$DOCKER_GLOBAL/datas/$4NK_MINER +4NK_MINER_BACKUPS_DIR=$DOCKER_GLOBAL/backups/$4NK_MINER +4NK_MINER_SCRIPTS_DIR=$DOCKER_GLOBAL/scripts/$4NK_MINER +4NK_MINER_DOCKER_WORKING_DIR=/home/$4NK_MINER + +4NK_MINER_DOCKER_CONFS_DIR=$DOCKER_GLOBAL/confs/$4NK_MINER +4NK_MINER_DOCKER_LOGS_DIR=$DOCKER_GLOBAL/logs/$4NK_MINER +4NK_MINER_DOCKER_RUNS_DIR=$DOCKER_GLOBAL/runs/$4NK_MINER +4NK_MINER_DOCKER_DATAS_DIR=$DOCKER_GLOBAL/datas/$4NK_MINER +4NK_MINER_DOCKER_BACKUPS_DIR=$DOCKER_GLOBAL/backups/$4NK_MINER +4NK_MINER_DOCKER_SCRIPTS_DIR=$DOCKER_GLOBAL/scripts/$4NK_MINER +4NK_MINER_DOCKER_WORKING_DIR=/home/$4NK_MINER + +4NK_MINER_DOCKER_WORKING_DIR_CREATE="id -u $4NK_MINER >/dev/null 2>&1 || adduser --disabled-password --gecos '' $4NK_MINER; chown -R $4NK_MINER:$4NK_MINER /home/root/.$4NK_MINER || echo 'warn: chown partiel (fichiers bind-mount Windows)'; exec \"$@\"" +4NK_MINER_URL_ROUTE=/$4NK_MINER +4NK_MINER_URL=$ROOT_URL_INTERNAL\$4NK_MINER_DOCKER_NAME:$4NK_MINER_DOCKER_PORT +4NK_MINER_URL_EXTERNAL=$ROOT_URL$4NK_MINER_URL_ROUTE +4NK_MINER_URL_WS=$ROOT_URL_WS_INTERNAL\$4NK_MINER_DOCKER_PORT +4NK_MINER_URL_WS_EXTERNAL=$ROOT_URL_WS\ws + +4NK_MINER_HEALTHCHECK=$lecoffre-front_CONFS_DIR/healthcheck_$4NK_MINER.sh +4NK_MINER_DOCKER_SERVICE=" + $4NK_MINER_DOCKER_NAME: + image: $4NK_MINER_DOCKER_IMAGE + container_name: $4NK_MINER_DOCKER_NAME + working_dir: /$4NK_MINER_DOCKER_NAME + ports: + - \"0.0.0.0:$4NK_MINER_EXTERNAL_PORT\" + - \"0.0.0.0:$4NK_MINER_PORT\" + - \"0.0.0.0:$4NK_MINER_PORT2\" + - \"0.0.0.0:$4NK_MINER_PORT3\" + volumes: + - $4NK_MINER_CONFS_DIR=$4NK_MINER_DOCKER_CONFS_DIR + - $4NK_MINER_LOGS_DIR=$4NK_MINER_DOCKER_LOGS_DIR + - $4NK_MINER_RUNS_DIR=$4NK_MINER_DOCKER_RUNS_DIR + - $4NK_MINER_DATAS_DIR=$4NK_MINER_DOCKER_DATAS_DIR + - $4NK_MINER_BACKUPS_DIR=$4NK_MINER_DOCKER_BACKUPS_DIR + - $4NK_MINER_SCRIPTS_DIR=$4NK_MINER_DOCKER_SCRIPTS_DIR + networks: + btcnet: + aliases: + - $4NK_MINER_DOCKER_NAME + user: root + entrypoint: > + /bin/sh -c \"$4NK_MINER_DOCKER_WORKING_DIR_CREATE\" + healthcheck: + test: [\"CMD\", \"sh\", \"$4NK_MINER_HEALTHCHECK\"] + interval: 30s + timeout: 10s + retries: 50 + restart: unless-stopped" + +# ====== INTERNAL LECOFFRE_FRONT ====== + +LECOFFRE_FRONT_DOCKER_NAME=$LECOFFRE_FRONT +LECOFFRE_FRONT_CONFS_DIR=$DOCKER_GLOBAL/confs/$LECOFFRE_FRONT +LECOFFRE_FRONT_LOGS_DIR=$DOCKER_GLOBAL/logs/$LECOFFRE_FRONT +LECOFFRE_FRONT_RUNS_DIR=$DOCKER_GLOBAL/runs/$LECOFFRE_FRONT +LECOFFRE_FRONT_DATAS_DIR=$DOCKER_GLOBAL/datas/$LECOFFRE_FRONT +LECOFFRE_FRONT_BACKUPS_DIR=$DOCKER_GLOBAL/backups/$LECOFFRE_FRONT +LECOFFRE_FRONT_SCRIPTS_DIR=$DOCKER_GLOBAL/scripts/$LECOFFRE_FRONT +LECOFFRE_FRONT_DOCKER_WORKING_DIR=/home/$LECOFFRE_FRONT + +LECOFFRE_FRONT_DOCKER_CONFS_DIR=$DOCKER_GLOBAL/confs/$LECOFFRE_FRONT +LECOFFRE_FRONT_DOCKER_LOGS_DIR=$DOCKER_GLOBAL/logs/$LECOFFRE_FRONT +LECOFFRE_FRONT_DOCKER_RUNS_DIR=$DOCKER_GLOBAL/runs/$LECOFFRE_FRONT +LECOFFRE_FRONT_DOCKER_DATAS_DIR=$DOCKER_GLOBAL/datas/$LECOFFRE_FRONT +LECOFFRE_FRONT_DOCKER_BACKUPS_DIR=$DOCKER_GLOBAL/backups/$LECOFFRE_FRONT +LECOFFRE_FRONT_DOCKER_SCRIPTS_DIR=$DOCKER_GLOBAL/scripts/$LECOFFRE_FRONT +LECOFFRE_FRONT_DOCKER_WORKING_DIR=/home/$LECOFFRE_FRONT + +LECOFFRE_FRONT_DOCKER_WORKING_DIR_CREATE="id -u $LECOFFRE_FRONT >/dev/null 2>&1 || adduser --disabled-password --gecos '' $LECOFFRE_FRONT; chown -R $LECOFFRE_FRONT:$LECOFFRE_FRONT /home/root/.$LECOFFRE_FRONT || echo 'warn: chown partiel (fichiers bind-mount Windows)'; exec \"$@\"" +LECOFFRE_FRONT_URL_ROUTE=/$LECOFFRE_FRONT +LECOFFRE_FRONT_URL=$ROOT_URL_INTERNAL\$LECOFFRE_FRONT_DOCKER_NAME:$LECOFFRE_FRONT_DOCKER_PORT +LECOFFRE_FRONT_URL_EXTERNAL=$ROOT_URL$LECOFFRE_FRONT_URL_ROUTE +LECOFFRE_FRONT_URL_WS=$ROOT_URL_WS_INTERNAL\$LECOFFRE_FRONT_DOCKER_PORT +LECOFFRE_FRONT_URL_WS_EXTERNAL=$ROOT_URL_WS\ws + +LECOFFRE_FRONT_HEALTHCHECK=$lecoffre-front_CONFS_DIR/healthcheck_$LECOFFRE_FRONT.sh +LECOFFRE_FRONT_DOCKER_SERVICE=" + $LECOFFRE_FRONT_DOCKER_NAME: + image: $LECOFFRE_FRONT_DOCKER_IMAGE + container_name: $LECOFFRE_FRONT_DOCKER_NAME + working_dir: /$LECOFFRE_FRONT_DOCKER_NAME + ports: + - \"0.0.0.0:$LECOFFRE_FRONT_EXTERNAL_PORT\" + - \"0.0.0.0:$LECOFFRE_FRONT_PORT\" + - \"0.0.0.0:$LECOFFRE_FRONT_PORT2\" + - \"0.0.0.0:$LECOFFRE_FRONT_PORT3\" + volumes: + - $LECOFFRE_FRONT_CONFS_DIR=$LECOFFRE_FRONT_DOCKER_CONFS_DIR + - $LECOFFRE_FRONT_LOGS_DIR=$LECOFFRE_FRONT_DOCKER_LOGS_DIR + - $LECOFFRE_FRONT_RUNS_DIR=$LECOFFRE_FRONT_DOCKER_RUNS_DIR + - $LECOFFRE_FRONT_DATAS_DIR=$LECOFFRE_FRONT_DOCKER_DATAS_DIR + - $LECOFFRE_FRONT_BACKUPS_DIR=$LECOFFRE_FRONT_DOCKER_BACKUPS_DIR + - $LECOFFRE_FRONT_SCRIPTS_DIR=$LECOFFRE_FRONT_DOCKER_SCRIPTS_DIR + networks: + btcnet: + aliases: + - $LECOFFRE_FRONT_DOCKER_NAME + user: root + entrypoint: > + /bin/sh -c \"$LECOFFRE_FRONT_DOCKER_WORKING_DIR_CREATE\" + healthcheck: + test: [\"CMD\", \"sh\", \"$LECOFFRE_FRONT_HEALTHCHECK\"] + interval: 30s + timeout: 10s + retries: 50 + restart: unless-stopped" + +# ====== INTERNAL 4NK_WEB_STATUS ====== + +4NK_WEB_STATUS_DOCKER_NAME=$4NK_WEB_STATUS +4NK_WEB_STATUS_CONFS_DIR=$DOCKER_GLOBAL/confs/$4NK_WEB_STATUS +4NK_WEB_STATUS_LOGS_DIR=$DOCKER_GLOBAL/logs/$4NK_WEB_STATUS +4NK_WEB_STATUS_RUNS_DIR=$DOCKER_GLOBAL/runs/$4NK_WEB_STATUS +4NK_WEB_STATUS_DATAS_DIR=$DOCKER_GLOBAL/datas/$4NK_WEB_STATUS +4NK_WEB_STATUS_BACKUPS_DIR=$DOCKER_GLOBAL/backups/$4NK_WEB_STATUS +4NK_WEB_STATUS_SCRIPTS_DIR=$DOCKER_GLOBAL/scripts/$4NK_WEB_STATUS +4NK_WEB_STATUS_DOCKER_WORKING_DIR=/home/$4NK_WEB_STATUS + +4NK_WEB_STATUS_DOCKER_CONFS_DIR=$DOCKER_GLOBAL/confs/$4NK_WEB_STATUS +4NK_WEB_STATUS_DOCKER_LOGS_DIR=$DOCKER_GLOBAL/logs/$4NK_WEB_STATUS +4NK_WEB_STATUS_DOCKER_RUNS_DIR=$DOCKER_GLOBAL/runs/$4NK_WEB_STATUS +4NK_WEB_STATUS_DOCKER_DATAS_DIR=$DOCKER_GLOBAL/datas/$4NK_WEB_STATUS +4NK_WEB_STATUS_DOCKER_BACKUPS_DIR=$DOCKER_GLOBAL/backups/$4NK_WEB_STATUS +4NK_WEB_STATUS_DOCKER_SCRIPTS_DIR=$DOCKER_GLOBAL/scripts/$4NK_WEB_STATUS +4NK_WEB_STATUS_DOCKER_WORKING_DIR=/home/$4NK_WEB_STATUS + +4NK_WEB_STATUS_DOCKER_WORKING_DIR_CREATE="id -u $4NK_WEB_STATUS >/dev/null 2>&1 || adduser --disabled-password --gecos '' $4NK_WEB_STATUS; chown -R $4NK_WEB_STATUS:$4NK_WEB_STATUS /home/root/.$4NK_WEB_STATUS || echo 'warn: chown partiel (fichiers bind-mount Windows)'; exec \"$@\"" +4NK_WEB_STATUS_URL_ROUTE=/$4NK_WEB_STATUS +4NK_WEB_STATUS_URL=$ROOT_URL_INTERNAL\$4NK_WEB_STATUS_DOCKER_NAME:$4NK_WEB_STATUS_DOCKER_PORT +4NK_WEB_STATUS_URL_EXTERNAL=$ROOT_URL$4NK_WEB_STATUS_URL_ROUTE +4NK_WEB_STATUS_URL_WS=$ROOT_URL_WS_INTERNAL\$4NK_WEB_STATUS_DOCKER_PORT +4NK_WEB_STATUS_URL_WS_EXTERNAL=$ROOT_URL_WS\ws + +4NK_WEB_STATUS_HEALTHCHECK=$lecoffre-front_CONFS_DIR/healthcheck_$4NK_WEB_STATUS.sh +4NK_WEB_STATUS_DOCKER_SERVICE=" + $4NK_WEB_STATUS_DOCKER_NAME: + image: $4NK_WEB_STATUS_DOCKER_IMAGE + container_name: $4NK_WEB_STATUS_DOCKER_NAME + working_dir: /$4NK_WEB_STATUS_DOCKER_NAME + ports: + - \"0.0.0.0:$4NK_WEB_STATUS_EXTERNAL_PORT\" + - \"0.0.0.0:$4NK_WEB_STATUS_PORT\" + - \"0.0.0.0:$4NK_WEB_STATUS_PORT2\" + - \"0.0.0.0:$4NK_WEB_STATUS_PORT3\" + volumes: + - $4NK_WEB_STATUS_CONFS_DIR=$4NK_WEB_STATUS_DOCKER_CONFS_DIR + - $4NK_WEB_STATUS_LOGS_DIR=$4NK_WEB_STATUS_DOCKER_LOGS_DIR + - $4NK_WEB_STATUS_RUNS_DIR=$4NK_WEB_STATUS_DOCKER_RUNS_DIR + - $4NK_WEB_STATUS_DATAS_DIR=$4NK_WEB_STATUS_DOCKER_DATAS_DIR + - $4NK_WEB_STATUS_BACKUPS_DIR=$4NK_WEB_STATUS_DOCKER_BACKUPS_DIR + - $4NK_WEB_STATUS_SCRIPTS_DIR=$4NK_WEB_STATUS_DOCKER_SCRIPTS_DIR + networks: + btcnet: + aliases: + - $4NK_WEB_STATUS_DOCKER_NAME + user: root + entrypoint: > + /bin/sh -c \"$4NK_WEB_STATUS_DOCKER_WORKING_DIR_CREATE\" + healthcheck: + test: [\"CMD\", \"sh\", \"$4NK_WEB_STATUS_HEALTHCHECK\"] + interval: 30s + timeout: 10s + retries: 50 + restart: unless-stopped" + +# ====== EXTERNAL BOOSTRAP ====== + +BOOSTRAP_URL_EXTERNAL=https://${VARIABLE}_HOST:${VARIABLE}_EXTERNAL_PORT${VARIABLE}_URL_ROUTE +BOOSTRAP_URL_WS_EXTERNAL=wss://${VARIABLE}_HOST:${VARIABLE}_EXTERNAL_PORT\ws + +# ====== EXTERNAL LECOFFRE_BACK_MINI ====== + +LECOFFRE_BACK_MINI_URL_EXTERNAL=https://${VARIABLE}_HOST:${VARIABLE}_EXTERNAL_PORT${VARIABLE}_URL_ROUTE +LECOFFRE_BACK_MINI_URL_WS_EXTERNAL=wss://${VARIABLE}_HOST:${VARIABLE}_EXTERNAL_PORT\ws + diff --git a/storage/dev/.env.post b/storage/dev/.env.post new file mode 100644 index 0000000..4fe9afe --- /dev/null +++ b/storage/dev/.env.post @@ -0,0 +1,11 @@ +# CONTEXT COMPOSIT URL + +SDK_RELAY_BOOSTRAP_URL=$BOOSTRAP_URL_WS_EXTERNAL +RELAY_URLS=$SDK_RELAY_URL,$SDK_RELAY_BOOSTRAP_URL +BITCOIN_RPC_URL=http://$BITCOIN_DOCKER_NAME:$BITCOIN_SIGNET_RPC_PORT +ZMQ_URL=tcp://$BITCOIN_DOCKER_NAME:$BITCOIN_ZMQPBUBHASHBLOCK_PORT + +# DB + +CERTIFICATOR_POSTGRESQL_CONNECT=$POSTGRESQL_USER:$POSTGRESQL_PASSWORD//certificator:@certificator_db/certificator_db +CERTIFICATOR_REDIS_CONNECT=redis://certificator_redis:$REDIS_PORT diff --git a/storage/dev/4NK_miner/.env b/storage/dev/4NK_miner/.env index d834550..46c2073 100644 --- a/storage/dev/4NK_miner/.env +++ b/storage/dev/4NK_miner/.env @@ -2,4 +2,3 @@ # COINBASE_ADDRESS= # Générer automatiquement RELAY_ADDRESS=tsp1qqd8k3twmuq3awxjmfukhma36j4la8gzsa8t0dgfms3cfglt2gkz6wqsqpd3d2q4quq59agtyfsr7gj9t07qt0nlrlrzgmhvpn5enfm76fud6sm0y REWARD_SPLIT_RATIO=0.5 - diff --git a/storage/dev/docker-compose.yml b/storage/dev/docker-compose.yml new file mode 100644 index 0000000..e79b590 --- /dev/null +++ b/storage/dev/docker-compose.yml @@ -0,0 +1,492 @@ + +services: + + + + $REDIS_DOCKER_NAME: + image: $REDIS_DOCKER_IMAGE + container_name: $REDIS_DOCKER_NAME + working_dir: /$REDIS_DOCKER_NAME + ports: + - \"0.0.0.0:$REDIS_EXTERNAL_PORT\" + - \"0.0.0.0:$REDIS_PORT\" + - \"0.0.0.0:$REDIS_PORT2\" + - \"0.0.0.0:$REDIS_PORT3\" + volumes: + - $REDIS_CONFS_DIR=$REDIS_DOCKER_CONFS_DIR + - $REDIS_LOGS_DIR=$REDIS_DOCKER_LOGS_DIR + - $REDIS_RUNS_DIR=$REDIS_DOCKER_RUNS_DIR + - $REDIS_DATAS_DIR=$REDIS_DOCKER_DATAS_DIR + - $REDIS_BACKUPS_DIR=$REDIS_DOCKER_BACKUPS_DIR + - $REDIS_SCRIPTS_DIR=$REDIS_DOCKER_SCRIPTS_DIR + networks: + btcnet: + aliases: + - $REDIS_DOCKER_NAME + user: root + entrypoint: \> + /bin/sh -c \"$REDIS_DOCKER_WORKING_DIR_CREATE\" + healthcheck: + test: [\"CMD\", \"sh\", \"$REDIS_HEALTHCHECK\"] + interval: 30s + timeout: 10s + retries: 50 + restart: unless-stopped" + + $POSTGRESQL_DOCKER_NAME: + image: $POSTGRESQL_DOCKER_IMAGE + container_name: $POSTGRESQL_DOCKER_NAME + working_dir: /$POSTGRESQL_DOCKER_NAME + ports: + - \"0.0.0.0:$POSTGRESQL_EXTERNAL_PORT\" + - \"0.0.0.0:$POSTGRESQL_PORT\" + - \"0.0.0.0:$POSTGRESQL_PORT2\" + - \"0.0.0.0:$POSTGRESQL_PORT3\" + volumes: + - $POSTGRESQL_CONFS_DIR=$POSTGRESQL_DOCKER_CONFS_DIR + - $POSTGRESQL_LOGS_DIR=$POSTGRESQL_DOCKER_LOGS_DIR + - $POSTGRESQL_RUNS_DIR=$POSTGRESQL_DOCKER_RUNS_DIR + - $POSTGRESQL_DATAS_DIR=$POSTGRESQL_DOCKER_DATAS_DIR + - $POSTGRESQL_BACKUPS_DIR=$POSTGRESQL_DOCKER_BACKUPS_DIR + - $POSTGRESQL_SCRIPTS_DIR=$POSTGRESQL_DOCKER_SCRIPTS_DIR + networks: + btcnet: + aliases: + - $POSTGRESQL_DOCKER_NAME + user: root + entrypoint: \> + /bin/sh -c \"$POSTGRESQL_DOCKER_WORKING_DIR_CREATE\" + healthcheck: + test: [\"CMD\", \"sh\", \"$POSTGRESQL_HEALTHCHECK\"] + interval: 30s + timeout: 10s + retries: 50 + restart: unless-stopped" + + $LOKI_DOCKER_NAME: + image: $LOKI_DOCKER_IMAGE + container_name: $LOKI_DOCKER_NAME + working_dir: /$LOKI_DOCKER_NAME + ports: + - \"0.0.0.0:$LOKI_EXTERNAL_PORT\" + - \"0.0.0.0:$LOKI_PORT\" + - \"0.0.0.0:$LOKI_PORT2\" + - \"0.0.0.0:$LOKI_PORT3\" + volumes: + - $LOKI_CONFS_DIR=$LOKI_DOCKER_CONFS_DIR + - $LOKI_LOGS_DIR=$LOKI_DOCKER_LOGS_DIR + - $LOKI_RUNS_DIR=$LOKI_DOCKER_RUNS_DIR + - $LOKI_DATAS_DIR=$LOKI_DOCKER_DATAS_DIR + - $LOKI_BACKUPS_DIR=$LOKI_DOCKER_BACKUPS_DIR + - $LOKI_SCRIPTS_DIR=$LOKI_DOCKER_SCRIPTS_DIR + networks: + btcnet: + aliases: + - $LOKI_DOCKER_NAME + user: root + entrypoint: \> + /bin/sh -c \"$LOKI_DOCKER_WORKING_DIR_CREATE\" + healthcheck: + test: [\"CMD\", \"sh\", \"$LOKI_HEALTHCHECK\"] + interval: 30s + timeout: 10s + retries: 50 + restart: unless-stopped" + + $PROMTAIL_DOCKER_NAME: + image: $PROMTAIL_DOCKER_IMAGE + container_name: $PROMTAIL_DOCKER_NAME + working_dir: /$PROMTAIL_DOCKER_NAME + ports: + - \"0.0.0.0:$PROMTAIL_EXTERNAL_PORT\" + - \"0.0.0.0:$PROMTAIL_PORT\" + - \"0.0.0.0:$PROMTAIL_PORT2\" + - \"0.0.0.0:$PROMTAIL_PORT3\" + volumes: + - $PROMTAIL_CONFS_DIR=$PROMTAIL_DOCKER_CONFS_DIR + - $PROMTAIL_LOGS_DIR=$PROMTAIL_DOCKER_LOGS_DIR + - $PROMTAIL_RUNS_DIR=$PROMTAIL_DOCKER_RUNS_DIR + - $PROMTAIL_DATAS_DIR=$PROMTAIL_DOCKER_DATAS_DIR + - $PROMTAIL_BACKUPS_DIR=$PROMTAIL_DOCKER_BACKUPS_DIR + - $PROMTAIL_SCRIPTS_DIR=$PROMTAIL_DOCKER_SCRIPTS_DIR + networks: + btcnet: + aliases: + - $PROMTAIL_DOCKER_NAME + user: root + entrypoint: \> + /bin/sh -c \"$PROMTAIL_DOCKER_WORKING_DIR_CREATE\" + healthcheck: + test: [\"CMD\", \"sh\", \"$PROMTAIL_HEALTHCHECK\"] + interval: 30s + timeout: 10s + retries: 50 + restart: unless-stopped" + + $GRAFANA_DOCKER_NAME: + image: $GRAFANA_DOCKER_IMAGE + container_name: $GRAFANA_DOCKER_NAME + working_dir: /$GRAFANA_DOCKER_NAME + ports: + - \"0.0.0.0:$GRAFANA_EXTERNAL_PORT\" + - \"0.0.0.0:$GRAFANA_PORT\" + - \"0.0.0.0:$GRAFANA_PORT2\" + - \"0.0.0.0:$GRAFANA_PORT3\" + volumes: + - $GRAFANA_CONFS_DIR=$GRAFANA_DOCKER_CONFS_DIR + - $GRAFANA_LOGS_DIR=$GRAFANA_DOCKER_LOGS_DIR + - $GRAFANA_RUNS_DIR=$GRAFANA_DOCKER_RUNS_DIR + - $GRAFANA_DATAS_DIR=$GRAFANA_DOCKER_DATAS_DIR + - $GRAFANA_BACKUPS_DIR=$GRAFANA_DOCKER_BACKUPS_DIR + - $GRAFANA_SCRIPTS_DIR=$GRAFANA_DOCKER_SCRIPTS_DIR + networks: + btcnet: + aliases: + - $GRAFANA_DOCKER_NAME + user: root + entrypoint: \> + /bin/sh -c \"$GRAFANA_DOCKER_WORKING_DIR_CREATE\" + healthcheck: + test: [\"CMD\", \"sh\", \"$GRAFANA_HEALTHCHECK\"] + interval: 30s + timeout: 10s + retries: 50 + restart: unless-stopped" + + $4NK_VAULT_DOCKER_NAME: + image: $4NK_VAULT_DOCKER_IMAGE + container_name: $4NK_VAULT_DOCKER_NAME + working_dir: /$4NK_VAULT_DOCKER_NAME + ports: + - \"0.0.0.0:$4NK_VAULT_EXTERNAL_PORT\" + - \"0.0.0.0:$4NK_VAULT_PORT\" + - \"0.0.0.0:$4NK_VAULT_PORT2\" + - \"0.0.0.0:$4NK_VAULT_PORT3\" + volumes: + - $4NK_VAULT_CONFS_DIR=$4NK_VAULT_DOCKER_CONFS_DIR + - $4NK_VAULT_LOGS_DIR=$4NK_VAULT_DOCKER_LOGS_DIR + - $4NK_VAULT_RUNS_DIR=$4NK_VAULT_DOCKER_RUNS_DIR + - $4NK_VAULT_DATAS_DIR=$4NK_VAULT_DOCKER_DATAS_DIR + - $4NK_VAULT_BACKUPS_DIR=$4NK_VAULT_DOCKER_BACKUPS_DIR + - $4NK_VAULT_SCRIPTS_DIR=$4NK_VAULT_DOCKER_SCRIPTS_DIR + networks: + btcnet: + aliases: + - $4NK_VAULT_DOCKER_NAME + user: root + entrypoint: \> + /bin/sh -c \"$4NK_VAULT_DOCKER_WORKING_DIR_CREATE\" + healthcheck: + test: [\"CMD\", \"sh\", \"$4NK_VAULT_HEALTHCHECK\"] + interval: 30s + timeout: 10s + retries: 50 + restart: unless-stopped" + + $TOR_DOCKER_NAME: + image: $TOR_DOCKER_IMAGE + container_name: $TOR_DOCKER_NAME + working_dir: /$TOR_DOCKER_NAME + ports: + - \"0.0.0.0:$TOR_EXTERNAL_PORT\" + - \"0.0.0.0:$TOR_PORT\" + - \"0.0.0.0:$TOR_PORT2\" + - \"0.0.0.0:$TOR_PORT3\" + volumes: + - $TOR_CONFS_DIR=$TOR_DOCKER_CONFS_DIR + - $TOR_LOGS_DIR=$TOR_DOCKER_LOGS_DIR + - $TOR_RUNS_DIR=$TOR_DOCKER_RUNS_DIR + - $TOR_DATAS_DIR=$TOR_DOCKER_DATAS_DIR + - $TOR_BACKUPS_DIR=$TOR_DOCKER_BACKUPS_DIR + - $TOR_SCRIPTS_DIR=$TOR_DOCKER_SCRIPTS_DIR + networks: + btcnet: + aliases: + - $TOR_DOCKER_NAME + user: root + entrypoint: \> + /bin/sh -c \"$TOR_DOCKER_WORKING_DIR_CREATE\" + healthcheck: + test: [\"CMD\", \"sh\", \"$TOR_HEALTHCHECK\"] + interval: 30s + timeout: 10s + retries: 50 + restart: unless-stopped" + + $BITCOIN_DOCKER_NAME: + image: $BITCOIN_DOCKER_IMAGE + container_name: $BITCOIN_DOCKER_NAME + working_dir: /$BITCOIN_DOCKER_NAME + ports: + - \"0.0.0.0:$BITCOIN_EXTERNAL_PORT\" + - \"0.0.0.0:$BITCOIN_PORT\" + - \"0.0.0.0:$BITCOIN_PORT2\" + - \"0.0.0.0:$BITCOIN_PORT3\" + volumes: + - $BITCOIN_CONFS_DIR=$BITCOIN_DOCKER_CONFS_DIR + - $BITCOIN_LOGS_DIR=$BITCOIN_DOCKER_LOGS_DIR + - $BITCOIN_RUNS_DIR=$BITCOIN_DOCKER_RUNS_DIR + - $BITCOIN_DATAS_DIR=$BITCOIN_DOCKER_DATAS_DIR + - $BITCOIN_BACKUPS_DIR=$BITCOIN_DOCKER_BACKUPS_DIR + - $BITCOIN_SCRIPTS_DIR=$BITCOIN_DOCKER_SCRIPTS_DIR + networks: + btcnet: + aliases: + - $BITCOIN_DOCKER_NAME + user: root + entrypoint: \> + /bin/sh -c \"$BITCOIN_DOCKER_WORKING_DIR_CREATE\" + healthcheck: + test: [\"CMD\", \"sh\", \"$BITCOIN_HEALTHCHECK\"] + interval: 30s + timeout: 10s + retries: 50 + restart: unless-stopped" + + $BLINDBIT_ORACLE_DOCKER_NAME: + image: $BLINDBIT_ORACLE_DOCKER_IMAGE + container_name: $BLINDBIT_ORACLE_DOCKER_NAME + working_dir: /$BLINDBIT_ORACLE_DOCKER_NAME + ports: + - \"0.0.0.0:$BLINDBIT_ORACLE_EXTERNAL_PORT\" + - \"0.0.0.0:$BLINDBIT_ORACLE_PORT\" + - \"0.0.0.0:$BLINDBIT_ORACLE_PORT2\" + - \"0.0.0.0:$BLINDBIT_ORACLE_PORT3\" + volumes: + - $BLINDBIT_ORACLE_CONFS_DIR=$BLINDBIT_ORACLE_DOCKER_CONFS_DIR + - $BLINDBIT_ORACLE_LOGS_DIR=$BLINDBIT_ORACLE_DOCKER_LOGS_DIR + - $BLINDBIT_ORACLE_RUNS_DIR=$BLINDBIT_ORACLE_DOCKER_RUNS_DIR + - $BLINDBIT_ORACLE_DATAS_DIR=$BLINDBIT_ORACLE_DOCKER_DATAS_DIR + - $BLINDBIT_ORACLE_BACKUPS_DIR=$BLINDBIT_ORACLE_DOCKER_BACKUPS_DIR + - $BLINDBIT_ORACLE_SCRIPTS_DIR=$BLINDBIT_ORACLE_DOCKER_SCRIPTS_DIR + networks: + btcnet: + aliases: + - $BLINDBIT_ORACLE_DOCKER_NAME + user: root + entrypoint: \> + /bin/sh -c \"$BLINDBIT_ORACLE_DOCKER_WORKING_DIR_CREATE\" + healthcheck: + test: [\"CMD\", \"sh\", \"$BLINDBIT_ORACLE_HEALTHCHECK\"] + interval: 30s + timeout: 10s + retries: 50 + restart: unless-stopped" + + $SDK_RELAY_DOCKER_NAME: + image: $SDK_RELAY_DOCKER_IMAGE + container_name: $SDK_RELAY_DOCKER_NAME + working_dir: /$SDK_RELAY_DOCKER_NAME + ports: + - \"0.0.0.0:$SDK_RELAY_EXTERNAL_PORT\" + - \"0.0.0.0:$SDK_RELAY_PORT\" + - \"0.0.0.0:$SDK_RELAY_PORT2\" + - \"0.0.0.0:$SDK_RELAY_PORT3\" + volumes: + - $SDK_RELAY_CONFS_DIR=$SDK_RELAY_DOCKER_CONFS_DIR + - $SDK_RELAY_LOGS_DIR=$SDK_RELAY_DOCKER_LOGS_DIR + - $SDK_RELAY_RUNS_DIR=$SDK_RELAY_DOCKER_RUNS_DIR + - $SDK_RELAY_DATAS_DIR=$SDK_RELAY_DOCKER_DATAS_DIR + - $SDK_RELAY_BACKUPS_DIR=$SDK_RELAY_DOCKER_BACKUPS_DIR + - $SDK_RELAY_SCRIPTS_DIR=$SDK_RELAY_DOCKER_SCRIPTS_DIR + networks: + btcnet: + aliases: + - $SDK_RELAY_DOCKER_NAME + user: root + entrypoint: \> + /bin/sh -c \"$SDK_RELAY_DOCKER_WORKING_DIR_CREATE\" + healthcheck: + test: [\"CMD\", \"sh\", \"$SDK_RELAY_HEALTHCHECK\"] + interval: 30s + timeout: 10s + retries: 50 + restart: unless-stopped" + + $SDK_STORAGE_DOCKER_NAME: + image: $SDK_STORAGE_DOCKER_IMAGE + container_name: $SDK_STORAGE_DOCKER_NAME + working_dir: /$SDK_STORAGE_DOCKER_NAME + ports: + - \"0.0.0.0:$SDK_STORAGE_EXTERNAL_PORT\" + - \"0.0.0.0:$SDK_STORAGE_PORT\" + - \"0.0.0.0:$SDK_STORAGE_PORT2\" + - \"0.0.0.0:$SDK_STORAGE_PORT3\" + volumes: + - $SDK_STORAGE_CONFS_DIR=$SDK_STORAGE_DOCKER_CONFS_DIR + - $SDK_STORAGE_LOGS_DIR=$SDK_STORAGE_DOCKER_LOGS_DIR + - $SDK_STORAGE_RUNS_DIR=$SDK_STORAGE_DOCKER_RUNS_DIR + - $SDK_STORAGE_DATAS_DIR=$SDK_STORAGE_DOCKER_DATAS_DIR + - $SDK_STORAGE_BACKUPS_DIR=$SDK_STORAGE_DOCKER_BACKUPS_DIR + - $SDK_STORAGE_SCRIPTS_DIR=$SDK_STORAGE_DOCKER_SCRIPTS_DIR + networks: + btcnet: + aliases: + - $SDK_STORAGE_DOCKER_NAME + user: root + entrypoint: \> + /bin/sh -c \"$SDK_STORAGE_DOCKER_WORKING_DIR_CREATE\" + healthcheck: + test: [\"CMD\", \"sh\", \"$SDK_STORAGE_HEALTHCHECK\"] + interval: 30s + timeout: 10s + retries: 50 + restart: unless-stopped" + + $IHM_CLIENT_DOCKER_NAME: + image: $IHM_CLIENT_DOCKER_IMAGE + container_name: $IHM_CLIENT_DOCKER_NAME + working_dir: /$IHM_CLIENT_DOCKER_NAME + ports: + - \"0.0.0.0:$IHM_CLIENT_EXTERNAL_PORT\" + - \"0.0.0.0:$IHM_CLIENT_PORT\" + - \"0.0.0.0:$IHM_CLIENT_PORT2\" + - \"0.0.0.0:$IHM_CLIENT_PORT3\" + volumes: + - $IHM_CLIENT_CONFS_DIR=$IHM_CLIENT_DOCKER_CONFS_DIR + - $IHM_CLIENT_LOGS_DIR=$IHM_CLIENT_DOCKER_LOGS_DIR + - $IHM_CLIENT_RUNS_DIR=$IHM_CLIENT_DOCKER_RUNS_DIR + - $IHM_CLIENT_DATAS_DIR=$IHM_CLIENT_DOCKER_DATAS_DIR + - $IHM_CLIENT_BACKUPS_DIR=$IHM_CLIENT_DOCKER_BACKUPS_DIR + - $IHM_CLIENT_SCRIPTS_DIR=$IHM_CLIENT_DOCKER_SCRIPTS_DIR + networks: + btcnet: + aliases: + - $IHM_CLIENT_DOCKER_NAME + user: root + entrypoint: \> + /bin/sh -c \"$IHM_CLIENT_DOCKER_WORKING_DIR_CREATE\" + healthcheck: + test: [\"CMD\", \"sh\", \"$IHM_CLIENT_HEALTHCHECK\"] + interval: 30s + timeout: 10s + retries: 50 + restart: unless-stopped" + + $4NK_CERTIFICATOR_DOCKER_NAME: + image: $4NK_CERTIFICATOR_DOCKER_IMAGE + container_name: $4NK_CERTIFICATOR_DOCKER_NAME + working_dir: /$4NK_CERTIFICATOR_DOCKER_NAME + ports: + - \"0.0.0.0:$4NK_CERTIFICATOR_EXTERNAL_PORT\" + - \"0.0.0.0:$4NK_CERTIFICATOR_PORT\" + - \"0.0.0.0:$4NK_CERTIFICATOR_PORT2\" + - \"0.0.0.0:$4NK_CERTIFICATOR_PORT3\" + volumes: + - $4NK_CERTIFICATOR_CONFS_DIR=$4NK_CERTIFICATOR_DOCKER_CONFS_DIR + - $4NK_CERTIFICATOR_LOGS_DIR=$4NK_CERTIFICATOR_DOCKER_LOGS_DIR + - $4NK_CERTIFICATOR_RUNS_DIR=$4NK_CERTIFICATOR_DOCKER_RUNS_DIR + - $4NK_CERTIFICATOR_DATAS_DIR=$4NK_CERTIFICATOR_DOCKER_DATAS_DIR + - $4NK_CERTIFICATOR_BACKUPS_DIR=$4NK_CERTIFICATOR_DOCKER_BACKUPS_DIR + - $4NK_CERTIFICATOR_SCRIPTS_DIR=$4NK_CERTIFICATOR_DOCKER_SCRIPTS_DIR + networks: + btcnet: + aliases: + - $4NK_CERTIFICATOR_DOCKER_NAME + user: root + entrypoint: \> + /bin/sh -c \"$4NK_CERTIFICATOR_DOCKER_WORKING_DIR_CREATE\" + healthcheck: + test: [\"CMD\", \"sh\", \"$4NK_CERTIFICATOR_HEALTHCHECK\"] + interval: 30s + timeout: 10s + retries: 50 + restart: unless-stopped" + + $4NK_MINER_DOCKER_NAME: + image: $4NK_MINER_DOCKER_IMAGE + container_name: $4NK_MINER_DOCKER_NAME + working_dir: /$4NK_MINER_DOCKER_NAME + ports: + - \"0.0.0.0:$4NK_MINER_EXTERNAL_PORT\" + - \"0.0.0.0:$4NK_MINER_PORT\" + - \"0.0.0.0:$4NK_MINER_PORT2\" + - \"0.0.0.0:$4NK_MINER_PORT3\" + volumes: + - $4NK_MINER_CONFS_DIR=$4NK_MINER_DOCKER_CONFS_DIR + - $4NK_MINER_LOGS_DIR=$4NK_MINER_DOCKER_LOGS_DIR + - $4NK_MINER_RUNS_DIR=$4NK_MINER_DOCKER_RUNS_DIR + - $4NK_MINER_DATAS_DIR=$4NK_MINER_DOCKER_DATAS_DIR + - $4NK_MINER_BACKUPS_DIR=$4NK_MINER_DOCKER_BACKUPS_DIR + - $4NK_MINER_SCRIPTS_DIR=$4NK_MINER_DOCKER_SCRIPTS_DIR + networks: + btcnet: + aliases: + - $4NK_MINER_DOCKER_NAME + user: root + entrypoint: \> + /bin/sh -c \"$4NK_MINER_DOCKER_WORKING_DIR_CREATE\" + healthcheck: + test: [\"CMD\", \"sh\", \"$4NK_MINER_HEALTHCHECK\"] + interval: 30s + timeout: 10s + retries: 50 + restart: unless-stopped" + + $LECOFFRE_FRONT_DOCKER_NAME: + image: $LECOFFRE_FRONT_DOCKER_IMAGE + container_name: $LECOFFRE_FRONT_DOCKER_NAME + working_dir: /$LECOFFRE_FRONT_DOCKER_NAME + ports: + - \"0.0.0.0:$LECOFFRE_FRONT_EXTERNAL_PORT\" + - \"0.0.0.0:$LECOFFRE_FRONT_PORT\" + - \"0.0.0.0:$LECOFFRE_FRONT_PORT2\" + - \"0.0.0.0:$LECOFFRE_FRONT_PORT3\" + volumes: + - $LECOFFRE_FRONT_CONFS_DIR=$LECOFFRE_FRONT_DOCKER_CONFS_DIR + - $LECOFFRE_FRONT_LOGS_DIR=$LECOFFRE_FRONT_DOCKER_LOGS_DIR + - $LECOFFRE_FRONT_RUNS_DIR=$LECOFFRE_FRONT_DOCKER_RUNS_DIR + - $LECOFFRE_FRONT_DATAS_DIR=$LECOFFRE_FRONT_DOCKER_DATAS_DIR + - $LECOFFRE_FRONT_BACKUPS_DIR=$LECOFFRE_FRONT_DOCKER_BACKUPS_DIR + - $LECOFFRE_FRONT_SCRIPTS_DIR=$LECOFFRE_FRONT_DOCKER_SCRIPTS_DIR + networks: + btcnet: + aliases: + - $LECOFFRE_FRONT_DOCKER_NAME + user: root + entrypoint: \> + /bin/sh -c \"$LECOFFRE_FRONT_DOCKER_WORKING_DIR_CREATE\" + healthcheck: + test: [\"CMD\", \"sh\", \"$LECOFFRE_FRONT_HEALTHCHECK\"] + interval: 30s + timeout: 10s + retries: 50 + restart: unless-stopped" + + $4NK_WEB_STATUS_DOCKER_NAME: + image: $4NK_WEB_STATUS_DOCKER_IMAGE + container_name: $4NK_WEB_STATUS_DOCKER_NAME + working_dir: /$4NK_WEB_STATUS_DOCKER_NAME + ports: + - \"0.0.0.0:$4NK_WEB_STATUS_EXTERNAL_PORT\" + - \"0.0.0.0:$4NK_WEB_STATUS_PORT\" + - \"0.0.0.0:$4NK_WEB_STATUS_PORT2\" + - \"0.0.0.0:$4NK_WEB_STATUS_PORT3\" + volumes: + - $4NK_WEB_STATUS_CONFS_DIR=$4NK_WEB_STATUS_DOCKER_CONFS_DIR + - $4NK_WEB_STATUS_LOGS_DIR=$4NK_WEB_STATUS_DOCKER_LOGS_DIR + - $4NK_WEB_STATUS_RUNS_DIR=$4NK_WEB_STATUS_DOCKER_RUNS_DIR + - $4NK_WEB_STATUS_DATAS_DIR=$4NK_WEB_STATUS_DOCKER_DATAS_DIR + - $4NK_WEB_STATUS_BACKUPS_DIR=$4NK_WEB_STATUS_DOCKER_BACKUPS_DIR + - $4NK_WEB_STATUS_SCRIPTS_DIR=$4NK_WEB_STATUS_DOCKER_SCRIPTS_DIR + networks: + btcnet: + aliases: + - $4NK_WEB_STATUS_DOCKER_NAME + user: root + entrypoint: \> + /bin/sh -c \"$4NK_WEB_STATUS_DOCKER_WORKING_DIR_CREATE\" + healthcheck: + test: [\"CMD\", \"sh\", \"$4NK_WEB_STATUS_HEALTHCHECK\"] + interval: 30s + timeout: 10s + retries: 50 + restart: unless-stopped" + +networks: + btcnet: + name: 4nk_node_btcnet + driver: bridge + ipam: + config: + - subnet: 172.20.0.0/16 diff --git a/storage/dev/generate_variables.sh b/storage/dev/generate_variables.sh new file mode 100755 index 0000000..1d850bb --- /dev/null +++ b/storage/dev/generate_variables.sh @@ -0,0 +1,162 @@ +#!/bin/bash + +# Script pour générer les variables Docker pour toutes les composantes + +# Fonction pour charger les fichiers d'environnement dans l'ordre +load_env_files() { + local env_files=(".env.secrets" ".env" ".env.auto" ".env.post") + + for env_file in "${env_files[@]}"; do + if [ -f "$env_file" ]; then + echo "Chargement de $env_file..." + # Charger en ignorant les erreurs de syntaxe + set -e + source "$env_file" 2>/dev/null || true + set +e + else + echo "Fichier $env_file non trouvé, ignoré." + fi + done +} + +# Charger les variables d'environnement dans l'ordre +load_env_files + +rm -rf .env.auto docker-compose.yml + +echo " +services: + +" >> docker-compose.yml + +# Liste des variables/composantes + + +# Fonction pour générer les variables pour une composante +generate_variables() { + local VARIABLE="$1" + + echo "# ====== INTERNAL $VARIABLE ======" + echo "" + + echo "${VARIABLE}_DOCKER_NAME=\$${VARIABLE}" + echo "${VARIABLE}_CONFS_DIR=\$DOCKER_GLOBAL/confs/\$${VARIABLE}" + echo "${VARIABLE}_LOGS_DIR=\$DOCKER_GLOBAL/logs/\$${VARIABLE}" + echo "${VARIABLE}_RUNS_DIR=\$DOCKER_GLOBAL/runs/\$${VARIABLE}" + echo "${VARIABLE}_DATAS_DIR=\$DOCKER_GLOBAL/datas/\$${VARIABLE}" + echo "${VARIABLE}_BACKUPS_DIR=\$DOCKER_GLOBAL/backups/\$${VARIABLE}" + echo "${VARIABLE}_SCRIPTS_DIR=\$DOCKER_GLOBAL/scripts/\$${VARIABLE}" + echo "${VARIABLE}_DOCKER_WORKING_DIR=/home/\$${VARIABLE}" + echo "" + + echo "${VARIABLE}_DOCKER_CONFS_DIR=\$DOCKER_GLOBAL/confs/\$${VARIABLE}" + echo "${VARIABLE}_DOCKER_LOGS_DIR=\$DOCKER_GLOBAL/logs/\$${VARIABLE}" + echo "${VARIABLE}_DOCKER_RUNS_DIR=\$DOCKER_GLOBAL/runs/\$${VARIABLE}" + echo "${VARIABLE}_DOCKER_DATAS_DIR=\$DOCKER_GLOBAL/datas/\$${VARIABLE}" + echo "${VARIABLE}_DOCKER_BACKUPS_DIR=\$DOCKER_GLOBAL/backups/\$${VARIABLE}" + echo "${VARIABLE}_DOCKER_SCRIPTS_DIR=\$DOCKER_GLOBAL/scripts/\$${VARIABLE}" + echo "${VARIABLE}_DOCKER_WORKING_DIR=/home/\$${VARIABLE}" + echo "" + + echo "${VARIABLE}_DOCKER_WORKING_DIR_CREATE=\"id -u \$${VARIABLE} >/dev/null 2>&1 || adduser --disabled-password --gecos '' \$${VARIABLE}; chown -R \$${VARIABLE}:\$${VARIABLE} /home/root/.\$${VARIABLE} || echo 'warn: chown partiel (fichiers bind-mount Windows)'; exec \\\"\$@\\\"\"" + echo "${VARIABLE}_URL_ROUTE=/\$${VARIABLE}" + echo "${VARIABLE}_URL=\$ROOT_URL_INTERNAL\\\$${VARIABLE}_DOCKER_NAME:\$${VARIABLE}_DOCKER_PORT" + echo "${VARIABLE}_URL_EXTERNAL=\$ROOT_URL\$${VARIABLE}_URL_ROUTE" + echo "${VARIABLE}_URL_WS=\$ROOT_URL_WS_INTERNAL\\\$${VARIABLE}_DOCKER_PORT" + echo "${VARIABLE}_URL_WS_EXTERNAL=\$ROOT_URL_WS\ws" + echo "" + + echo "${VARIABLE}_HEALTHCHECK=\$lecoffre-front_CONFS_DIR/healthcheck_\$${VARIABLE}.sh" + echo "${VARIABLE}_DOCKER_SERVICE=\" + \$${VARIABLE}_DOCKER_NAME: + image: \$${VARIABLE}_DOCKER_IMAGE + container_name: \$${VARIABLE}_DOCKER_NAME + working_dir: /\$${VARIABLE}_DOCKER_NAME + ports: + - \\\"0.0.0.0:\$${VARIABLE}_EXTERNAL_PORT\\\" + - \\\"0.0.0.0:\$${VARIABLE}_PORT\\\" + - \\\"0.0.0.0:\$${VARIABLE}_PORT2\\\" + - \\\"0.0.0.0:\$${VARIABLE}_PORT3\\\" + volumes: + - \$${VARIABLE}_CONFS_DIR=\$${VARIABLE}_DOCKER_CONFS_DIR + - \$${VARIABLE}_LOGS_DIR=\$${VARIABLE}_DOCKER_LOGS_DIR + - \$${VARIABLE}_RUNS_DIR=\$${VARIABLE}_DOCKER_RUNS_DIR + - \$${VARIABLE}_DATAS_DIR=\$${VARIABLE}_DOCKER_DATAS_DIR + - \$${VARIABLE}_BACKUPS_DIR=\$${VARIABLE}_DOCKER_BACKUPS_DIR + - \$${VARIABLE}_SCRIPTS_DIR=\$${VARIABLE}_DOCKER_SCRIPTS_DIR + networks: + btcnet: + aliases: + - \$${VARIABLE}_DOCKER_NAME + user: root + entrypoint: > + /bin/sh -c \\\"\$${VARIABLE}_DOCKER_WORKING_DIR_CREATE\\\" + healthcheck: + test: [\\\"CMD\\\", \\\"sh\\\", \\\"\$${VARIABLE}_HEALTHCHECK\\\"] + interval: 30s + timeout: 10s + retries: 50 + restart: unless-stopped\"" + echo " + \$${VARIABLE}_DOCKER_NAME: + image: \$${VARIABLE}_DOCKER_IMAGE + container_name: \$${VARIABLE}_DOCKER_NAME + working_dir: /\$${VARIABLE}_DOCKER_NAME + ports: + - \\\"0.0.0.0:\$${VARIABLE}_EXTERNAL_PORT\\\" + - \\\"0.0.0.0:\$${VARIABLE}_PORT\\\" + - \\\"0.0.0.0:\$${VARIABLE}_PORT2\\\" + - \\\"0.0.0.0:\$${VARIABLE}_PORT3\\\" + volumes: + - \$${VARIABLE}_CONFS_DIR=\$${VARIABLE}_DOCKER_CONFS_DIR + - \$${VARIABLE}_LOGS_DIR=\$${VARIABLE}_DOCKER_LOGS_DIR + - \$${VARIABLE}_RUNS_DIR=\$${VARIABLE}_DOCKER_RUNS_DIR + - \$${VARIABLE}_DATAS_DIR=\$${VARIABLE}_DOCKER_DATAS_DIR + - \$${VARIABLE}_BACKUPS_DIR=\$${VARIABLE}_DOCKER_BACKUPS_DIR + - \$${VARIABLE}_SCRIPTS_DIR=\$${VARIABLE}_DOCKER_SCRIPTS_DIR + networks: + btcnet: + aliases: + - \$${VARIABLE}_DOCKER_NAME + user: root + entrypoint: \> + /bin/sh -c \\\"\$${VARIABLE}_DOCKER_WORKING_DIR_CREATE\\\" + healthcheck: + test: [\\\"CMD\\\", \\\"sh\\\", \\\"\$${VARIABLE}_HEALTHCHECK\\\"] + interval: 30s + timeout: 10s + retries: 50 + restart: unless-stopped\"" >> docker-compose.yml + echo "" +} + +function generate_variables_external() { + local VARIABLE="$1" + + echo "# ====== EXTERNAL $VARIABLE ======" + echo "" + echo "${VARIABLE}_URL_EXTERNAL=https://\${VARIABLE}_HOST:\${VARIABLE}_EXTERNAL_PORT\${VARIABLE}_URL_ROUTE" + echo "${VARIABLE}_URL_WS_EXTERNAL=wss://\${VARIABLE}_HOST:\${VARIABLE}_EXTERNAL_PORT\ws" + echo "" +} + +# Générer les variables pour toutes les composants + +for VARIABLE in "${SERVICES[@]}"; do + generate_variables "$VARIABLE" >> .env.auto +done + +# Générer les variables pour toutes les composants externes + +for VARIABLE in "${SERVICES_EXTERNAL[@]}"; do + generate_variables_external "$VARIABLE" >> .env.auto +done + +echo " +networks: + btcnet: + name: 4nk_node_btcnet + driver: bridge + ipam: + config: + - subnet: 172.20.0.0/16" >> docker-compose.yml \ No newline at end of file diff --git a/storage/dev/lecoffre_node/.env b/storage/dev/lecoffre_node/.env index 1213d65..62c5912 100644 --- a/storage/dev/lecoffre_node/.env +++ b/storage/dev/lecoffre_node/.env @@ -45,11 +45,11 @@ LECOFFRE_NODE_SCRIPTS_DIR=$ROOT_DIR/$DOCKER_GLOBAL/scripts CERT_PATH=/etc/letsencrypt/live/$HOST # Noms internes -TOR_DOCKER_HOST=tor-proxy -BITCOIN_DOCKER_HOST=bitcoin-signet +TOR_DOCKER_NAME=tor-proxy +BITCOIN_DOCKER_NAME=bitcoin-signet BLINDBIT_DOCKER_NAME=blindbit-oracle -STORAGE_DOCKER_HOST=storage -LOKI_DOCKER_HOST=loki +SDK_STORAGE_DOCKER_NAME=storage +LOKI_DOCKER_NAME=loki # Ports des services TOR_PORT=9050 @@ -100,11 +100,11 @@ RELAY_BOOSTRAP_URL=wss://$BOOTSTRAP_HOST$URL_ROUTE_RELAY RELAY_URLS=$RELAY_URL,$RELAY_BOOSTRAP_URL SIGNER_URL=https://dev3.$DOMAIN$URL_ROUTE_SIGNER STORAGE_URL=$ROOT_URL$URL_ROUTE_STORAGE -LOKI_URL=http://$LOKI_DOCKER_HOST:$LOKI_PORT +LOKI_URL=http://$LOKI_DOCKER_NAME:$LOKI_PORT BLINDBIT_URL=http://$BLINDBIT_DOCKER_NAME:$BLINDBIT_PORT -BITCOIN_RPC_URL=http://$BITCOIN_DOCKER_HOST:$BITCOIN_SIGNET_RPC_PORT +BITCOIN_RPC_URL=http://$BITCOIN_DOCKER_NAME:$BITCOIN_SIGNET_RPC_PORT GRAFANA_URL=$ROOT_URL$URL_ROUTE_GRAFAN -ZMQ_URL=tcp://$BITCOIN_DOCKER_HOST:$BITCOIN_ZMQPBUBHASHBLOCK_PORT +ZMQ_URL=tcp://$BITCOIN_DOCKER_NAME:$BITCOIN_ZMQPBUBHASHBLOCK_PORT # Variables BITCOIN_WALLET_NAME=mining diff --git a/storage/dev/lecoffre_node/docker-compose.yml b/storage/dev/lecoffre_node/docker-compose.yml index 05fee1b..cbc9ebf 100644 --- a/storage/dev/lecoffre_node/docker-compose.yml +++ b/storage/dev/lecoffre_node/docker-compose.yml @@ -1,14 +1,15 @@ services: - tor: + $TOR_DOCKER_NAME: image: btcpayserver/tor:0.4.8.10 - container_name: $TOR_DOCKER_HOST + container_name: $TOR_DOCKER_NAME + working_dir: /$TOR_DOCKER_NAME volumes: - - $TOR_LOGS_DIR/tor:/var/log/tor + - $TOR_LOGS_DIR:/var/log/tor - $LECOFFRE_NODE_SCRIPTS_DIR:/scripts:ro networks: btcnet: aliases: - - tor + - $TOR_DOCKER_NAME healthcheck: test: ["CMD", "sh", "$LECOFFRE_NODE_SCRIPTS_DIR/tor-progress.sh"] interval: 10s @@ -16,11 +17,12 @@ services: retries: 50 restart: unless-stopped - bitcoin: + $BITCOIN_DOCKER_NAME: build: ./bitcoin - container_name: $BITCOIN_DOCKER_HOST + container_name: $BITCOIN_DOCKER_NAME + working_dir: /$BITCOIN_DOCKER_NAME depends_on: - tor: + $TOR_DOCKER_NAME: condition: service_healthy volumes: - $BITCOIN_DATA_DIR:/home/bitcoin/.bitcoin @@ -30,7 +32,7 @@ services: networks: btcnet: aliases: - - $BITCOIN_DOCKER_HOST + - $BITCOIN_DOCKER_NAME user: root entrypoint: > /bin/sh -c " @@ -43,9 +45,10 @@ services: retries: 50 restart: unless-stopped - blindbit: + $BLINDBIT_DOCKER_NAME: image: git.4nkweb.com/4nk/blindbit-oracle:fixed-source container_name: $BLINDBIT_DOCKER_NAME + working_dir: /$BLINDBIT_DOCKER_NAME depends_on: bitcoin: condition: service_healthy @@ -53,8 +56,7 @@ services: - $BLINDBIT_DATA_DIR:/root/.blindbit-oracle # - $LECOFFRE_NODE_CONFS_DIR/blindbit-oracle/blindbit.toml:/tmp/blindbit.toml:ro - $BITCOIN_DATA_DIR:/home/bitcoin/.bitcoin - - $LECOFFRE_NODE_LOGS_DIR/blindbit:/var/log/blindbit - - $LECOFFRE_NODE_SCRIPTS_DIR:$LECOFFRE_NODE_SCRIPTS_DIR:ro + - $BLINDBIT_LOGS_DIR:/var/log/blindbit entrypoint: > sh -c "mkdir -p /root/.blindbit-oracle && if [ ! -f /root/.blindbit-oracle/blindbit.toml ]; then @@ -76,34 +78,31 @@ services: start_period: 180s restart: unless-stopped - $SDK_RELAY_DOCKER_HOST: + $SDK_RELAY_DOCKER_NAME: image: git.4nkweb.com/4nk/sdk_relay:ext - container_name: $SDK_RELAY_DOCKER_HOST + container_name: $SDK_RELAY_DOCKER_NAME + working_dir: /$SDK_RELAY_DOCKER_NAME env_file: - - $LECOFFRE_NODE_CONFS_DIR/sdk_relay/.env + - $SDK_RELAY_CONF_DIR/.env depends_on: - blindbit: + $BLINDBIT_DOCKER_NAME: condition: service_healthy volumes: - - $LECOFFRE_NODE_CONFS_DIR/relay/.conf:/app/.conf:ro - - sdk_data:/app/.4nk - - bitcoin_data:/app/.bitcoin + - $SDK_RELAY_CONF_DIR/.conf:/SDK_RELAY_DOCKER_NAME/.conf:ro + - $SDK_RELAY_DATA_DIR:/SDK_RELAY_DOCKER_NAME/.4nk + - $BITCOIN_DATA_DIR:/SDK_RELAY_DOCKER_NAME/.bitcoin - $SDK_RELAY_LOGS_DIR:/var/log/sdk_relay - - $LECOFFRE_NODE_SCRIPTS_DIR:$LECOFFRE_NODE_SCRIPTS_DIR:ro ports: - "0.0.0.0:$SDK_RELAY_PORT" networks: btcnet: aliases: - - $SDK_RELAY_DOCKER_HOST + - $SDK_RELAY_DOCKER_NAME logging: driver: "json-file" options: max-size: "10m" max-file: "3" - environment: - - HOME=/app - - RUST_LOG=INFO healthcheck: test: ["CMD", "sh", "$LECOFFRE_NODE_SCRIPTS_DIR/sdk-relay-progress.sh"] interval: 30s @@ -111,12 +110,12 @@ services: retries: 50 restart: unless-stopped - lecoffre-front: + $LECOFFRE_FRONT_DOCKER_NAME: image: git.4nkweb.com/4nk/lecoffre-front:ext - container_name: lecoffre-front - working_dir: /leCoffre-front - # env_file: - # - $LECOFFRE_NODE_CONFS_DIR/lecoffre-front/.env + container_name: $LECOFFRE_FRONT_DOCKER_NAME + working_dir: /$LECOFFRE_FRONT_DOCKER_NAME + env_file: + - $LECOFFRE_NODE_CONFS_DIR/.env ports: - "0.0.0.0:$LECOFFRE_FRONT_EXTERNAL_PORT:8080" volumes: @@ -145,15 +144,8 @@ services: ihm_client: image: git.4nkweb.com/4nk/ihm_client:ext container_name: ihm_client - # env_file: - # - $LECOFFRE_NODE_CONFS_DIR/ihm_client/.env - environment: - - VITE_JWT_SECRET_KEY - - VITE_API_BASE_URL - - VITE_WS_URL - - VITE_STORAGE_URL - - VITE_SIGNER_URL - - VITE_BOOTSTRAPURL + env_file: + - $LECOFFRE_NODE_CONFS_DIR/ihm_client/.env ports: - "0.0.0.0:$IHM_CLIENT_EXTERNAL_PORT:3003" volumes: diff --git a/storage/dev/sdk_relay/.env b/storage/dev/sdk_relay/.env index 6f88f73..6e603f8 100644 --- a/storage/dev/sdk_relay/.env +++ b/storage/dev/sdk_relay/.env @@ -9,5 +9,6 @@ SDK_RELAY_BOOTSTRAP_FAUCET=https://$BOOTSTRAP_HOST/api/v1/faucet SDK_RELAY_CORE_URL=$BITCOIN_RPC_URL SDK_RELAY_NETWORK=signet -SDK_RELAY_ZMQ_URL=tcp://$BITCOIN_DOCKER_HOST:$BITCOIN_ZMQPBUBHASHBLOCK_PORT +SDK_RELAY_ZMQ_URL=tcp://$BITCOIN_DOCKER_NAME:$BITCOIN_ZMQPBUBHASHBLOCK_PORT SDK_RELAY_BITCOIN_DATA_DIR=$BITCOIN_DATA_DIR +HOME=/$SDK_RELAY_DOCKER_NAME \ No newline at end of file