services: postgres: image: postgres:16-alpine environment: POSTGRES_USER: ${DB_USERNAME:-postgres} POSTGRES_PASSWORD: ${DB_PASSWORD:-postgres} POSTGRES_DB: ${DB_NAME:-interchangabletrade} ports: - '5432:5432' volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: ['CMD-SHELL', 'pg_isready -U ${DB_USERNAME:-postgres}'] interval: 10s timeout: 5s retries: 5 redis: image: redis:7-alpine ports: - '6379:6379' volumes: - redis_data:/data healthcheck: test: ['CMD', 'redis-cli', 'ping'] interval: 10s timeout: 5s retries: 5 api: build: . depends_on: postgres: condition: service_healthy redis: condition: service_healthy environment: NODE_ENV: production PORT: 3000 DB_HOST: postgres DB_PORT: 5432 DB_USERNAME: ${DB_USERNAME:-postgres} DB_PASSWORD: ${DB_PASSWORD:-postgres} DB_NAME: ${DB_NAME:-interchangabletrade} DB_SYNCHRONIZE: 'true' REDIS_HOST: redis REDIS_PORT: 6379 JWT_SECRET: ${JWT_SECRET:-change-me-in-production} STELLAR_NETWORK: testnet STELLAR_HORIZON_URL: https://horizon-testnet.stellar.org SOROBAN_RPC_URL: https://soroban-testnet.stellar.org STELLAR_NETWORK_PASSPHRASE: 'Test SDF Network ; September 2015' ports: - '3000:3000' volumes: postgres_data: redis_data: