Deployment: hbf-console
Infrastructure config for this service. Full platform deployment:
docs/architecture/deployment.md
Runtime
- Port: 3000 (serve), mapped 8085:3000 in docker-compose
- Base image: node:22-slim (multi-stage build then serve)
- Start command:
node_modules/.bin/serve -s build - Health check: none defined
Required Environment Variables
All env vars are build-time only (REACT_APP_*), baked into the static bundle.
| Variable | Example | Description |
|---|---|---|
| REACT_APP_API_CORE_URL | https://api.example.com/core | Core API URL |
| REACT_APP_API_WEBCHAT_URL | https://api.example.com/webchat | Webchat API URL |
| REACT_APP_API_LIVECHAT_URL | https://api.example.com/livechat | Livechat API URL |
| REACT_APP_API_REPORTS_URL | https://api.example.com/reports | Reports API URL |
| REACT_APP_API_MEDIA_URL | https://api.example.com/media | Media API URL |
| REACT_APP_API_NOTIFICATIONS_URL | https://api.example.com/notifications | Notifications API URL |
| REACT_APP_API_NLP_SERVICE_URL | https://api.example.com/nlp | NLP service API URL |
| REACT_APP_API_DATA_MANAGER_URL | https://api.example.com/data-manager | hbf-data-retention service URL (exposed as API_DATA_MANAGER_URL in src/constants/env.js) |
| REACT_APP_GOOGLE_CLIENT_ID | (client ID) | Google OAuth client ID |
| REACT_APP_MICROSOFT_CLIENT_ID | (client ID) | Microsoft OAuth client ID |
| REACT_APP_API_KNOWLEDGE_MANAGER_URL | https://api.example.com/knowledge-manager | Knowledge manager service URL |
| REACT_APP_API_SCHEDULER_URL | https://api.example.com/scheduler | Scheduler service URL |
Plus ~25 feature flag toggles (REACT_APP_*_ENABLED / REACT_APP_*_DISABLED).
Docker
# Build
docker build -t hbf-console .
# Run (local dev)
docker compose up
CI/CD
- Trigger: push to main/staging/develop
- Pipelines: ci.yml (SonarQube audit only, no deployment)
- Deploy target: none (CI does not deploy this package)
Notes
- React SPA. All configuration is injected at build time via
REACT_APP_*env vars. Changing config requires a rebuild. - CI pipeline runs SonarQube analysis only; there is no automated deployment step.