Zulip on GCP: Own Your Team Chat, Stop Renting Seats

Most people land here after a Slack renewal notice. Slack's free plan caps history at 90 days, and the paid plans charge per person per month. Zulip flips that: you own the server and the messages, and you're not renting seats. The trade is that you also own the uptime.

Zulip on GCP by Meetrix is a self-hosted team chat server you launch from GCP Marketplace and run in your own Google Cloud project. It ships Zulip 12.2 on Ubuntu 26.04, with the database, queue, and cache already installed. What's left is your domain, your SMTP details, and a first organization. You can find the Meetrix Zulip listing on GCP Marketplace.

What Is Zulip?

Zulip is an open-source team chat app, licensed Apache 2.0, that organizes every conversation by topic instead of one long channel feed. Its README calls it "an open-source organized team chat app with unique topic-based threading that combines the best of email and chat." The topic part is the whole point.

In Slack, a busy channel is one long feed. Three conversations interleave, and you scroll to work out which reply belongs to what. In Zulip, every message goes into a channel and a topic. You might have a channel called backend with topics like "Postgres upgrade", "flaky login test" and "on-call rota". Each is its own thread.

That has a practical payoff for a team spread across time zones. Nobody has to be online when a discussion starts, and nobody has to read every message to catch up. You open the topics you care about and skip the rest.

It also has a cost, and I'd rather say it now: everyone has to name a topic when they post. Some teams love that within a week. Others never quite adopt it, and then Zulip is just Slack with extra steps.

What's Inside the Zulip GCP Image

The Marketplace listing packages the same stack as the AWS image:

Software

Zulip Server 12.2

The current stable release, including the August 2026 security fixes, running on Ubuntu 26.04.

Base OS

Ubuntu 26.04, Security-Hardened

On Zulip's own supported list alongside 22.04, 24.04, and Debian 12 and 13.

Data Services

PostgreSQL, RabbitMQ and Redis

Installed, versioned together, and already talking to each other before you've opened a terminal.

Certificates

SSL via Let's Encrypt

Configured automatically at launch once your domain's DNS points at the instance.

Integrations

100+ Out of the Box

Per the Marketplace listing, covering the usual channels, bots and webhook integrations a team chat needs.

Zulip 12.0, released in April 2026, was a solid release to start on. It brought end-to-end encryption for mobile push notifications as a generally available feature, a redesigned Recent Conversations view with a new table layout, a major upgrade for Docker, and configurable image previews. Zulip 12.1 was a bug-fix release in June, and 12.2 followed in August 2026. That 12.2 release was a security release fixing five vulnerabilities, including a guest-user access issue and an OpenID Connect email verification flaw. The Mattermost import tool also got a speed boost, and some database migration crashes from 11.x upgrades were fixed.

How to Deploy Zulip on GCP

Before you start, have these ready: a GCP project with billing enabled, a domain name, and SMTP credentials so Zulip can send invitations and sign-up emails. Gmail works if you use an app password rather than your account password.

  1. Launch From GCP Marketplace Open the Zulip listing on GCP Marketplace, select your project, and launch the deployment.
  2. Fill In the Deployment Fields Your domain, your SMTP details, and the machine type. e2-medium (2 shared vCPU, 4 GB memory) is a comfortable default.
  3. Point Your Domain at the Instance Point your domain at the instance's external IP. The image tries to issue SSL automatically through Let's Encrypt once DNS has propagated. If it fails, you run Zulip's certbot script over SSH instead.
  4. Create Your First Organization SSH in and run generate_realm_creation_link. A new Zulip server won't let anyone create an organization without that one-time link, which is a sensible default, and the step to remember.
  5. Invite Your Team Open the link, create the organization, and invite your team.

The launch walkthrough, with screenshots of every deployment field, is in our Zulip GCP developer guide, linked under Resources below. This article is the "should we do this" half.

Open only what Zulip needs

Zulip needs port 443 for HTTPS, port 80 if you want the redirect, and outbound access on 587 for email. It also needs outgoing web access for image previews and mobile push. Keep SSH (port 22) limited to your own IP addresses.

What Meetrix Brings to This Deployment

  • No Dependency Wrangling - PostgreSQL, RabbitMQ and Redis come already installed and wired together. Running Zulip by hand means getting all three installed, versioned correctly and talking to each other before the server will even start.
  • SSL From the Start - The image tries to issue a Let's Encrypt certificate automatically once your domain resolves, instead of a manual certbot pass you run yourself.
  • Security-Hardened Base Image - Ubuntu 26.04, kept current, with the server's own supported-OS list rather than something you patched together.
  • No Per-Seat Licence Fee - You pay GCP's rate for the machine type you choose, plus the Meetrix licence fee shown before you deploy. Zulip's own software carries none.
  • People Who Actually Run This Stack - Support goes to support@meetrix.io with a reply inside 12 hours, from engineers who deploy this image regularly.

Who Is Zulip on GCP Right For?

This fits teams that want threaded, topic-based chat without handing their messages to a third party. More specifically, it's a strong match if you're:

  • A technical team spread across time zones, tired of scrolling a Slack channel to work out which reply belongs to what
  • An organisation whose messages can't sit on someone else's servers, for compliance or plain preference
  • A team whose Slack bill grows every time someone joins, and wants that to stop scaling with headcount
  • Someone migrating from Slack who wants to bring channels, messages and emoji across instead of starting cold
  • A GCP-native shop that would rather keep chat in the same project as the rest of its infrastructure

Resources

Zulip Server Requirements and Sizing

