feat: Mise à jour du système de templating avec ordre de chargement des fichiers d'environnement

- Mise à jour de l'API pour charger les fichiers .env dans l'ordre: .env.secrets -> .env -> .env.auto -> .env.post
- Ajout du script generate_variables.sh pour générer automatiquement les variables Docker
- Création des fichiers .env.auto et .env.post pour le templating complet
- Mise à jour de la documentation pour refléter le nouvel ordre de chargement
- Génération automatique du docker-compose.yml avec templates des services
- Support complet des variables emboîtées entre les fichiers d'environnement
This commit is contained in:
4NK Dev 2025-10-02 12:08:45 +00:00
parent 775fd78b36
commit 0bbd4a1b92
12 changed files with 1802 additions and 217 deletions

View File

@ -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:

View File

@ -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>/.env`
- **Fichier `.env.secrets`** : `storage/<env>/.env.secrets` (mots de passe, clés API, etc.)
### Sources de variables (ordre de chargement)
1. **Fichier `.env.secrets`** : `storage/<env>/.env.secrets` (secrets de base)
2. **Fichier `.env`** : `storage/<env>/.env` (variables de configuration, peut utiliser les secrets)
3. **Fichier `.env.auto`** : `storage/<env>/.env.auto` (variables générées automatiquement, peut utiliser les précédentes)
4. **Fichier `.env.post`** : `storage/<env>/.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
```

View File

@ -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

938
storage/dev/.env.auto Normal file
View File

@ -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

11
storage/dev/.env.post Normal file
View File

@ -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

View File

@ -2,4 +2,3 @@
# COINBASE_ADDRESS= # Générer automatiquement
RELAY_ADDRESS=tsp1qqd8k3twmuq3awxjmfukhma36j4la8gzsa8t0dgfms3cfglt2gkz6wqsqpd3d2q4quq59agtyfsr7gj9t07qt0nlrlrzgmhvpn5enfm76fud6sm0y
REWARD_SPLIT_RATIO=0.5

View File

@ -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

162
storage/dev/generate_variables.sh Executable file
View File

@ -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

View File

@ -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

View File

@ -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:

View File

@ -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