Prerequisites

📦v1.0.0📅2026-04-28🔄Updated 2026-04-28👤Admin Team
administrationinstallationprerequisites

Prerequisites

Before installing Message Center, ensure all dependencies and configuration requirements are in place.


Runtime Dependencies

Node.js

  • Version: Node.js 20 or later (LTS recommended)
  • Verify: node -v — must show v20.x or higher
  • The build process requires Node.js 20+ for native fetch, experimental flags, and performance characteristics that the BFF relies on.

Yarn

  • Version: Yarn 1.x (Classic) — installed via npm install -g yarn
  • Used for dependency installation and script execution.

Docker

  • Required for running MongoDB locally in development (via make dev).
  • Required for building the production Docker image (make docker-build).

MongoDB

  • Version: MongoDB 6.0 or later
  • Deployment: A dedicated MongoDB cluster (not shared with Core or other services)
  • Database name: Configurable via MONGODB_DB (default: core_admin)
  • Authentication: Root credentials for production (MONGO_ROOT_USER, MONGO_ROOT_PASSWORD)

Network access: The MongoDB instance must be reachable from the Message Center pod/container. In Kubernetes, restrict access via NetworkPolicy — only the message-center pod should reach port 27017.


mTLS Certificates

Message Center communicates with Proxy and Core over mutual TLS. You need the following certificate files from your sms-sender/core certificate authority:

FilePath (default)Description
CA certificatecerts/ca/ca.crtRoot CA that signed all service certs
Client certificatecerts/client/core.crtMessage Center's identity cert
Client private keycerts/client/core.keyMust be kept secret

The certs/ directory is git-ignored. In Kubernetes, mount these as a read-only Secret volume at /app/certs.

Certificate rotation: Message Center hot-reloads certificates without restart. See mTLS Certificates for the rotation procedure.


BFF Service Account

Message Center authenticates to Proxy using a dedicated service account. Before deploying:

  1. Create a service account in Proxy (or ask the Proxy administrator).
  2. Note the credentials: email and password.
  3. Set BFF_PROXY_EMAIL and BFF_PROXY_PASSWORD in the environment.

This account is not an end-user account — it is used exclusively for service-to-service JWT acquisition.


Network Requirements

Verify connectivity before deploying:

SourceDestinationPortProtocol
Message CenterProxy8088HTTPS + mTLS (JWT login)
Message CenterProxy/Core API8089HTTPS + mTLS (API calls)
Message CenterCore8080HTTPS + mTLS (admin API)
Message CenterCore (health)8092HTTP (no mTLS)
Message CenterMongoDB27017TCP
BrowserMessage Center3000HTTP/HTTPS

Optional: Grafana

To enable the embedded monitoring dashboard:

  • Grafana 9.x or later
  • GF_SECURITY_ALLOW_EMBEDDING=true set in Grafana's configuration
  • Dashboard URL accessible from users' browsers (not just from the server)

See Monitoring & Alerts for the full Grafana integration guide.


Optional: Aerospike

If your Core deployment uses Aerospike for recipient caching, the Message Center Diagnostics page can query Aerospike statistics. No configuration is required in Message Center — it reads Aerospike data through Core's admin API.


Production Sizing (Minimum)

ResourceMinimumRecommended
CPU100m (0.1 vCPU)500m (0.5 vCPU)
Memory256 Mi512 Mi
Disk (MongoDB)10 GB100 GB+
Disk (/tmp for uploads)2 GB10 GB

Memory consumption is dominated by MongoDB driver connection pooling and Next.js server-side rendering. Heap usage for file uploads is O(chunk size) regardless of file size due to streaming.


Next Steps