---
title: "Deploy Rocket.Chat | (Just Updated) Slack Alternative Whose Real-Time Chat Actually Works"
description: "Slack alternative with a real replica-set Mongo and no claimable admin"
category: "Other"
url: https://railway.com/deploy/rocketchat-or-just-updated-slack-alterna
---

# Deploy Rocket.Chat | (Just Updated) Slack Alternative Whose Real-Time Chat Actually Works

Slack alternative with a real replica-set Mongo and no claimable admin

**[Deploy Rocket.Chat | (Just Updated) Slack Alternative Whose Real-Time Chat Actually Works on Railway](https://railway.com/template/rocketchat-or-just-updated-slack-alterna)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/rocketchat-or-just-updated-slack-alterna/manifest.json

- **Creator:** SuperSlowSloth
- **Category:** Other
- **Total deploys:** 1

## Template content

### rocketchat

- **Image:** ghcr.io/bon5co/rocketchat-railway@sha256:f57793b8b6e997c6bf67992a3377b3bb01fe046405e7475fd763dd5d6c32626b
- **Health check:** /api/info
- **Public domain:** Yes

### mongodb

- **Image:** ghcr.io/bon5co/rocketchat-railway-mongo@sha256:4581f4a1568276eb9729b0bbf55ba71072434b2b0825b8603c6d3d3d3214f9f2

## Documentation

# Deploy and Host Rocket.Chat on Railway

Rocket.Chat is a self-hosted team chat platform — channels, threads, DMs, voice and
video calls, file sharing, bots and a full REST/Realtime API. It is the open-source
alternative to Slack and Microsoft Teams, and this template runs it on the
configuration it actually needs rather than the one that merely boots.

## About Hosting Rocket.Chat

Rocket.Chat is a Meteor application, and Meteor delivers messages in real time by
tailing MongoDB **change streams**. Change streams only exist on a replica set. Point
Rocket.Chat at a standalone `mongod` — which is what a stock `mongo` image gives you —
and the server still starts, still serves the web UI and still answers `/api/info`
with HTTP 200, so every healthcheck passes. Underneath, the database watcher fails on
a loop with `The $changeStream stage is only supported on replica sets` and never
recovers.

This template ships MongoDB as a **single-node replica set with keyfile internal
authentication**, initiated automatically on first boot. The stock MongoDB entrypoint
cannot do this by itself: a replica set member that has not been initiated refuses
writes, so the root user has to be created on a standalone instance first and the
replica set initiated afterwards, against the service's private Railway hostname.
Both images are pinned by digest.

Two services deploy: Rocket.Chat (public) and MongoDB (private, on a volume). Uploads
default to GridFS, so files live in MongoDB and persist on that same volume — nothing
lands on ephemeral container disk.

## Why Deploy Rocket.Chat on Railway?

Railway gives the stack a private IPv6 network between the app and the database, a
persistent volume for MongoDB, and a TLS domain that this template wires into
`ROOT_URL` automatically — so invite links, OAuth callbacks and uploaded-file URLs
point at your real domain instead of `localhost` from the first boot.

The admin account is seeded before the public domain answers. A stock Rocket.Chat
deploy grants the `admin` role to the **first person who registers**, which on a
public URL is whoever finds it first; open registration here is set to Secret URL and
the administrator already exists with the password Railway generated for you.

Sizing: the Rocket.Chat service settles around 700 MB RSS at idle. That fits Railway's
1 GB Trial limit with little headroom — for a real team, run it on Hobby.

## Common Use Cases

- Internal team chat for a company that wants its message history on its own infrastructure
- A community or customer support channel, with a public Secret-URL invite flow
- A chat backend for bots and applications, driven through Rocket.Chat's REST and Realtime APIs

## Dependencies for Rocket.Chat

- MongoDB 8.0 running as a replica set (included in this template, on a volume)

### Deployment Dependencies

- [Rocket.Chat documentation](https://docs.rocket.chat/)
- [Rocket.Chat environment variables](https://docs.rocket.chat/docs/rocketchat-environment-variables)
- Wrapper images: [bon5co/rocketchat-railway](https://github.com/bon5co/rocketchat-railway)

### Post-deploy

1. Open the public URL and log in as `admin` with the generated `ADMIN_PASS` (Railway
   variables on the Rocket.Chat service).
2. Change the admin email in **Admin → Users**, and the password if you want your own.
3. Invite people: **Admin → Settings → Accounts → Registration** holds the Secret URL,
   or switch registration to Public once you want open signups.


## Similar templates

- [Rocky Linux](https://railway.com/deploy/rocky-linux) — Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀
- [Foundry Virtual Tabletop](https://railway.com/deploy/X5tR6G) — A Self-Hosted & Modern Roleplaying Platform
- [Letta Code Remote](https://railway.com/deploy/letta-code-remote) — Run a Letta Code agent 24/7. No inbound ports, just deploy.

Open this page in a browser: https://railway.com/deploy/rocketchat-or-just-updated-slack-alterna
