Self-hosted Message Broker Platform
Repository: sameeryadav2005/messagex-broker-v2
MessageX Broker is the core messaging service of the MessageX platform. It handles client connections, message publishing, routing, queue management, consumer delivery, acknowledgements, and message recovery.
Client Applications
(JavaScript / Python / Java)
|
| TCP :5678
v
MessageX Broker
| |
| +---- HTTP API :3000
|
v
PostgreSQL
:5432
docker pull sameeryadav2005/messagex-broker-v2:0.1.1
For a complete installation, use the official MessageX Launcher:
docker run -d \
--name messagex \
--restart unless-stopped \
-v /var/run/docker.sock:/var/run/docker.sock \
-v messagex_launcher_data:/data \
sameeryadav2005/messagex-v2:0.1.8
The launcher provisions PostgreSQL, the broker, dashboard, networking, and initial administrator account.
The broker requires PostgreSQL. The following example demonstrates the required container networking and startup sequence.
docker network create messagex-net
Use a strong password containing URL-safe characters for this example.
docker run -d \
--name messagex-postgres \
--network messagex-net \
--network-alias postgres \
--restart unless-stopped \
-e POSTGRES_USER=messagex \
-e POSTGRES_PASSWORD=ChangeThisStrongPassword123 \
-e POSTGRES_DB=messagex \
-v messagex-postgres-data:/var/lib/postgresql/data \
postgres:17
Wait until PostgreSQL is ready:
docker exec messagex-postgres \
pg_isready -U messagex -d messagex
docker run -d \
--name messagex-broker \
--network messagex-net \
--restart unless-stopped \
-e NODE_ENV=production \
-e HOST=0.0.0.0 \
-e HTTP_PORT=3000 \
-e TCP_PORT=5678 \
-e DATABASE_URL=postgresql://messagex:ChangeThisStrongPassword123@postgres:5432/messagex \
-e ACK_TIMEOUT_SECONDS=30 \
-e ACK_TIMEOUT_CHECK_INTERVAL_MS=5000 \
-p 5678:5678 \
sameeryadav2005/messagex-broker-v2:0.1.1
The broker runs database migrations during startup.
After the broker is healthy, initialize the first administrator:
docker run --rm \
--network messagex-net \
-e DATABASE_URL=postgresql://messagex:ChangeThisStrongPassword123@postgres:5432/messagex \
-e MESSAGEX_ADMIN_USERNAME=admin \
-e MESSAGEX_ADMIN_PASSWORD=YourStrongAdminPassword123 \
sameeryadav2005/messagex-broker-v2:0.1.1 \
node apps/broker/scripts/bootstrap-admin.mjs
Save these credentials. They are used to authenticate with the MessageX Dashboard and SDK.
View logs:
docker logs -f messagex-broker
Check readiness from inside the Docker network:
docker run --rm \
--network messagex-net \
curlimages/curl:latest \
http://messagex-broker:3000/health/ready
| Variable | Default | Description |
|---|---|---|
NODE_ENV | — | Runtime environment |
HOST | 127.0.0.1 | Bind address |
HTTP_PORT | 3000 | Management API port |
TCP_PORT | 5678 | Broker TCP port |
DATABASE_URL | Required | PostgreSQL connection URL |
ACK_TIMEOUT_SECONDS | 30 | Acknowledgement timeout |
ACK_TIMEOUT_CHECK_INTERVAL_MS | 5000 | Delivery recovery interval |
Important: Use HOST=0.0.0.0 inside Docker so that other containers can reach the broker.
| Port | Protocol | Purpose |
|---|---|---|
| 5678 | TCP | SDK and application connections |
| 3000 | HTTP | Management API and health checks |
| 5432 | TCP | PostgreSQL, private network |
Only publish TCP port 5678 for client connections. Keep ports 3000 and 5432 private.
Install the SDK:
npm install messagex-client
Example:
import { MessageX } from "messagex-client";
const client = new MessageX({
host: "localhost",
port: 5678,
username: "admin",
password: "YourStrongAdminPassword123"
});
await client.connect();
console.log("Connected to MessageX Broker");
# Broker logs
docker logs -f messagex-broker
# Restart broker
docker restart messagex-broker
# Stop broker
docker stop messagex-broker
# Start broker
docker start messagex-broker
MessageX — Your infrastructure. Your messages. Your control.
Content type
Image
Digest
sha256:d07db7b19…
Size
93.9 MB
Last updated
3 days ago
docker pull sameeryadav2005/messagex-broker-v2:0.1.1