Deployment: hbf-notifications
Infrastructure config for this service. Full platform deployment:
docs/architecture/deployment.md
Runtime
- Port: 3000 (docker-compose), 2048 (SERVICE_PORT in NestJS config)
- Base image: node:22-slim (multi-stage)
- Start command:
npm run start:prod - Health check: none defined
Required Environment Variables
| Variable | Example | Description |
|---|---|---|
| SERVICE_PORT | 2048 | NestJS listening port |
| SERVICE_LOG_LEVEL | info | Application log level |
| TYPEORM_CONNECTION | mysql | Database driver |
| TYPEORM_HOST | localhost | MySQL host |
| TYPEORM_PORT | 3306 | MySQL port |
| TYPEORM_USERNAME | root | MySQL user |
| TYPEORM_PASSWORD | secret | MySQL password |
| TYPEORM_DATABASE | Notifications | MySQL database name |
| TYPEORM_MIGRATIONS | dist/migrations/*.js | Migration file glob |
| TYPEORM_AUTORUN_MIGRATIONS | true | Run migrations on startup |
| CORE_URL | http://hbf-core:8080 | hbf-core API base URL |
| CORE_TOKEN | secret | Bearer token for outbound calls to hbf-core (used in src/clients/hbf-core/hbf-core.service.ts) |
| JWT_SECRET | changeme | JWT signing secret |
| PINO_LOGGER_USE | true | Enable Pino logger |
| PINO_LOGGER_LEVEL | info | Pino log level |
| PINO_LOGGER_AUTO_LOGGING | true | Auto-log HTTP requests |
Docker
# Build
docker build -t hbf-notifications .
# Run (local dev)
docker compose up
docker-compose includes MySQL 8.0.34 (DB name: Notifications). Service depends_on db.
CI/CD
- Trigger: push to main/staging/develop
- Steps: SonarQube audit -> Docker build -> Push to ECR -> Deploy to EKS
- Deploy target: AWS EKS (helvia-dev, helvia-stg, helvia)
- Additional pipeline: azure-ci.yml deploys to Azure AKS (production only, using helviaagentsregistry ACR)
Notes
- Dual-cloud deployment: AWS EKS (all environments) and Azure AKS (production only).
- SSE real-time delivery for push notifications.