rwadurian/backend/docker-compose.windows.yml

726 lines
22 KiB
YAML

# =============================================================================
# RWA Backend Services - Windows Local Development
# =============================================================================
# 用于在 Windows 上本地测试 auto-create-account 流程
#
# 包含服务:
# - PostgreSQL (各服务独立数据库)
# - Redis
# - Kafka + Zookeeper
# - mpc-system (Go TSS 后端)
# - identity-service
# - mpc-service
# - blockchain-service
# - backup-service
#
# 使用方法:
# docker-compose -f docker-compose.windows.yml --env-file .env.windows up -d
#
# =============================================================================
services:
# ============================================
# Infrastructure - Database & Cache
# ============================================
postgres:
image: postgres:15-alpine
container_name: rwa-postgres
environment:
POSTGRES_USER: rwa_user
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-rwa_dev_password}
POSTGRES_MULTIPLE_DATABASES: rwa_identity,rwa_mpc,rwa_blockchain,rwa_backup,rwa_referral,rwa_wallet,rwa_planting,rwa_reward,rwa_leaderboard,rwa_reporting,rwa_authorization,rwa_admin,mpc_system
volumes:
- postgres-data:/var/lib/postgresql/data
- ./scripts/init-multiple-databases.sh:/docker-entrypoint-initdb.d/init-multiple-databases.sh:ro
ports:
- "5432:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U rwa_user"]
interval: 10s
timeout: 5s
retries: 5
networks:
- rwa-network
redis:
image: redis:7-alpine
container_name: rwa-redis
ports:
- "6379:6379"
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
networks:
- rwa-network
# ============================================
# Infrastructure - Kafka
# ============================================
zookeeper:
image: confluentinc/cp-zookeeper:7.5.0
container_name: rwa-zookeeper
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
ports:
- "2181:2181"
networks:
- rwa-network
kafka:
image: confluentinc/cp-kafka:7.5.0
container_name: rwa-kafka
depends_on:
- zookeeper
ports:
- "9092:9092"
- "29092:29092"
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,PLAINTEXT_HOST://localhost:9092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_AUTO_CREATE_TOPICS_ENABLE: "true"
healthcheck:
test: ["CMD", "kafka-topics", "--bootstrap-server", "localhost:9092", "--list"]
interval: 30s
timeout: 10s
retries: 5
networks:
- rwa-network
# ============================================
# MPC System (Go TSS Backend)
# ============================================
mpc-postgres:
image: postgres:15-alpine
container_name: mpc-postgres
environment:
POSTGRES_DB: mpc_system
POSTGRES_USER: mpc_user
POSTGRES_PASSWORD: ${MPC_POSTGRES_PASSWORD:-mpc_dev_password}
volumes:
- mpc-postgres-data:/var/lib/postgresql/data
- ./mpc-system/migrations:/docker-entrypoint-initdb.d:ro
healthcheck:
test: ["CMD-SHELL", "pg_isready -U mpc_user -d mpc_system"]
interval: 10s
timeout: 5s
retries: 5
networks:
- rwa-network
mpc-session-coordinator:
build:
context: ./mpc-system
dockerfile: services/session-coordinator/Dockerfile
container_name: mpc-session-coordinator
ports:
- "8081:8080"
environment:
MPC_SERVER_GRPC_PORT: 50051
MPC_SERVER_HTTP_PORT: 8080
MPC_SERVER_ENVIRONMENT: development
MPC_LOGGER_LEVEL: debug
MPC_DATABASE_HOST: mpc-postgres
MPC_DATABASE_PORT: 5432
MPC_DATABASE_USER: mpc_user
MPC_DATABASE_PASSWORD: ${MPC_POSTGRES_PASSWORD:-mpc_dev_password}
MPC_DATABASE_DBNAME: mpc_system
MPC_DATABASE_SSLMODE: disable
SESSION_COORDINATOR_ADDR: mpc-session-coordinator:50051
MPC_JWT_SECRET_KEY: ${JWT_SECRET:-dev_jwt_secret_key_min_32_chars_long}
MPC_JWT_ISSUER: mpc-system
MESSAGE_ROUTER_ADDR: mpc-message-router:50051
ACCOUNT_SERVICE_ADDR: http://mpc-account-service:8080
depends_on:
mpc-postgres:
condition: service_healthy
mpc-message-router:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-sf", "http://localhost:8080/health"]
interval: 30s
timeout: 10s
retries: 3
networks:
- rwa-network
mpc-message-router:
build:
context: ./mpc-system
dockerfile: services/message-router/Dockerfile
container_name: mpc-message-router
ports:
- "8082:8080"
environment:
MPC_SERVER_GRPC_PORT: 50051
MPC_SERVER_HTTP_PORT: 8080
MPC_SERVER_ENVIRONMENT: development
MPC_LOGGER_LEVEL: debug
MPC_DATABASE_HOST: mpc-postgres
MPC_DATABASE_PORT: 5432
MPC_DATABASE_USER: mpc_user
MPC_DATABASE_PASSWORD: ${MPC_POSTGRES_PASSWORD:-mpc_dev_password}
MPC_DATABASE_DBNAME: mpc_system
MPC_DATABASE_SSLMODE: disable
SESSION_COORDINATOR_ADDR: mpc-session-coordinator:50051
depends_on:
mpc-postgres:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-sf", "http://localhost:8080/health"]
interval: 30s
timeout: 10s
retries: 3
networks:
- rwa-network
mpc-server-party-1:
build:
context: ./mpc-system
dockerfile: services/server-party/Dockerfile
container_name: mpc-server-party-1
environment:
MPC_SERVER_GRPC_PORT: 50051
MPC_SERVER_HTTP_PORT: 8080
MPC_SERVER_ENVIRONMENT: development
MPC_LOGGER_LEVEL: debug
MPC_DATABASE_HOST: mpc-postgres
MPC_DATABASE_PORT: 5432
MPC_DATABASE_USER: mpc_user
MPC_DATABASE_PASSWORD: ${MPC_POSTGRES_PASSWORD:-mpc_dev_password}
MPC_DATABASE_DBNAME: mpc_system
MPC_DATABASE_SSLMODE: disable
MESSAGE_ROUTER_ADDR: mpc-message-router:50051
MPC_CRYPTO_MASTER_KEY: ${CRYPTO_MASTER_KEY:-0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef}
PARTY_ID: server-party-1
depends_on:
mpc-postgres:
condition: service_healthy
mpc-session-coordinator:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-sf", "http://localhost:8080/health"]
interval: 30s
timeout: 10s
retries: 3
networks:
- rwa-network
mpc-server-party-2:
build:
context: ./mpc-system
dockerfile: services/server-party/Dockerfile
container_name: mpc-server-party-2
environment:
MPC_SERVER_GRPC_PORT: 50051
MPC_SERVER_HTTP_PORT: 8080
MPC_SERVER_ENVIRONMENT: development
MPC_LOGGER_LEVEL: debug
MPC_DATABASE_HOST: mpc-postgres
MPC_DATABASE_PORT: 5432
MPC_DATABASE_USER: mpc_user
MPC_DATABASE_PASSWORD: ${MPC_POSTGRES_PASSWORD:-mpc_dev_password}
MPC_DATABASE_DBNAME: mpc_system
MPC_DATABASE_SSLMODE: disable
MESSAGE_ROUTER_ADDR: mpc-message-router:50051
MPC_CRYPTO_MASTER_KEY: ${CRYPTO_MASTER_KEY:-0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef}
PARTY_ID: server-party-2
depends_on:
mpc-postgres:
condition: service_healthy
mpc-session-coordinator:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-sf", "http://localhost:8080/health"]
interval: 30s
timeout: 10s
retries: 3
networks:
- rwa-network
mpc-server-party-3:
build:
context: ./mpc-system
dockerfile: services/server-party/Dockerfile
container_name: mpc-server-party-3
environment:
MPC_SERVER_GRPC_PORT: 50051
MPC_SERVER_HTTP_PORT: 8080
MPC_SERVER_ENVIRONMENT: development
MPC_LOGGER_LEVEL: debug
MPC_DATABASE_HOST: mpc-postgres
MPC_DATABASE_PORT: 5432
MPC_DATABASE_USER: mpc_user
MPC_DATABASE_PASSWORD: ${MPC_POSTGRES_PASSWORD:-mpc_dev_password}
MPC_DATABASE_DBNAME: mpc_system
MPC_DATABASE_SSLMODE: disable
MESSAGE_ROUTER_ADDR: mpc-message-router:50051
MPC_CRYPTO_MASTER_KEY: ${CRYPTO_MASTER_KEY:-0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef}
PARTY_ID: server-party-3
depends_on:
mpc-postgres:
condition: service_healthy
mpc-session-coordinator:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-sf", "http://localhost:8080/health"]
interval: 30s
timeout: 10s
retries: 3
networks:
- rwa-network
mpc-server-party-api:
build:
context: ./mpc-system
dockerfile: services/server-party-api/Dockerfile
container_name: mpc-server-party-api
ports:
- "8083:8080"
environment:
MPC_SERVER_HTTP_PORT: 8080
MPC_SERVER_ENVIRONMENT: development
SESSION_COORDINATOR_ADDR: mpc-session-coordinator:50051
MESSAGE_ROUTER_ADDR: mpc-message-router:50051
MPC_CRYPTO_MASTER_KEY: ${CRYPTO_MASTER_KEY:-0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef}
MPC_API_KEY: ${MPC_API_KEY:-dev_mpc_api_key_for_testing}
PARTY_ID: delegate-party
PARTY_ROLE: delegate
depends_on:
mpc-session-coordinator:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-sf", "http://localhost:8080/health"]
interval: 30s
timeout: 10s
retries: 3
networks:
- rwa-network
mpc-account-service:
build:
context: ./mpc-system
dockerfile: services/account/Dockerfile
container_name: mpc-account-service
ports:
- "4000:8080"
environment:
MPC_SERVER_GRPC_PORT: 50051
MPC_SERVER_HTTP_PORT: 8080
MPC_SERVER_ENVIRONMENT: development
MPC_LOGGER_LEVEL: debug
MPC_DATABASE_HOST: mpc-postgres
MPC_DATABASE_PORT: 5432
MPC_DATABASE_USER: mpc_user
MPC_DATABASE_PASSWORD: ${MPC_POSTGRES_PASSWORD:-mpc_dev_password}
MPC_DATABASE_DBNAME: mpc_system
MPC_DATABASE_SSLMODE: disable
SESSION_COORDINATOR_ADDR: mpc-session-coordinator:50051
MPC_COORDINATOR_URL: mpc-session-coordinator:50051
MPC_JWT_SECRET_KEY: ${JWT_SECRET:-dev_jwt_secret_key_min_32_chars_long}
MPC_API_KEY: ${MPC_API_KEY:-dev_mpc_api_key_for_testing}
ALLOWED_IPS: ""
depends_on:
mpc-postgres:
condition: service_healthy
mpc-session-coordinator:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-sf", "http://localhost:8080/health"]
interval: 30s
timeout: 10s
retries: 3
networks:
- rwa-network
# ============================================
# NestJS Backend Services
# ============================================
identity-service:
build:
context: ./services/identity-service
dockerfile: Dockerfile
container_name: rwa-identity-service
ports:
- "3000:3000"
environment:
APP_PORT: 3000
APP_ENV: development
DATABASE_URL: postgresql://rwa_user:${POSTGRES_PASSWORD:-rwa_dev_password}@postgres:5432/rwa_identity?schema=public
JWT_SECRET: ${JWT_SECRET:-dev_jwt_secret_key_min_32_chars_long}
JWT_ACCESS_EXPIRES_IN: 2h
JWT_REFRESH_EXPIRES_IN: 30d
REDIS_HOST: redis
REDIS_PORT: 6379
REDIS_DB: 0
KAFKA_BROKERS: kafka:29092
KAFKA_CLIENT_ID: identity-service
KAFKA_GROUP_ID: identity-service-group
MPC_SERVICE_URL: http://mpc-service:3006
MPC_MODE: remote
MPC_USE_EVENT_DRIVEN: "true"
BACKUP_SERVICE_URL: http://backup-service:3002
BACKUP_SERVICE_ENABLED: "true"
SERVICE_JWT_SECRET: ${SERVICE_JWT_SECRET:-dev_service_jwt_secret}
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
kafka:
condition: service_healthy
networks:
- rwa-network
mpc-service:
build:
context: ./services/mpc-service
dockerfile: Dockerfile
container_name: rwa-mpc-service
ports:
- "3006:3006"
environment:
NODE_ENV: development
APP_PORT: 3006
DATABASE_URL: postgresql://rwa_user:${POSTGRES_PASSWORD:-rwa_dev_password}@postgres:5432/rwa_mpc?schema=public
REDIS_HOST: redis
REDIS_PORT: 6379
REDIS_DB: 5
JWT_SECRET: ${JWT_SECRET:-dev_jwt_secret_key_min_32_chars_long}
KAFKA_BROKERS: kafka:29092
KAFKA_CLIENT_ID: mpc-service
KAFKA_GROUP_ID: mpc-service-group
MPC_ACCOUNT_SERVICE_URL: http://mpc-account-service:8080
MPC_COORDINATOR_URL: http://mpc-session-coordinator:8080
MPC_SESSION_COORDINATOR_URL: http://mpc-session-coordinator:8080
MPC_MESSAGE_ROUTER_WS_URL: ws://mpc-message-router:8080
MPC_SERVER_PARTY_API_URL: http://mpc-server-party-api:8080
MPC_JWT_SECRET: ${JWT_SECRET:-dev_jwt_secret_key_min_32_chars_long}
MPC_API_KEY: ${MPC_API_KEY:-dev_mpc_api_key_for_testing}
BLOCKCHAIN_SERVICE_URL: http://blockchain-service:3012
SHARE_MASTER_KEY: ${CRYPTO_MASTER_KEY:-0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef}
BACKUP_SERVICE_URL: http://backup-service:3002
BACKUP_SERVICE_ENABLED: "true"
SERVICE_JWT_SECRET: ${SERVICE_JWT_SECRET:-dev_service_jwt_secret}
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
kafka:
condition: service_healthy
mpc-account-service:
condition: service_healthy
backup-service:
condition: service_healthy
networks:
- rwa-network
blockchain-service:
build:
context: ./services/blockchain-service
dockerfile: Dockerfile
container_name: rwa-blockchain-service
ports:
- "3012:3012"
environment:
NODE_ENV: development
PORT: 3012
DATABASE_URL: postgresql://rwa_user:${POSTGRES_PASSWORD:-rwa_dev_password}@postgres:5432/rwa_blockchain?schema=public
REDIS_HOST: redis
REDIS_PORT: 6379
REDIS_DB: 11
KAFKA_BROKERS: kafka:29092
KAFKA_CLIENT_ID: blockchain-service
KAFKA_GROUP_ID: blockchain-service-group
# 使用测试网
NETWORK_MODE: testnet
# KAVA Testnet 配置
KAVA_RPC_URL: https://evm.testnet.kava.io
KAVA_USDT_CONTRACT: "0xc12f6A4A7Fd0965085B044A67a39CcA2ff7fe0dF"
# BSC Testnet 配置
BSC_RPC_URL: https://data-seed-prebsc-1-s1.binance.org:8545
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
kafka:
condition: service_healthy
networks:
- rwa-network
backup-service:
build:
context: ./services/backup-service
dockerfile: Dockerfile
container_name: rwa-backup-service
ports:
- "3002:3002"
environment:
APP_PORT: 3002
APP_ENV: development
DATABASE_URL: postgresql://rwa_user:${POSTGRES_PASSWORD:-rwa_dev_password}@postgres:5432/rwa_backup?schema=public
SERVICE_JWT_SECRET: ${SERVICE_JWT_SECRET:-dev_service_jwt_secret}
ALLOWED_SERVICES: identity-service,recovery-service,mpc-service
BACKUP_ENCRYPTION_KEY: ${BACKUP_ENCRYPTION_KEY:-0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef}
BACKUP_ENCRYPTION_KEY_ID: key-v1
depends_on:
postgres:
condition: service_healthy
networks:
- rwa-network
referral-service:
build:
context: ./services/referral-service
dockerfile: Dockerfile
container_name: rwa-referral-service
ports:
- "3004:3004"
environment:
NODE_ENV: development
APP_PORT: 3004
DATABASE_URL: postgresql://rwa_user:${POSTGRES_PASSWORD:-rwa_dev_password}@postgres:5432/rwa_referral?schema=public
REDIS_HOST: redis
REDIS_PORT: 6379
REDIS_DB: 4
JWT_SECRET: ${JWT_SECRET:-dev_jwt_secret_key_min_32_chars_long}
KAFKA_BROKERS: kafka:29092
KAFKA_CLIENT_ID: referral-service
KAFKA_GROUP_ID: referral-service-group
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
kafka:
condition: service_healthy
networks:
- rwa-network
wallet-service:
build:
context: ./services/wallet-service
dockerfile: Dockerfile
container_name: rwa-wallet-service
ports:
- "3001:3001"
environment:
NODE_ENV: development
APP_PORT: 3001
DATABASE_URL: postgresql://rwa_user:${POSTGRES_PASSWORD:-rwa_dev_password}@postgres:5432/rwa_wallet?schema=public
REDIS_HOST: redis
REDIS_PORT: 6379
REDIS_DB: 1
JWT_SECRET: ${JWT_SECRET:-dev_jwt_secret_key_min_32_chars_long}
KAFKA_BROKERS: kafka:29092
KAFKA_CLIENT_ID: wallet-service
KAFKA_GROUP_ID: wallet-service-group
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
kafka:
condition: service_healthy
networks:
- rwa-network
planting-service:
build:
context: ./services/planting-service
dockerfile: Dockerfile
container_name: rwa-planting-service
ports:
- "3003:3003"
environment:
NODE_ENV: development
APP_PORT: 3003
DATABASE_URL: postgresql://rwa_user:${POSTGRES_PASSWORD:-rwa_dev_password}@postgres:5432/rwa_planting?schema=public
REDIS_HOST: redis
REDIS_PORT: 6379
REDIS_DB: 2
JWT_SECRET: ${JWT_SECRET:-dev_jwt_secret_key_min_32_chars_long}
KAFKA_BROKERS: kafka:29092
KAFKA_CLIENT_ID: planting-service
KAFKA_GROUP_ID: planting-service-group
WALLET_SERVICE_URL: http://wallet-service:3001
IDENTITY_SERVICE_URL: http://identity-service:3000
REFERRAL_SERVICE_URL: http://referral-service:3004
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
kafka:
condition: service_healthy
networks:
- rwa-network
reward-service:
build:
context: ./services/reward-service
dockerfile: Dockerfile
container_name: rwa-reward-service
ports:
- "3005:3005"
environment:
NODE_ENV: development
APP_PORT: 3005
DATABASE_URL: postgresql://rwa_user:${POSTGRES_PASSWORD:-rwa_dev_password}@postgres:5432/rwa_reward?schema=public
REDIS_HOST: redis
REDIS_PORT: 6379
REDIS_DB: 4
JWT_SECRET: ${JWT_SECRET:-dev_jwt_secret_key_min_32_chars_long}
KAFKA_BROKERS: kafka:29092
KAFKA_CLIENT_ID: reward-service
KAFKA_GROUP_ID: reward-service-group
REFERRAL_SERVICE_URL: http://referral-service:3004
AUTHORIZATION_SERVICE_URL: http://authorization-service:3009
WALLET_SERVICE_URL: http://wallet-service:3001
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
kafka:
condition: service_healthy
networks:
- rwa-network
leaderboard-service:
build:
context: ./services/leaderboard-service
dockerfile: Dockerfile
container_name: rwa-leaderboard-service
ports:
- "3007:3007"
environment:
NODE_ENV: development
APP_PORT: 3007
DATABASE_URL: postgresql://rwa_user:${POSTGRES_PASSWORD:-rwa_dev_password}@postgres:5432/rwa_leaderboard?schema=public
REDIS_HOST: redis
REDIS_PORT: 6379
REDIS_DB: 6
JWT_SECRET: ${JWT_SECRET:-dev_jwt_secret_key_min_32_chars_long}
KAFKA_BROKERS: kafka:29092
KAFKA_CLIENT_ID: leaderboard-service
KAFKA_GROUP_ID: leaderboard-service-group
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
kafka:
condition: service_healthy
networks:
- rwa-network
reporting-service:
build:
context: ./services/reporting-service
dockerfile: Dockerfile
container_name: rwa-reporting-service
ports:
- "3008:3008"
environment:
NODE_ENV: development
APP_PORT: 3008
DATABASE_URL: postgresql://rwa_user:${POSTGRES_PASSWORD:-rwa_dev_password}@postgres:5432/rwa_reporting?schema=public
REDIS_HOST: redis
REDIS_PORT: 6379
REDIS_DB: 7
JWT_SECRET: ${JWT_SECRET:-dev_jwt_secret_key_min_32_chars_long}
KAFKA_BROKERS: kafka:29092
KAFKA_CLIENT_ID: reporting-service
KAFKA_GROUP_ID: reporting-service-group
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
kafka:
condition: service_healthy
networks:
- rwa-network
authorization-service:
build:
context: ./services/authorization-service
dockerfile: Dockerfile
container_name: rwa-authorization-service
ports:
- "3009:3009"
environment:
NODE_ENV: development
APP_PORT: 3009
DATABASE_URL: postgresql://rwa_user:${POSTGRES_PASSWORD:-rwa_dev_password}@postgres:5432/rwa_authorization?schema=public
REDIS_HOST: redis
REDIS_PORT: 6379
REDIS_DB: 8
JWT_SECRET: ${JWT_SECRET:-dev_jwt_secret_key_min_32_chars_long}
KAFKA_BROKERS: kafka:29092
KAFKA_CLIENT_ID: authorization-service
KAFKA_GROUP_ID: authorization-service-group
REFERRAL_SERVICE_URL: http://referral-service:3004
REFERRAL_SERVICE_ENABLED: "true"
IDENTITY_SERVICE_URL: http://identity-service:3000
IDENTITY_SERVICE_ENABLED: "true"
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
kafka:
condition: service_healthy
networks:
- rwa-network
admin-service:
build:
context: ./services/admin-service
dockerfile: Dockerfile
container_name: rwa-admin-service
ports:
- "3010:3010"
environment:
NODE_ENV: development
APP_PORT: 3010
DATABASE_URL: postgresql://rwa_user:${POSTGRES_PASSWORD:-rwa_dev_password}@postgres:5432/rwa_admin?schema=public
REDIS_HOST: redis
REDIS_PORT: 6379
REDIS_DB: 9
JWT_SECRET: ${JWT_SECRET:-dev_jwt_secret_key_min_32_chars_long}
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
networks:
- rwa-network
# ============================================
# Networks
# ============================================
networks:
rwa-network:
driver: bridge
# ============================================
# Volumes
# ============================================
volumes:
postgres-data:
mpc-postgres-data: