mirror of
https://github.com/aljazceru/cdk.git
synced 2025-12-24 08:05:02 +01:00
* feat(docker): add LDK Node mint service with dedicated Docker setup - Add Dockerfile.ldk-node and Dockerfile.ldk-node.arm for LDK Node builds - Add GitHub Actions workflows for publishing LDK Node Docker images - Add docker-compose.ldk-node.yaml for standalone LDK Node deployment - Integrate LDK Node service into main docker-compose.yaml with profile - Update cdk-mintd README with LDK Node Docker configuration * feat: use docker tags
119 lines
3.4 KiB
YAML
119 lines
3.4 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
# CDK Mint service with LDK Node backend
|
|
|
|
prometheus:
|
|
image: prom/prometheus:latest
|
|
ports:
|
|
- "9090:9090"
|
|
volumes:
|
|
- ./misc/provisioning/prometheus.yml:/etc/prometheus/prometheus.yml:ro
|
|
command:
|
|
- '--config.file=/etc/prometheus/prometheus.yml'
|
|
- '--storage.tsdb.path=/prometheus'
|
|
- '--web.console.libraries=/etc/prometheus/console_libraries'
|
|
- '--web.console.templates=/etc/prometheus/consoles'
|
|
- '--web.enable-lifecycle'
|
|
- '--enable-feature=otlp-write-receiver'
|
|
extra_hosts:
|
|
- "host.docker.internal:host-gateway"
|
|
networks:
|
|
- cdk
|
|
|
|
# Grafana for visualization
|
|
grafana:
|
|
image: grafana/grafana:latest
|
|
ports:
|
|
- "3011:3000"
|
|
volumes:
|
|
- ./misc/provisioning/datasources:/etc/grafana/provisioning/datasources
|
|
- ./misc/provisioning/dashboards:/etc/grafana/provisioning/dashboards
|
|
environment:
|
|
- GF_DASHBOARDS_JSON_ENABLED=true
|
|
- GF_SECURITY_ADMIN_PASSWORD=admin
|
|
- GF_PROVISIONING_PATHS=/etc/grafana/provisioning
|
|
networks:
|
|
- cdk
|
|
|
|
mintd-ldk-node:
|
|
# Use the ldk-node tagged image from the same repository
|
|
image: cashubtc/mintd:ldk-node-amd64
|
|
# Alternatively, build locally:
|
|
# build:
|
|
# context: .
|
|
# dockerfile: Dockerfile.ldk-node
|
|
container_name: mint-ldk-node
|
|
ports:
|
|
- "8085:8085"
|
|
environment:
|
|
- CDK_MINTD_URL=https://example.com
|
|
- CDK_MINTD_LN_BACKEND=ldk-node
|
|
- CDK_MINTD_LISTEN_HOST=0.0.0.0
|
|
- CDK_MINTD_LISTEN_PORT=8085
|
|
- CDK_MINTD_MNEMONIC=
|
|
# Database configuration - choose one:
|
|
# Option 1: SQLite (embedded, no additional setup needed)
|
|
- CDK_MINTD_DATABASE=sqlite
|
|
# Option 2: ReDB (embedded, no additional setup needed)
|
|
# - CDK_MINTD_DATABASE=redb
|
|
# Option 3: PostgreSQL (requires postgres service, enable with: docker-compose --profile postgres up)
|
|
# - CDK_MINTD_DATABASE=postgres
|
|
# - CDK_MINTD_DATABASE_URL=postgresql://cdk_user:cdk_password@postgres:5432/cdk_mint
|
|
# Cache configuration
|
|
- CDK_MINTD_CACHE_BACKEND=memory
|
|
- CDK_MINTD_PROMETHEUS_ENABLED=true
|
|
- CDK_MINTD_PROMETHEUS_ADDRESS=0.0.0.0
|
|
- CDK_MINTD_PROMETHEUS_PORT=9000
|
|
# LDK Node specific configuration
|
|
- CDK_MINTD_LDK_NODE_NETWORK=testnet
|
|
- CDK_MINTD_LDK_NODE_ESPLORA_URL=https://blockstream.info/testnet/api
|
|
- CDK_MINTD_LDK_NODE_LISTENING_ADDRESSES=0.0.0.0:9735
|
|
volumes:
|
|
# Persist LDK node data
|
|
- ldk_node_data:/usr/src/app/ldk_node_data
|
|
command: ["cdk-mintd"]
|
|
depends_on:
|
|
- prometheus
|
|
- grafana
|
|
networks:
|
|
- cdk
|
|
# Uncomment when using PostgreSQL:
|
|
# depends_on:
|
|
# - postgres
|
|
|
|
# PostgreSQL database service
|
|
# Enable with: docker-compose --profile postgres up
|
|
postgres:
|
|
image: postgres:16-alpine
|
|
container_name: mint_postgres
|
|
restart: unless-stopped
|
|
profiles:
|
|
- postgres
|
|
environment:
|
|
- POSTGRES_USER=cdk_user
|
|
- POSTGRES_PASSWORD=cdk_password
|
|
- POSTGRES_DB=cdk_mint
|
|
- POSTGRES_INITDB_ARGS=--encoding=UTF-8 --lc-collate=C --lc-ctype=C
|
|
ports:
|
|
- "5432:5432"
|
|
volumes:
|
|
- postgres_data:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U cdk_user -d cdk_mint"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
networks:
|
|
- cdk
|
|
|
|
volumes:
|
|
postgres_data:
|
|
driver: local
|
|
ldk_node_data:
|
|
driver: local
|
|
|
|
networks:
|
|
cdk:
|
|
driver: bridge
|