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, nodist/created). Stage 2 copies raw source withCOPY . .. - Start command:
nest start(compiles TypeScript on-the-fly, not from pre-compiled dist/). Usenpm run start:prodfor production. - Health check: none defined
Required Environment Variables
| Variable | Example | Description |
|---|---|---|
| TYPEORM_HOST | db | MySQL host |
| TYPEORM_USERNAME | root | MySQL username |
| TYPEORM_PASSWORD | MySQL password | |
| TYPEORM_DATABASE | publisher | MySQL database name |
| PINO_LOGGER_USE | false | Enable 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(nothbf-event-publisher). - CI does not pass
GITHUB_TOKENas a Docker build arg.