Zulip's own docs are refreshingly specific. Under 100 users, they ask for at least 2 GB of RAM and one CPU. From 100 users up, it's 4 GB and two CPUs. You'll also want at least 10 GB of free disk space, which generally means a 25 GB total disk once you account for the OS. CPU is rarely the bottleneck. RAM is.

The GCP Marketplace page shows an estimated monthly cost, made up of the Meetrix licence fee and the underlying infrastructure fee, based on the machine type and disk size you pick, before you deploy. On the default e2-medium, Google's own on-demand compute cost runs around $0.055 per hour in us-central1, or roughly $40 a month, before the Meetrix licence fee and storage. Spot pricing brings that down to about $0.033 per hour, or around $24 a month. There's a 5-day free trial with up to $50 in licence fee credits, though infrastructure charges still apply during the trial.

My advice: e2-medium is fine to trial with a handful of people, but it sits exactly on Zulip's 2 GB minimum once you account for the OS and services sharing that memory. If this is going to be the company's real chat, size up to a larger e2-standard type. You won't be resizing during a busy week.

Zulip vs Slack Pricing

Here's the comparison that usually decides it. Prices are the public list prices in September 2026, per user per month with annual billing.

Option Where it runs Price Message history
Zulip on GCP (Meetrix) Your GCP project $0 licence, plus the Meetrix licence fee and GCP costs Yours, no cap
Zulip Cloud Standard Zulip's servers $6.67, or $8 billed monthly Unlimited search
Zulip Cloud Free Zulip's servers $0 10,000 searchable messages
Slack Pro Slack's servers $7.25, or $8.75 billed monthly Unlimited
Slack Business+ Slack's servers $15, or $18 billed monthly Unlimited
Slack Free Slack's servers $0 90 days

Sources: Zulip plans and Slack pricing.

Now the number nobody puts on the pricing page. Here's the monthly bill for a 50-person team:

$362.50
Slack Pro, 50 seats
vs
~$175 + infra
Self-hosted Zulip Basic, 50 seats

Slack Business+ at $15 a seat is $750 a month for the same 50 people. Self-hosted Zulip on the Basic plan, at $3.50 per user, is $175 a month, plus the Meetrix licence fee and whatever the instance costs on your GCP bill, typically well under $100 more at this scale.

Why would you pay Zulip anything if the software is free? Because of push notifications. On the free self-hosted plan, mobile push is limited to 10 users, unless your group qualifies for the free Community plan (open-source projects, academic research, small nonprofits, families and friends). Past 10 people who want phone alerts, you need Basic, or Business at $6.67 with a 25-user minimum. That plan is a separate arrangement with Zulip, not part of your GCP bill. It's also worth knowing before you promise anyone "free".

Migrate From Slack to Zulip

You can bring your history with you. Zulip's Slack import carries over messages, attachments, reactions, users, channels and custom emoji. Two limits are worth checking before you commit. Slack only lets Business+ and Enterprise Grid workspaces export private channels and direct messages, so on a Pro workspace you'd get public channels only. And Slack threads don't stay threads. They come across as topics.

The import also creates a new Zulip organization. Your imported message history can't be added into an existing Zulip organization, so do it on day one, not after your team has been chatting for a month.

Is Self-Hosted Zulip Worth It?

Skip it if you have five people, no compliance requirement and nobody who wants to look after a server. Pay for the hosted plan. Skip it, too, if your team won't adopt topics, because the whole benefit disappears.

And if threaded chat isn't the deciding factor, look at the other options first. Our comparisons of Mattermost vs Slack and Rocket.Chat vs Mattermost cover the channel-style alternatives, and self-hosted Microsoft Teams alternatives puts Zulip next to eight others. If your compliance needs stop at keeping the models in-house too, vLLM on GCP covers that side of the stack.

Video Calls and Integrations

Chat is only half of a workspace. Zulip's call button hands off to a video provider, and the 12.0 release added Nextcloud Talk, Constructor Groups and Webex to the list. If you want the meeting server on your own infrastructure as well, our Zammad on GCP developer guide sets up a help desk in the same project, and our roundup of self-hosted options covers the wider collaboration stack.

Frequently Asked Questions

Is Zulip free to self-host?

Yes. The software is Apache 2.0 licensed and free to run on your own server. You only pay for things like mobile push notifications past 10 users, or commercial support if you want it.

What is the difference between Zulip and Slack?

Zulip organizes every conversation by topic within a channel. Slack uses one long feed per channel, with optional threads. That difference matters most for teams spread across time zones.

Is Zulip really an open source Slack alternative?

Yes. It's fully open source under Apache 2.0, and it covers the core team chat features Slack does, channels, direct messages, file sharing, integrations, with a different threading model.

How much memory does a Zulip server need?

At least 2 GB of RAM for small teams. For 100+ users, Zulip recommends 4 GB and two CPUs. You'll also want at least 10 GB of free disk space.

What is included in the Meetrix Zulip GCP image?

Zulip 12.2 on Ubuntu 26.04, with PostgreSQL, RabbitMQ, Redis, nginx, and automatic SSL configuration already set up.

Can I move my Slack history into Zulip?

Yes, but with limits. You can import messages, attachments, reactions, users, and channels. Private channels and DMs only export from Slack Business+ or Enterprise Grid workspaces. And the import creates a new organization, it can't be merged into an existing one.

Which ports does Zulip need open?

Port 443 for HTTPS, port 80 for the redirect, and outbound 587 for email. SSH (port 22) should be restricted to your own IPs.

Does Meetrix support this image?

Yes. Support goes to the engineers who build the image at support@meetrix.io, with a reply inside 12 hours.

Run Your Own Team Chat on GCP

Launch Zulip 12.2 in your own GCP project with SSL set up, and a team that can help when you need it.

Deploy on GCP Marketplace