Files
cdk/docker-compose.yaml
asmo 75a3e6d2c7 Prometheus crate (#883)
* feat: introduce `cdk-prometheus` crate with Prometheus server and CDK-specific metrics support
2025-09-09 13:26:03 +01:00

130 lines
3.6 KiB
YAML

version: '3.8'
services:
# CDK Mint service
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:
build:
context: .
dockerfile: Dockerfile
container_name: mint
ports:
- "8085:8085"
environment:
- CDK_MINTD_URL=https://example.com
- CDK_MINTD_LN_BACKEND=fakewallet
- 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
# For Redis cache (requires redis service, enable with: docker-compose --profile redis up):
# - CDK_MINTD_CACHE_REDIS_URL=redis://redis:6379
# - CDK_MINTD_CACHE_REDIS_KEY_PREFIX=cdk-mintd
- CDK_MINTD_PROMETHEUS_ENABLED=true
- CDK_MINTD_PROMETHEUS_ADDRESS=0.0.0.0
- CDK_MINTD_PROMETHEUS_PORT=9000
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
# Redis cache service (optional)
# Enable with: docker-compose --profile redis up
# redis:
# image: redis:7-alpine
# container_name: mint_redis
# restart: unless-stopped
# profiles:
# - redis
# ports:
# - "6379:6379"
# volumes:
# - redis_data:/data
# command: redis-server --save 60 1 --loglevel warning
# healthcheck:
# test: ["CMD", "redis-cli", "ping"]
# interval: 10s
# timeout: 3s
# retries: 5
volumes:
postgres_data:
driver: local
# redis_data:
# driver: local
networks:
cdk:
driver: bridge