How to Deploy Zulip with xCloud One Click Apps

Updated November 2, 2026 · 6 min read

Summarize with:
Share:

Zulip is an open-source team chat app that keeps every conversation in a channel and a topic, so people can catch up without reading everything. In xCloud, you install it from One Click Apps. You choose the organization name and owner, and xCloud creates both, generates the passwords and puts Zulip on a domain with HTTPS.

Zulip has one domain and no public ports. Its supporting services run alongside it and stay private to the app, so you don’t need a firewall rule or extra domains.

This install doesn’t set up outgoing email, so Zulip can’t send invitations or password resets until email is set up. This guide doesn’t cover that setup. See Inviting your team.

Before you start

You need:

  • An xCloud server that uses Nginx, with at least 4 GB of RAM, 2 CPU cores and 20 GB of free disk. Plan for more disk as uploads and message history grow.
  • An email address for the first organization owner. You sign in with it.

If you don’t have your domain ready, start with a Demo Site and move to your own domain later.

Step 1: Choose Zulip

Open Servers, open the menu for your server and click Add New Site. Click the One Click Apps tab, type Zulip in the search box and click its card.

Click the Zulip card in the One Click Apps tab of Add Your New Site

Expected result: The Install Zulip page opens for your server.

Step 2: Set the site and first owner

Enter a Site Title. Under Domain Setup, choose Demo Site to use a generated test domain, or Go Live to use your own. Then fill in Initial Organization Owner:

Field What to enter
Organization Name The name your team sees in Zulip
Owner Full Name The display name of the first owner
Owner Email The address the first owner signs in with

Fill in Organization Name, Owner Full Name and Owner Email on the Install Zulip page

Click Next.

Expected result: xCloud shows the install progress. Zulip starts several services, so it can take longer than a smaller app. When it finishes, the site is ready to open.

Step 3: Find your login

Open the site and go to Access Data → Credentials. The Zulip Credentials card lists the Zulip URL, Owner Email and Initial Owner Password. Click the eye icon to show the password.

The Initial Owner Password on the Zulip Credentials card

Expected result: The Zulip Credentials card shows your login details.

Step 4: Sign in and change the password

Open the Zulip URL and sign in with the owner email and initial password. Zulip shows a Welcome to Zulip page the first time. Make sure the email address shown is yours, then click Continue.

Click Continue on the Welcome to Zulip page after your first sign-in

Then change the password. Click the gear icon at the top right and open Personal settings.

Open Personal settings from the gear menu in Zulip

On the Account & privacy tab, click Change your password. Enter your Old password and New password, then click Change.

Expected result: You can sign in with the new password. The value on the Credentials card doesn’t change with it, and it won’t work once you’ve changed your password.

Move from a demo domain to your own

If you installed on a Demo Site, do this before your team starts using Zulip, so that everyone starts on the final address.

  1. Open the site and go to Domain → Domain.
  2. On the Demo Site Domain card, click Go Live.
  3. Enter your domain and point an A record for it to your server.
  4. Click Verify My DNS, then click Go Live.

Click Go Live on the Demo Site Domain card of the Zulip site

Expected result: xCloud shows Domain update request is sent for processing. When the move finishes, open Access Data → Credentials and check that Zulip URL shows your domain. Open that address and confirm you can sign in.

For more detail, see how to manage One Click App domains and public endpoints.

Inviting your team

Invitations and password resets need email setup that this guide doesn’t cover. This install has no outgoing email, so until it’s set up, those emails won’t be sent.

An Invitation link doesn’t avoid this, because Zulip sends each new person a confirmation email when they sign up through the link.

Keep your new owner password somewhere safe, because a password reset email won’t reach you either.

Backups and updates

Backups: Zulip keeps its data in four volumes: zulip_data, zulip_postgres, zulip_rabbitmq and zulip_redis. xCloud backs up all four together. xCloud stops the app while it takes the backup and starts it again afterwards. Refresh Zulip’s own backup first, so that zulip_data holds an up-to-date copy of the database.

Connect to your server over SSH, run docker ps to find the name of the Zulip container, and run:

docker exec ZULIP_CONTAINER_NAME /sbin/entrypoint.sh app:backup

Expected result: The command ends with Backup process succeeded. Then take the backup in xCloud. See how to back up and restore Docker apps.

Updates: Your app stays on its current version. App Actions → Update alone reinstalls that same version. To move to a newer one, change the version in the Compose page first. On the image line, change both the version and the sha256 value after it, because that value fixes the exact image. Back up first, because database changes in a new version may not be reversible. See how to update a One Click App and Zulip’s Docker documentation.

Frequently asked questions

Does Zulip need a firewall rule or extra domains?

No. Zulip uses one domain with HTTPS and no public ports of its own. Its supporting services run alongside it and stay private to the app.

Can I change the first owner password from the Environment page?

No. xCloud uses that value only when it creates the organization. Change the password inside Zulip, under Personal settings.

What is the largest file my team can upload?

100 MB per file. Larger files are rejected before they reach Zulip, and changing Zulip’s own upload setting does not raise this limit.

If you run into any issues with Zulip, feel free to reach out to our support team.