Skip to main content

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

VariableExampleDescription
SERVICE_PORT2048NestJS listening port
SERVICE_LOG_LEVELinfoApplication log level
TYPEORM_CONNECTIONmysqlDatabase driver
TYPEORM_HOSTlocalhostMySQL host
TYPEORM_PORT3306MySQL port
TYPEORM_USERNAMErootMySQL user
TYPEORM_PASSWORDsecretMySQL password
TYPEORM_DATABASENotificationsMySQL database name
TYPEORM_MIGRATIONSdist/migrations/*.jsMigration file glob
TYPEORM_AUTORUN_MIGRATIONStrueRun migrations on startup
CORE_URLhttp://hbf-core:8080hbf-core API base URL
CORE_TOKENsecretBearer token for outbound calls to hbf-core (used in src/clients/hbf-core/hbf-core.service.ts)
JWT_SECRETchangemeJWT signing secret
PINO_LOGGER_USEtrueEnable Pino logger
PINO_LOGGER_LEVELinfoPino log level
PINO_LOGGER_AUTO_LOGGINGtrueAuto-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.