rwadurian/backend/services/mpc-service/docker-compose.yml

72 lines
2.8 KiB
YAML

# =============================================================================
# MPC Service - Docker Compose (Development/Standalone)
# =============================================================================
# For production, use the root docker-compose.yml in ../
#
# For standalone development:
# 1. First start shared infrastructure: cd .. && ./deploy.sh up postgres redis kafka
# 2. Then: docker compose up -d --build
# =============================================================================
services:
mpc-service:
build:
context: .
dockerfile: Dockerfile
container_name: rwa-mpc-service
ports:
- "3006:3006"
environment:
# Application
NODE_ENV: production
APP_PORT: 3006
API_PREFIX: api/v1
# Database (shared PostgreSQL)
DATABASE_URL: postgresql://rwa_user:rwa_secure_password@rwa-postgres:5432/rwa_mpc?schema=public
# Redis (shared)
REDIS_HOST: rwa-redis
REDIS_PORT: 6379
REDIS_PASSWORD: ${REDIS_PASSWORD:-}
REDIS_DB: 5
# JWT
JWT_SECRET: ${JWT_SECRET:-your-jwt-secret-change-in-production}
JWT_ACCESS_EXPIRES_IN: 2h
JWT_REFRESH_EXPIRES_IN: 30d
# Kafka (shared)
KAFKA_BROKERS: rwa-kafka:29092
KAFKA_CLIENT_ID: mpc-service
KAFKA_GROUP_ID: mpc-service-group
# MPC System (Go/TSS Backend - deployed on 192.168.1.111)
MPC_ACCOUNT_SERVICE_URL: ${MPC_ACCOUNT_SERVICE_URL:-http://192.168.1.111:4000}
MPC_COORDINATOR_URL: ${MPC_COORDINATOR_URL:-http://192.168.1.111:8081}
MPC_SESSION_COORDINATOR_URL: ${MPC_SESSION_COORDINATOR_URL:-http://192.168.1.111:8081}
MPC_MESSAGE_ROUTER_WS_URL: ${MPC_MESSAGE_ROUTER_WS_URL:-ws://192.168.1.111:8082}
MPC_SERVER_PARTY_API_URL: ${MPC_SERVER_PARTY_API_URL:-http://192.168.1.111:8083}
MPC_API_KEY: ${MPC_API_KEY:-rwa-mpc-api-key-2024-secure-access-token}
MPC_COORDINATOR_TIMEOUT: 30000
# Share Encryption
SHARE_MASTER_KEY: ${SHARE_MASTER_KEY:-0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef}
# Backup Service
BACKUP_SERVICE_URL: ${BACKUP_SERVICE_URL:-http://rwa-backup-service:3002}
BACKUP_SERVICE_ENABLED: ${BACKUP_SERVICE_ENABLED:-true}
SERVICE_JWT_SECRET: ${SERVICE_JWT_SECRET:-your-service-jwt-secret-change-in-production}
# Timeouts
MPC_KEYGEN_TIMEOUT: 300000
MPC_SIGNING_TIMEOUT: 180000
MPC_REFRESH_TIMEOUT: 300000
volumes:
- ./logs:/app/logs
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3006/api/v1/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
restart: unless-stopped
networks:
- rwa-network
networks:
rwa-network:
external: true