357 lines
9.2 KiB
YAML
357 lines
9.2 KiB
YAML
services:
|
|
tor:
|
|
image: btcpayserver/tor:0.4.8.10
|
|
container_name: tor-proxy
|
|
networks:
|
|
btcnet:
|
|
aliases:
|
|
- tor
|
|
restart: unless-stopped
|
|
|
|
bitcoin:
|
|
image: git.4nkweb.com/4nk/bitcoin:latest
|
|
container_name: bitcoin-signet
|
|
depends_on:
|
|
- tor
|
|
volumes:
|
|
- bitcoin_data:/home/bitcoin/.bitcoin
|
|
- ./conf/bitcoin/bitcoin.conf:/etc/bitcoin/bitcoin.conf:ro
|
|
- ./logs/bitcoin:/var/log/bitcoin
|
|
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", "bitcoin-cli", "-conf=/etc/bitcoin/bitcoin.conf", "getblockchaininfo"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
restart: unless-stopped
|
|
|
|
blindbit:
|
|
image: git.4nkweb.com/4nk/blindbit-oracle:dev
|
|
container_name: blindbit-oracle
|
|
depends_on:
|
|
bitcoin:
|
|
condition: service_healthy
|
|
volumes:
|
|
- blindbit_data:/root/.blindbit-oracle
|
|
- ./blindbit/blindbit.toml:/tmp/blindbit.toml:ro
|
|
- bitcoin_data:/home/bitcoin/.bitcoin
|
|
- ./logs/blindbit:/var/log/blindbit
|
|
entrypoint: >
|
|
sh -c "cp /tmp/blindbit.toml /root/.blindbit-oracle/blindbit.toml &&
|
|
./main -datadir /root/.blindbit-oracle"
|
|
networks:
|
|
btcnet:
|
|
aliases:
|
|
- blindbit
|
|
ports:
|
|
- "0.0.0.0:8000:8000"
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "code=$(curl -s -o /dev/null -w '%{http_code}' http://localhost:8000/tweaks/1); [ \"$$code\" != \"000\" ]"]
|
|
interval: 15s
|
|
timeout: 5s
|
|
retries: 10
|
|
restart: unless-stopped
|
|
|
|
sdk_relay:
|
|
image: git.4nkweb.com/4nk/sdk_relay:ext
|
|
container_name: sdk_relay
|
|
depends_on:
|
|
blindbit:
|
|
condition: service_healthy
|
|
volumes:
|
|
- ./conf/relay/sdk_relay.conf:/home/bitcoin/.conf:ro
|
|
- sdk_data:/home/bitcoin/.4nk
|
|
- bitcoin_data:/home/bitcoin/.bitcoin
|
|
- ./scripts/funds:/scripts/funds:ro
|
|
- ./logs/sdk_relay:/var/log/sdk_relay
|
|
ports:
|
|
- "0.0.0.0:8090:8090"
|
|
- "0.0.0.0:8091:8091"
|
|
networks:
|
|
btcnet:
|
|
aliases:
|
|
- sdk_relay
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|
|
environment:
|
|
- NODE_OPTIONS=--max-old-space-size=2048
|
|
- HOME=/home/bitcoin
|
|
- RUST_LOG=INFO
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:8091/"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
restart: unless-stopped
|
|
|
|
lecoffre-back:
|
|
image: git.4nkweb.com/4nk/lecoffre-back-mini:ext
|
|
container_name: lecoffre-back
|
|
env_file:
|
|
- .env
|
|
ports:
|
|
- "0.0.0.0:8080:8080"
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
- ./logs/lecoffre-back:/var/log/lecoffre-back
|
|
networks:
|
|
btcnet:
|
|
aliases:
|
|
- lecoffre-back
|
|
depends_on:
|
|
sdk_relay:
|
|
condition: service_healthy
|
|
user: root
|
|
entrypoint: >
|
|
/bin/sh -lc '
|
|
apk update && apk add --no-cache curl git wget jq busybox-extras npm coreutils && npm install -g wscat || echo "wscat installation failed"
|
|
exec node dist/server.js
|
|
'
|
|
healthcheck:
|
|
test: ["CMD", "sh", "-c", "curl -f http://localhost:8080/api/v1/health || exit 1"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 5
|
|
start_period: 60s
|
|
labels:
|
|
- "com.centurylinklabs.watchtower.enable=true"
|
|
restart: unless-stopped
|
|
|
|
lecoffre-front:
|
|
image: git.4nkweb.com/4nk/lecoffre-front:ext
|
|
container_name: lecoffre-front
|
|
env_file:
|
|
- .env
|
|
ports:
|
|
- "0.0.0.0:3004:3000"
|
|
volumes:
|
|
- ./logs/lecoffre-front:/var/log/lecoffre-front
|
|
networks:
|
|
btcnet:
|
|
aliases:
|
|
- lecoffre-front
|
|
depends_on:
|
|
lecoffre-back:
|
|
condition: service_healthy
|
|
user: root
|
|
entrypoint: >
|
|
/bin/sh -lc '
|
|
apt-get update && apt-get install -y curl git wget jq telnet npm coreutils && npm install -g wscat || echo "wscat installation failed"
|
|
exec node server.js
|
|
'
|
|
healthcheck:
|
|
test: ["CMD", "sh", "-c", "ps aux | grep -v grep | grep next-server || exit 1"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
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:
|
|
- .env
|
|
environment:
|
|
- VITE_BOOTSTRAPURL=wss://dev4.4nkweb.com/ws/
|
|
ports:
|
|
- "0.0.0.0:3003:3003"
|
|
volumes:
|
|
- ./logs/ihm_client:/var/log/ihm_client
|
|
networks:
|
|
btcnet:
|
|
aliases:
|
|
- ihm_client
|
|
depends_on:
|
|
sdk_relay:
|
|
condition: service_healthy
|
|
user: root
|
|
entrypoint: >
|
|
/bin/sh -lc '
|
|
npm install -g wscat || echo "wscat installation failed"
|
|
exec npm start
|
|
'
|
|
healthcheck:
|
|
test: ["CMD", "sh", "-c", "curl -f http://localhost:3003/ || exit 1"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 30s
|
|
labels:
|
|
- "com.centurylinklabs.watchtower.enable=true"
|
|
restart: unless-stopped
|
|
|
|
sdk_signer:
|
|
image: git.4nkweb.com/4nk/sdk_signer:ext
|
|
container_name: sdk_signer
|
|
ports:
|
|
- "0.0.0.0:3001:9090"
|
|
volumes:
|
|
- ./logs/sdk_signer:/var/log/sdk_signer
|
|
networks:
|
|
btcnet:
|
|
aliases:
|
|
- sdk_signer
|
|
user: root
|
|
entrypoint: >
|
|
/bin/sh -lc '
|
|
apk update && apk add --no-cache curl git wget jq busybox-extras npm coreutils && npm install -g wscat || echo "wscat installation failed"
|
|
exec node /app/dist/index.js
|
|
'
|
|
labels:
|
|
- "com.centurylinklabs.watchtower.enable=true"
|
|
restart: unless-stopped
|
|
environment:
|
|
- SIGNER_WS_URL=ws://dev3.4nkweb.com:9090
|
|
- SIGNER_BASE_URL=https://dev3.4nkweb.com
|
|
- RELAY_URLS=wss://dev4.4nkweb.com/ws/,wss://dev3.4nkweb.com/ws/
|
|
|
|
sdk_storage:
|
|
image: git.4nkweb.com/4nk/sdk_storage:ext
|
|
container_name: sdk_storage
|
|
ports:
|
|
- "0.0.0.0:8081:8080"
|
|
volumes:
|
|
- ./logs/sdk_storage:/var/log/sdk_storage
|
|
healthcheck:
|
|
test: ["CMD", "sh", "-c", "curl -f http://localhost:8080/health || exit 1"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
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:
|
|
- ./miner/.env
|
|
volumes:
|
|
- bitcoin_data:/bitcoin:ro
|
|
- ./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:3005:3000"
|
|
volumes:
|
|
- grafana_data:/var/lib/grafana
|
|
- ./conf/grafana/provisioning:/etc/grafana/provisioning
|
|
- ./conf/grafana/dashboards:/var/lib/grafana/dashboards
|
|
- ./conf/grafana/grafana.ini:/etc/grafana/grafana.ini:ro
|
|
- ./logs:/var/log/lecoffre:ro
|
|
environment:
|
|
- GF_SECURITY_ADMIN_PASSWORD=admin123
|
|
- GF_USERS_ALLOW_SIGN_UP=false
|
|
- GF_SERVER_ROOT_URL=https://dev4.4nkweb.com/grafana/
|
|
- GF_PLUGINS_PREINSTALL_SYNC=grafana-clock-panel,grafana-simple-json-datasource
|
|
networks:
|
|
btcnet:
|
|
aliases:
|
|
- grafana
|
|
labels:
|
|
- "com.centurylinklabs.watchtower.enable=true"
|
|
restart: unless-stopped
|
|
|
|
loki:
|
|
image: grafana/loki:latest
|
|
container_name: loki
|
|
ports:
|
|
- "0.0.0.0:3100:3100"
|
|
volumes:
|
|
- loki_data:/loki
|
|
command: -config.file=/etc/loki/local-config.yaml
|
|
networks:
|
|
btcnet:
|
|
aliases:
|
|
- loki
|
|
restart: unless-stopped
|
|
|
|
promtail:
|
|
image: grafana/promtail:latest
|
|
container_name: promtail
|
|
volumes:
|
|
- ./logs:/var/log/lecoffre:ro
|
|
- ./conf/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
|
|
restart: unless-stopped
|
|
|
|
# Service de statut des services
|
|
status-api:
|
|
build:
|
|
context: ./web/status
|
|
dockerfile: Dockerfile.python
|
|
container_name: status-api
|
|
ports:
|
|
- "0.0.0.0:3006:3006"
|
|
volumes:
|
|
- ./web/status/api.py:/app/api.py:ro
|
|
networks:
|
|
btcnet:
|
|
aliases:
|
|
- status-api
|
|
labels:
|
|
- "com.centurylinklabs.watchtower.enable=true"
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
bitcoin_data:
|
|
name: 4nk_node_bitcoin_data
|
|
blindbit_data:
|
|
sdk_data:
|
|
grafana_data:
|
|
loki_data:
|
|
|
|
networks:
|
|
btcnet:
|
|
name: 4nk_node_btcnet
|
|
driver: bridge
|
|
ipam:
|
|
config:
|
|
- subnet: 172.20.0.0/16
|