Skip to main content

Deployment: hbf-event-publisher

Infrastructure config for this service. Full platform deployment: docs/architecture/deployment.md

Runtime

  • Port: 5000
  • Base image: node:18.12.1 / node:18.12.1-slim (multi-stage)
  • Build: Multi-stage Dockerfile. Stage 1 installs dependencies only (no npm run build, no dist/ created). Stage 2 copies raw source with COPY . ..
  • Start command: nest start (compiles TypeScript on-the-fly, not from pre-compiled dist/). Use npm run start:prod for production.
  • Health check: none defined

Required Environment Variables

VariableExampleDescription
TYPEORM_HOSTdbMySQL host
TYPEORM_USERNAMErootMySQL username
TYPEORM_PASSWORDMySQL password
TYPEORM_DATABASEpublisherMySQL database name
PINO_LOGGER_USEfalseEnable Pino structured logging

Docker

# Build
docker build -t hbf-event-publisher .

# Run (local dev)
docker compose up

docker-compose starts MySQL 8.0.34 (database: publisher) and the service (hbf-publisher) on port 5000.

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)

Notes

  • Handles Power Automate webhooks and Firebase FCM push notifications.
  • docker-compose names the service hbf-publisher (not hbf-event-publisher).
  • CI does not pass GITHUB_TOKEN as a Docker build arg.