services: api: build: context: . dockerfile: Dockerfile restart: unless-stopped ports: - '${API_PORT:-3001}:${API_PORT:-3001}' environment: API_PORT: '${API_PORT:-3001}' LOG_LEVEL: '${LOG_LEVEL:-INFO}' DB_HOST: '${DB_HOST:-postgres}' DB_PORT: '${DB_PORT:-5432}' DB_USER: '${DB_USER:-cryptowallet}' DB_PASSWORD: '${DB_PASSWORD:-cryptowallet}' DB_NAME: '${DB_NAME:-cryptowallet}' VAULT_ADDR: '${VAULT_ADDR:-}' VAULT_ROLE_ID: '${VAULT_ROLE_ID:-}' VAULT_SECRET_ID: '${VAULT_SECRET_ID:-}' VAULT_MOUNT_POINT: '${VAULT_MOUNT_POINT:-dev-secrets}' VAULT_SECRET_PATH: '${VAULT_SECRET_PATH:-database}' VAULT_JWT_KID_PATH: '${VAULT_JWT_KID_PATH:-jwt/kid}' VAULT_JWT_KIDS_PREFIX: '${VAULT_JWT_KIDS_PREFIX:-jwt/kids}' VAULT_CSRF_PATH: '${VAULT_CSRF_PATH:-}' JWT_ALGORITHM: '${JWT_ALGORITHM:-RS256}' JWT_ISSUER: '${JWT_ISSUER:-auth-service}' JWT_AUDIENCE: '${JWT_AUDIENCE:-elcsa}' CORS_ORIGINS: '${CORS_ORIGINS:-}' CORS_ALLOW_CREDENTIALS: '${CORS_ALLOW_CREDENTIALS:-true}' RELAY_API_KEY: '${RELAY_API_KEY:-}' TRON_API_KEY: '${TRON_API_KEY:-}' JUPITER_API_KEY: '${JUPITER_API_KEY:-}' JUPITER_REFERRAL_ACCOUNT: '${JUPITER_REFERRAL_ACCOUNT:-}' JUPITER_FEE_BPS: '${JUPITER_FEE_BPS:-70}' ETHERSCAN_API_KEY: '${ETHERSCAN_API_KEY:-}' BSCSCAN_API_KEY: '${BSCSCAN_API_KEY:-}' depends_on: postgres: condition: service_healthy postgres: image: postgres:16-alpine restart: unless-stopped environment: POSTGRES_USER: '${DB_USER:-cryptowallet}' POSTGRES_PASSWORD: '${DB_PASSWORD:-cryptowallet}' POSTGRES_DB: '${DB_NAME:-cryptowallet}' ports: - '${POSTGRES_PORT:-5432}:5432' volumes: - postgres-data:/var/lib/postgresql/data healthcheck: test: ['CMD-SHELL','pg_isready -U "$$POSTGRES_USER" -d "$$POSTGRES_DB"'] interval: 5s timeout: 5s retries: 10 volumes: postgres-data: