Install a Zulip server

You can choose from several convenient options for hosting Zulip:

To import data from Slack, Mattermost, Rocket.Chat, Zulip Cloud, or another Zulip server, follow the linked instructions.

You can try out Zulip before setting up your own server by checking it out in the Zulip development community, or creating a free test organization on Zulip Cloud.

Note

These instructions are for self-hosting Zulip. To contribute to the project, set up the development environment.

Installation process overview

  1. Set up a base server

  2. Download the latest release

  3. Install Zulip

  4. Create a Zulip organization, and log in

That’s it! Once installation is complete, you can configure Zulip to suit your needs.

Step 0: Set up a base server

Provision and log in to a fresh Ubuntu or Debian system in your preferred hosting environment that satisfies the installation requirements for your expected usage level.

Step 1: Download the latest release

Download and unpack the latest server release (Zulip Server 9.2) with the following commands:

cd $(mktemp -d)
curl -fLO https://download.zulip.com/server/zulip-server-latest.tar.gz
tar -xf zulip-server-latest.tar.gz

To verify the download, see the sha256sums of our release tarballs.

Step 2: Install Zulip

To set up Zulip with the most common configuration, run the installer as follows:

sudo -s  # If not already root
./zulip-server-*/scripts/setup/install --certbot \
    --email=YOUR_EMAIL --hostname=YOUR_HOSTNAME

This takes a few minutes to run, as it installs Zulip’s dependencies. It is designed to be idempotent: if the script fails, once you’ve corrected the cause of the failure, you can just rerun the script. For more information, see installer details and troubleshooting.

Installer options

  • --email=it-team@example.com: The email address for the person or team who maintains the Zulip installation. Zulip users on your server will see this as the contact email in automated emails, on help pages, on error pages, etc. You can later configure a display name for your contact email with the ZULIP_ADMINISTRATOR setting.

  • --hostname=zulip.example.com: The user-accessible domain name for this Zulip server, i.e., what users will type in their web browser. This becomes EXTERNAL_HOST in the Zulip settings.

  • --certbot: With this option, the Zulip installer automatically obtains an SSL certificate for the server using Certbot, and configures a cron job to renew the certificate automatically. If you prefer to acquire an SSL certificate another way, it’s easy to provide it to Zulip.

  • --self-signed-cert: With this option, the Zulip installer generates a self-signed SSL certificate for the server. This isn’t suitable for production use, but may be convenient for testing.

For advanced installer options, see our deployment options documentation.

Important

If you are importing data, stop here and return to the import instructions for Slack, Mattermost, Rocket.Chat, Zulip Cloud, a server backup, or another Zulip server.

Step 3: Create a Zulip organization, and log in

When the installation process is complete, the install script prints a secure one-time-use organization creation link. Open this link in your browser, and follow the prompts to set up your organization and your own user account. Your Zulip organization is ready to use!

Note

You can generate a new organization creation link by running manage.py generate_realm_creation_link on the server. See also our guide on running multiple organizations on the same server.

Getting started with Zulip

To really see Zulip in action, you’ll need to get the people you work together with using it with you.

Learning more: