4NK Dev 5ed74c9259 fix: traitement de tous les fichiers sauf _keys
- Modification du script replace_variables_and_copy.sh pour traiter TOUS les types de fichiers
- Exclusion explicite du répertoire _keys (répertoire sensible)
- Ajout du traitement des répertoires: git, monitoring, projects, supervisor
- Suppression des fichiers _keys précédemment copiés par erreur
- Vérification: tous les fichiers templates/dev/ sont maintenant copiés vers storage/dev/ sauf _keys
2025-10-05 21:37:45 +00:00

340 lines
12 KiB
YAML

services:
tor-proxy:
image: btcpayserver/tor:0.4.8.10
container_name: tor-proxy
working_dir: /tor-proxy
volumes:
- /home/debian/_4NK_env/DOCKER_GLOBAL_NAME/logs/tor-proxy:/var/log/tor
- /home/debian/_4NK_env/projects/lecoffre/lecoffre_node/scripts/:/scripts:ro
networks:
btcnet:
aliases:
- tor-proxy
healthcheck:
test: ["CMD", "sh", "/home/debian/_4NK_env/projects/lecoffre/lecoffre_node/scripts//tor-progress.sh"]
interval: 10s
timeout: 5s
retries: 50
restart: unless-stopped
bitcoin:
build: ./bitcoin
container_name: bitcoin
working_dir: /bitcoin
depends_on:
tor-proxy:
condition: service_healthy
volumes:
- bitcoin_DATA_DIR:/home/bitcoin/.bitcoin
- bitcoin_CONF_DIR/bitcoin.conf:/etc/bitcoin/bitcoin.conf
- /home/debian/_4NK_env/DOCKER_GLOBAL_NAME/logs/bitcoin:/var/log/bitcoin
- /home/debian/_4NK_env/projects/lecoffre/lecoffre_node/scripts/:/scripts:ro
networks:
btcnet:
aliases:
- bitcoin
user: root
entrypoint: >
/bin/sh -c "
chown -R bitcoin:bitcoin /home/bitcoin/.bitcoin || echo 'warn: chown partiel (fichiers bind-mount Windows)';
exec su-exec bitcoin bitcoind -conf=/etc/bitcoin/bitcoin.conf -signet"
healthcheck:
test: ["CMD", "sh", "/home/debian/_4NK_env/projects/lecoffre/lecoffre_node/scripts//bitcoin-progress.sh"]
interval: 30s
timeout: 10s
retries: 50
restart: unless-stopped
blindbit_oracle:
image: git._4NKweb.com/_4NK/blindbit-oracle:fixed-source
container_name: blindbit_oracle
working_dir: /blindbit_oracle
depends_on:
bitcoin:
condition: service_healthy
volumes:
- /home/debian/_4NK_env/projects/lecoffre/lecoffre_node/datas/blindbit_oracle:/root/.blindbit-oracle
# - /home/debian/_4NK_env/projects/lecoffre/lecoffre_node/confs//blindbit-oracle/blindbit.toml:/tmp/blindbit.toml:ro
- bitcoin_DATA_DIR:/home/bitcoin/.bitcoin
- /home/debian/_4NK_env/projects/lecoffre/lecoffre_node/logs/blindbit_oracle:/var/log/blindbit
entrypoint: >
sh -c "mkdir -p /root/.blindbit-oracle &&
if [ ! -f /root/.blindbit-oracle/blindbit.toml ]; then
cp /tmp/blindbit.toml /root/.blindbit-oracle/blindbit.toml;
fi &&
echo 'Starting BlindBit Oracle with corrected host binding...' &&
exec ./main -datadir /root/.blindbit-oracle"
networks:
btcnet:
aliases:
- blindbit_oracle
ports:
- "0.0.0.0:"
healthcheck:
test: ["CMD", "sh", "/home/debian/_4NK_env/projects/lecoffre/lecoffre_node/scripts//blindbit-progress.sh"]
interval: 10s
timeout: 5s
retries: 60
start_period: 180s
restart: unless-stopped
sdk_relay:
image: git._4NKweb.com/_4NK/sdk_relay:ext
container_name: sdk_relay
working_dir: /sdk_relay
env_file:
- sdk_relay_CONF_DIR/.env
depends_on:
blindbit_oracle:
condition: service_healthy
volumes:
- 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
- /home/debian/_4NK_env/DOCKER_GLOBAL_NAME/logs/sdk_relay:/var/log/sdk_relay
ports:
- "0.0.0.0:8080:8080"
networks:
btcnet:
aliases:
- sdk_relay
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
healthcheck:
test: ["CMD", "sh", "/home/debian/_4NK_env/projects/lecoffre/lecoffre_node/scripts//sdk-relay-progress.sh"]
interval: 30s
timeout: 10s
retries: 50
restart: unless-stopped
lecoffre-front:
image: git._4NKweb.com/_4NK/lecoffre-front:ext
container_name: lecoffre-front
working_dir: /lecoffre-front
env_file:
- /home/debian/_4NK_env/projects/lecoffre/lecoffre_node/confs//.env
ports:
- "0.0.0.0:lecoffre-front_EXTERNAL_PORT:8080"
volumes:
- /home/debian/_4NK_env/projects/lecoffre/lecoffre_node/logs//lecoffre-front:/var/log/lecoffre-front
networks:
btcnet:
aliases:
- lecoffre-front
depends_on:
ihm_client:
condition: service_healthy
sdk_storage:
condition: service_healthy
user: lecoffreuser
command: ["sh", "-c", "exec npm run start >> /var/log/lecoffre-front/stdout.log 2>&1"]
healthcheck:
test: ["CMD", "sh", "-c", "if ps aux | grep -v grep | grep next-server >/dev/null 2>&1; then echo 'LeCoffre Frontend ready: Next.js server running'; exit 0; else echo 'LeCoffre Frontend starting: Next.js server not yet ready'; exit 1; fi"]
interval: 30s
timeout: 10s
retries: 50
start_period: 30s
labels:
- "com.centurylinklabs.watchtower.enable=true"
restart: unless-stopped
ihm_client:
image: git._4NKweb.com/_4NK/ihm_client:ext
container_name: ihm_client
env_file:
- /home/debian/_4NK_env/projects/lecoffre/lecoffre_node/confs//ihm_client/.env
ports:
- "0.0.0.0:ihm_client_EXTERNAL_PORT:3003"
volumes:
- /home/debian/_4NK_env/projects/lecoffre/lecoffre_node/logs//ihm_client:/var/log/ihm_client
networks:
btcnet:
aliases:
- ihm_client
depends_on:
sdk_relay:
condition: service_healthy
sdk_storage:
condition: service_healthy
user: root
command: ["sh", "-c", "exec npm start >> /var/log/ihm_client/stdout.log 2>&1"]
healthcheck:
test: ["CMD", "sh", "-c", "if curl -f http://localhost:3003/ >/dev/null 2>&1; then echo 'IHM Client ready: Vite dev server responding'; exit 0; else echo 'IHM Client starting: Vite dev server not yet ready'; exit 1; fi"]
interval: 30s
timeout: 10s
retries: 50
start_period: 30s
labels:
- "com.centurylinklabs.watchtower.enable=true"
restart: unless-stopped
sdk_storage:
image: git._4NKweb.com/_4NK/sdk_storage:ext
container_name: sdk_storage
ports:
- "0.0.0.0:sdk_storage_EXTERNAL_PORT:8080"
volumes:
- sdk_storage_data:/app/data
- /home/debian/_4NK_env/projects/lecoffre/lecoffre_node/logs//sdk_storage:/var/log/sdk_storage
healthcheck:
test: ["CMD", "sh", "-c", "if curl -f http://localhost:8080/health >/dev/null 2>&1; then echo 'SDK Storage ready: API responding'; exit 0; else echo 'SDK Storage starting: API not yet ready'; exit 1; fi"]
interval: 30s
timeout: 10s
retries: 50
start_period: 30s
networks:
btcnet:
aliases:
- sdk_storage
labels:
- "com.centurylinklabs.watchtower.enable=true"
restart: unless-stopped
watchtower:
image: containrrr/watchtower
container_name: watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: --interval 30 --label-enable
networks:
- btcnet
restart: unless-stopped
signet_miner:
build:
context: ./miner
container_name: signet_miner
depends_on:
bitcoin:
condition: service_healthy
# env_file:
# - /home/debian/_4NK_env/projects/lecoffre/lecoffre_node/confs//lecoffre_node/.env
volumes:
- bitcoin_data:/bitcoin:ro
- /home/debian/_4NK_env/projects/lecoffre/lecoffre_node/logs//miner:/var/log/miner
networks:
btcnet:
aliases:
- signet_miner
profiles: ["miner"]
restart: unless-stopped
grafana:
image: grafana/grafana:latest
container_name: grafana
ports:
- "0.0.0.0:grafana_EXTERNAL_PORT:3000"
volumes:
- grafana_data:/var/lib/grafana
# - /home/debian/_4NK_env/projects/lecoffre/lecoffre_node/confs//grafana/provisioning:/etc/grafana/provisioning
# - /home/debian/_4NK_env/projects/lecoffre/lecoffre_node/confs//grafana/dashboards:/var/lib/grafana/dashboards
# - /home/debian/_4NK_env/projects/lecoffre/lecoffre_node/confs//grafana/grafana.ini:/etc/grafana/grafana.ini:ro
- /home/debian/_4NK_env/projects/lecoffre/lecoffre_node/logs/:/var/log/lecoffre:ro
environment:
- GF_SECURITY_ADMIN_PASSWORD=Fuy8ZfxQI2xdSdoB8wsGxNjyU
- GF_USERS_ALLOW_SIGN_UP=false
- GF_SERVER_ROOT_URL=http://\grafana:grafana_DOCKER_PORT/
- GF_PLUGINS_PREINSTALL_SYNC=grafana-clock-panel,grafana-simple-json-datasource
networks:
btcnet:
aliases:
- grafana
depends_on:
loki:
condition: service_healthy
promtail:
condition: service_healthy
healthcheck:
test: ["CMD", "sh", "-c", "if curl -f http://localhost:3000/api/health >/dev/null 2>&1; then echo 'Grafana ready: Dashboard service responding'; exit 0; else echo 'Grafana starting: Dashboard service not yet ready'; exit 1; fi"]
interval: 30s
timeout: 10s
retries: 50
start_period: 60s
labels:
- "com.centurylinklabs.watchtower.enable=true"
restart: unless-stopped
loki:
image: grafana/loki:latest
container_name: loki
ports:
- "0.0.0.0:loki_EXTERNAL_PORT:3100"
volumes:
- loki_data:/loki
# - /home/debian/_4NK_env/projects/lecoffre/lecoffre_node/confs//loki/loki-config.yaml:/etc/loki/loki-config.yaml:ro
command: -config.file=/etc/loki/loki-config.yaml
networks:
btcnet:
aliases:
- loki
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://localhost:3100/ready"]
interval: 30s
timeout: 15s
retries: 50
start_period: 120s
restart: unless-stopped
promtail:
image: grafana/promtail:latest
container_name: promtail
volumes:
- /home/debian/_4NK_env/projects/lecoffre/lecoffre_node/logs/:/home/debian/_4NK_env/projects/lecoffre/lecoffre_node/logs/:ro
# - /home/debian/_4NK_env/projects/lecoffre/lecoffre_node/confs//promtail/promtail.yml:/etc/promtail/config.yml:ro
- /var/run/docker.sock:/var/run/docker.sock
command: -config.file=/etc/promtail/config.yml
networks:
btcnet:
aliases:
- promtail
depends_on:
loki:
condition: service_healthy
healthcheck:
test: ["CMD", "sh", "-c", "if [ -f /tmp/positions.yaml ]; then echo 'Promtail ready: Log collection service responding'; exit 0; else echo 'Promtail starting: Log collection service not yet ready'; exit 1; fi"]
interval: 30s
timeout: 10s
retries: 50
start_period: 30s
restart: unless-stopped
# Service de statut des services
status-api:
build:
context: ./web/status
dockerfile: Dockerfile.python
container_name: status-api
# env_file:
# - /home/debian/_4NK_env/projects/lecoffre/lecoffre_node/confs//monitoring/.env
ports:
- "0.0.0.0:8083:3006"
volumes:
- ./web/status/api.py:/app/api.py:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- /home/debian/_4NK_env/projects/lecoffre/lecoffre_node/logs/:/var/log/lecoffre:ro
- /home/debian/_4NK_env/projects/lecoffre/lecoffre_node/scripts/:/home/debian/_4NK_env/projects/lecoffre/lecoffre_node/scripts/:ro
networks:
btcnet:
aliases:
- status-api
healthcheck:
test: ["CMD", "sh", "-c", "if curl -f http://localhost:3006/api >/dev/null 2>&1; then echo 'Status API ready: Service monitoring API responding'; exit 0; else echo 'Status API starting: Service monitoring API not yet ready'; exit 1; fi"]
interval: 30s
timeout: 10s
retries: 50
start_period: 30s
labels:
- "com.centurylinklabs.watchtower.enable=true"
restart: unless-stopped
networks:
btcnet:
name: _4NK_node_btcnet
driver: bridge
ipam:
config:
- subnet: 172.20.0.0/16