Skip to main content

Deployment: hbf-broadcast

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

Runtime

  • Port: 3000 (default from config/default.yml; override with PORT env var)
  • Base image: node:18 (build stage) / node:18-slim (run stage)
  • Start command: npm run apm-start
  • Health check: none defined

Required Environment Variables

VariableExampleDescription
HOST0.0.0.0Bind address
PORT3000Listen port (default from config/default.yml)
NODE_ENVdevEnvironment name
CORE_URLhttp://hbf-core:8080Core service URL
CORE_TOKEN(secret)Auth token for Core service
SCAN_INTERVAL_TIME60Broadcast scan loop interval in seconds
FB_GRAPH_VERSIONv2.6Facebook Graph API version
FB_MAX_USERS_PER_BATCH100Facebook batch size
FB_BATCH_DELAY15Delay between Facebook batches (seconds)
TEAMS_MAX_USERS_PER_BATCH200Teams batch size
TEAMS_BATCH_DELAY15Delay between Teams batches (seconds)
VIBER_MAX_USERS_PER_BATCH150000Viber batch size
VIBER_BATCH_DELAY10Delay between Viber batches (seconds)

Docker

# Build
docker build -t hbf-broadcast .

# Run (local dev)
docker compose up

CI/CD

  • Trigger: push to main/staging/develop
  • Pipelines: ci.yml
  • Steps: SonarQube audit -> Docker build -> Push to ECR -> Deploy to EKS
  • Deploy target: AWS EKS (helvia-dev, helvia-stg, helvia)

Notes

  • Daemon process with a scan loop (no HTTP API beyond health). No external database; reads broadcast definitions from Core.