Run with Docker Compose
Start the repository's broker, dashboard, and PostgreSQL services from source.
Use this path when you want to build MessageX from the checked-out repository rather than using the launcher.
1. Clone the repository
git clone https://github.com/sameeryadav05/MessageX.git
cd MessageX2. Create the environment file
macOS / Linux:
cp .env.compose.example .envWindows PowerShell:
Copy-Item .env.compose.example .envEdit .env and replace the example database and administrator passwords with strong unique values. Never commit the real .env file.
3. Build and start services
docker compose up -d --buildThe Compose configuration defines:
| Service | Purpose |
|---|---|
postgres | PostgreSQL 17 with a named persistent volume |
broker | MessageX broker, TCP listener, HTTP health/management server |
dashboard | React dashboard served by Nginx |
admin-init | One-shot administrator bootstrap task |
The broker waits for PostgreSQL's health check. The dashboard waits for the broker's readiness check. The admin initialization service runs after the broker is healthy.
4. Verify the deployment
docker compose ps
docker compose logs -f brokerOpen the dashboard at http://localhost:15672. The broker's TCP endpoint is localhost:5678.
In this Compose file, PostgreSQL is bound to 127.0.0.1:5433 on the host and listens on 5432 inside the Docker network.
5. Stop the deployment
docker compose downThis stops and removes containers and the Compose network while preserving named volumes. The following command also removes the persisted PostgreSQL data volume and should only be used when you intentionally want to destroy the local database:
docker compose down -vPublished images vs local builds
The repository Compose file defaults to locally built images:
messagex-broker:localmessagex-dashboard:local
You can override these with BROKER_IMAGE and DASHBOARD_IMAGE in .env. See published Docker images.