Layer 5 · self-hosting reality check
What it actually takes to self-host Zulip
The docs say 2 GB. In practice you want 4 GB for a small organisation. Here is the honest version — real requirements, real monthly cost, what you will be maintaining, and the one thing that catches people out.
Usually reached from Slack alternatives, where Zulip is one of the picks.
Wondering whether you need to at all? Is Slack free? — what the free tier actually allows, and where the wall is.
| RAM — documented minimum | 2 GB |
|---|---|
| RAM — what it really needs | 4 GB for a small organisation |
| CPU | 2 vCPU |
| Disk | 20 GB plus uploads |
| Monthly cost | $25–40/mo |
| Setup time | 1 hour — the installer is unusually good |
| How you install it | Official install script on Ubuntu or Debian; docker-zulip exists but is less supported |
| Ongoing maintenance | Low. The upgrade path is a single documented command. |
| Where it stops scaling | Thousands of users. Zulip's own instance is one of the largest open-source deployments running. |
The thing that catches people out
Zulip's threading model is genuinely different, not a skin on Slack — every message belongs to a topic inside a stream, and it is mandatory. Teams that migrate expecting Slack-with-history find people posting into the wrong topics for the first month, and the ones who push through prefer it while the ones who do not call the tool confusing. Budget for the habit change, not the migration.
When not to self-host Zulip
Your team will not adopt topic-based threading. The model is the product; fighting it leaves you with a worse Slack.
Every guide here carries this section. A site that only ever tells you to self-host is selling something — the useful answer is sometimes no.
Other Layer 5 self-hosting guides
- Self-hosting LibreOffice2 GB with a large spreadsheet open
- Self-hosting ONLYOFFICE6 GB for the Document Server with a handful of concurrent editors
- Self-hosting Collabora Online4 GB, and roughly 1 GB per 20 concurrent documents
- Self-hosting CryptPad2 GB for a small instance
- Self-hosting Mattermost4 GB for a team of 50 with PostgreSQL on the same box
- Self-hosting Rocket.Chat6 GB with MongoDB on the same machine
Common questions
- How much RAM does Zulip actually need?
- 4 GB for a small organisation in practice. The documented minimum is 2 GB, which is the figure at which the process starts rather than the figure at which it works under real use. 2 vCPU alongside it.
- What does self-hosting Zulip cost per month?
- $25–40/mo This is commodity VPS pricing and excludes your time, which is the larger cost for most people — budget for low. The upgrade path is a single documented command.
- How long does it take to set up Zulip?
- 1 hour — the installer is unusually good, via Official install script on Ubuntu or Debian; docker-zulip exists but is less supported.
- When should I NOT self-host Zulip?
- Your team will not adopt topic-based threading. The model is the product; fighting it leaves you with a worse Slack.
- What is the most common mistake when self-hosting Zulip?
- Zulip's threading model is genuinely different, not a skin on Slack — every message belongs to a topic inside a stream, and it is mandatory. Teams that migrate expecting Slack-with-history find people posting into the wrong topics for the first month, and the ones who push through prefer it while the ones who do not call the tool confusing. Budget for the habit change, not the migration.