|
@@ -0,0 +1,118 @@
|
|
|
|
|
+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
|