There is a new version of this tutorial available for Debian 11 (Bullseye).

How to Install Zulip Chat Server on Debian 9

This tutorial exists for these OS versions

On this page

  1. Requirements
  2. Getting Started
  3. Install SSL Certificate
  4. Install Zulip Server

Zulip is a free and open source group chat application software that can be used for sharing private and public messages. Zulip is written in Python and uses Django, PostgreSQL, and JavaScript. You can easily integrate Zulip with GitHub, Jira, Stripe, Zendesk, etc. Zulip client Apps also available for the iPhone, Android, and desktop. Zulip provides lot's of features such as private messaging, group chats, drag-and-drop file uploads, Emoji and Emoji Reactions, Tweet preview and many more.

In this tutorial, we will learn how to install the Zulip chat server software on Debian 9.

Authors: The Tutorial has been originally written by Hitesh Jethwa and has been updated by Till Brehm in Nov. 2018.


  • A server running Debian 9 server.
  • root access to the server.

Getting Started

First, login as root user to your server. Then you will need to update the system and install some packages on your system. You can install all of them using the following command:

apt-get update -y && apt-get upgrade -y
apt-get install python-dev python-pip openssl nano wget curl unzip -y

Once all the packages are installed, you can proceed to install SSL certificate.

Install SSL Certificate

Zulip server works on HTTPS connection, so you will need to generate self-signed SSL certificate or obtain commercial SSL certificate. Here, we will generate a private certificate.

First, generate RSA key of 2048 bits using the following command:

openssl genrsa -des3 -passout pass:password -out server.pass.key 2048

Next, write RSA private key into zulip.key file using the following command:

openssl rsa -passin pass:password -in server.pass.key -out zulip.key

Next, generate signing request by running the following command:

openssl req -new -key zulip.key -out server.csr

Above command will ask you some information to generate the CSR. Provide all the information as shown below:

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
Country Name (2 letter code) [AU]:IN
State or Province Name (full name) [Some-State]:Gujarat
Locality Name (eg, city) []:Ahmedabad
Organization Name (eg, company) [Internet Widgits Pty Ltd]:ENJ
Organizational Unit Name (eg, section) []:IT
Common Name (e.g. server FQDN or YOUR name) []:Hitesh
Email Address []:[email protected]

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Next, generate the certificate files by running the following command:

openssl x509 -req -days 365 -in server.csr -signkey zulip.key -out zulip.combined-chain.crt

Next, copy the generated certificate and key using the following command:

cp zulip.key /etc/ssl/private/zulip.key
cp zulip.combined-chain.crt /etc/ssl/certs/zulip.combined-chain.crt

Install Zulip Server

First, you will need to download the latest version of the Zulip from their official website. You can download it with the following command:

cd /tmp

After downloading, extract the downloaded file using the following command:


Next, rename extracted directory to zulip:

mv zulip-master zulip

Next, change the directory to the zulip and install zulip by running the following command:

cd zulip
./scripts/setup/install [email protected]

Replace the email address and hostname in the above command with your server hostname and email address.

Once the installation is completed, the installer will show you a single-use link to register your organization:

Open that link, which is unique for each installation, in a browser to register your Zulip organization. The page will show the text in your local language, so please don't worry that the screenshots below are not in English.

Enterb your email address

Enter your email address and click on the button to create your organization.

Enter organization details

Enter further details of your organization like the name of the organization, email address, your full name and password and click the button to create the account.

You get forwarded to the Zulip dashboard.

Congratulations! you have successfully installed Zulip chat server on Debian 9 server.

Share this page:

4 Comment(s)

Add comment

Please register in our forum first to comment.


By: BranKo

I think in section Getting Started is missing curl package

sudo apt-get install curl

By: till

Curl has been added now.

By: alex

Not sure how you ever made this work? Installer fails:

"Unsupported OS release: stretch

Zulip in production is supported only on: -

Ubuntu 14.04 LTS "trusty" -

Ubuntu 16.04 LTS "xenial" "

By: Till

Zulip supports Debian 9, from:

"Running a Zulip server. Setting up a server takes just a couple of minutes. Zulip runs on Ubuntu 18.04 Bionic, Ubuntu 16.04 Xenial, Ubuntu 14.04 Trusty, and Debian 9 Stretch. "

But it seems that the link to the Zulip version in the tutorial redirected to an older version now and not latest as the name implied. I've updated the tutorial to use the latest version from GitHub and Zulip install and works fine on my test server on Debian 9 now. Thank you for pointing out the issue with the old link.