Rocket.Chat
Team chat with an apps marketplace and omnichannel - stateless, on a MongoDB replica set.
One-click deploy, from $25/mo on a Miget plan.
Rocket.Chat is the maximalist open-source team chat: channels, threads, DMs, voice/video, an apps marketplace, and omnichannel (livechat widget, email, social) - the most feature-rich free option, MIT at the core. The app itself is stateless; everything lives in MongoDB.
That MongoDB is the one real requirement: Rocket.Chat needs a replica set (it relies on change streams), which this catalogue’s mongodb template provides as three nodes. Deploy that, point MONGO_URL at it, and the Rocket.Chat container is disposable - a clean cross-template showcase.
This catalogue ships Mattermost as the simpler default team chat (one plain Postgres); Rocket.Chat is here for teams who want its marketplace and omnichannel and are happy running the replica set alongside.
Upstream project: Rocket.Chat
#what you get
- Channels, threads, DMs, voice/video, screen share
- Apps marketplace and a rich integration ecosystem
- Omnichannel: livechat widget, email, and social inboxes
- Stateless app container - all state in MongoDB
- Leans on the mongodb replica-set template (3 nodes)
- MIT core (enterprise features gated by a key)
#topology
| Service | Role | Public |
|---|---|---|
| rocketchat | server + API (stateless, :5000) | yes |
| mongo | MongoDB replica set - the catalogue’s mongodb template on Miget | no |
#miget sizing
// this stack needs
3 GiB RAM · 10 GB disk · 1 service
The app is stateless (2 GiB) - the mongodb template carries persistence. Add its 3-node footprint when budgeting the full setup.
Hobby - recommended fit
$25/mo
2 vCPU · 4 GiB · 80 GiB disk
Headroom for your own apps: 8 GiB at $49/mo
Professional - production
$43/mo
2 vCPU · 4 GiB · 25 GiB disk
Dedicated resources, production SLOs - plan details
One Miget plan is a fixed pool of compute - the whole stack (managed databases included) deploys inside it, and anything left over runs your other apps. No per-service or per-seat math.
#vs. the managed service
What the hosted equivalents charge, against the flat Miget plan this stack fits on. Prices as of June 2026, sources linked.
| Service | Plan | Monthly | What you get |
|---|---|---|---|
| Rocket.Chat on Miget ★ | 4 GiB plan | $25 | this whole stack, flat - no usage meters, and room left for your own apps |
| Slack | Pro | ~$219 | $8.75/user/mo at 25 users |
| Rocket.Chat Cloud | paid | usage-based | contact-sales; the self-hosted Community edition is free (MIT) |
#vs. other PaaS
Estimated monthly cost of running this exact stack (3 GiB RAM, 10 GB disk, 1 container) elsewhere, from published June 2026 rates.
| Platform | Est. monthly | Notes |
|---|---|---|
| Miget ★ | $25 flat | compose stacks first-class: one deploy, dedicated vCPU, managed Postgres/Valkey, volumes and TLS all included in the plan |
| Heroku | ~$150 | no volumes; nothing between 1 GB ($50) and 2.5 GB ($250) dynos - 2 GB containers cost far more than shown |
| DO App Platform | ~$41 | no persistent volumes - stateful containers need managed DBs/Spaces (base $5 Spaces included here) |
| Render | ~$40 | per-service instances (0.5 GB $7, 2 GB $25) - every container is its own paid service |
| Railway | ~$32 | usage-based ($10/GB RAM-mo); vCPU billed separately at $20/vCPU-mo on top |
| Fly.io | ~$19 | cheapest sticker price - but burstable shared CPUs (1/16 core; dedicated vCPUs cost ~2-3×), no compose deploys (one app per container, manual wiring), managed DBs billed extra |
Estimates assume RAM fully allocated at published on-demand rates - and sticker price isn't the whole comparison: the cheaper rows buy burstable shared CPUs, per-service wiring instead of a compose deploy, and managed databases billed separately. Heroku and DO App Platform have no persistent volumes at all - stateful stacks like this one need workarounds there.
#deploy it
On Miget
- Create a Compose Stack in app.miget.com pointing at the templates repository
- Set the stack path to
rocketchat -
Set the required variables:
ROOT_URL, the app’s https domainMONGO_URL, the mongodb template’s replica-set connection string (…?replicaSet=rs0)
- Deploy. Miget layers
compose.miget.yaml(RAM, privacy, volumes, managed services) automatically
Locally first?
Every template is portable, vanilla Docker Compose - the Miget overrides are ignored locally:
git clone https://github.com/deployable-sh/stacks
cd miget-compose-templates/rocketchat
docker compose up -d Same files, same behavior. The template README covers connection strings and scaling notes.
#faq
Why does it need a MongoDB replica set?
Rocket.Chat uses MongoDB change streams for realtime updates, which require a replica set - standalone MongoDB is not supported. The catalogue’s mongodb template is a 3-node replica set built for exactly this; point MONGO_URL at it with ?replicaSet=rs0.
Rocket.Chat or Mattermost?
Mattermost is the lower-effort default (one plain managed Postgres, this catalogue’s recommended team chat). Rocket.Chat brings an apps marketplace and omnichannel support, at the cost of running the MongoDB replica set. Pick by whether you want those extras.
Is the app really stateless?
Yes - uploads default to GridFS in MongoDB and all data lives there, so the Rocket.Chat container has no volume. Redeploys and upgrades are clean; back up the mongodb template and you have backed up everything.
Ship Rocket.Chat today
One compose stack, 3 GiB of RAM, from $25/month flat, and it runs on your laptop with the same files.