Rocket.Chat is a self-hosted team communication platform with channels, direct messages, video calls, and integrations.
It's an open-source alternative to Slack with support for federation and omnichannel messaging.
flowchart LR
User([User]) -->|:3000| RC[Rocket.Chat]
RC --> Mongo[(MongoDB)]
RC --> Integrations[Webhooks / Bots]
- Rocket.Chat serves the web UI and API on port 3000.
- MongoDB stores users, messages, channels, and configuration.
- A replica set is required for Rocket.Chat's oplog tailing (real-time updates).
- Integrations support webhooks, bots, OAuth, and omnichannel livechat.
- Rocket.Chat image:
rocket.chat:latest - MongoDB image:
mongo:6.0 - Container names:
rocketchat,rocketchat-mongo,rocketchat-mongo-init - Web UI:
http://<host-ip>:3000 - Persistent data:
mongo_data:/data/db
Set via .env (copy from .env.example):
ROCKETCHAT_PORT(default:3000)ROOT_URL(default:http://localhost:3000)
From the repository root:
cd rocket-chat
cp .env.example .env
docker compose up -dOpen:
- Rocket.Chat UI:
http://localhost:3000
On first access, complete the setup wizard to create your admin account and organization.
Useful commands:
docker compose ps
docker compose logs -f rocketchat
docker compose restart
docker compose down- Create channels for teams, projects, or topics.
- Set up incoming webhooks for CI/CD and monitoring notifications.
- Enable omnichannel for customer support livechat.
- Install apps from the Rocket.Chat Marketplace for extended functionality.
- MongoDB must run as a replica set — the
mongo-init-replicacontainer handles initialization automatically. - The init container runs once and exits; this is expected behavior.
- First startup may take a minute while MongoDB initializes the replica set.
- For production, set
ROOT_URLto your public domain and configure TLS via a reverse proxy. - See Rocket.Chat docs for full configuration reference.