In this post, I’ll take you through the steps to install Zulip Chat Server on Ubuntu 18.04 / 16.04 & Debian 9 with Let’s Encrypt SSL. Zulip server is a powerful open source team chat application that combines the immediacy of real-time chat with the productivity benefits of threaded conversations.

Zulip gives you a real-time chat system that allows users to easily process hundreds or thousands of messages a day. With over 300 contributors merging over 500 commits a month, Zulip is also the largest and fastest growing open source group chat project.

Zulip  on Ubuntu 18.04 / 16.04 / Debian 9 – Requirements

To run a Zulip server, you will need:

  • A dedicated machine or VM
  • A supported OS:
    • Ubuntu 18.04 Bionic
    • Ubuntu 16.04 Xenial
    • Debian 9 Stretch
  • At least 2GB RAM, and 10GB disk space
    • If you expect 100+ users: 4GB RAM, and 2 CPUs
  • A hostname in DNS
  • Credentials for sending email

Here are the steps to install Zulip Chat Server on Ubuntu 18.04 with Let’s Encrypt SSL.

Step 1: Update system

Update your system packages by running:

sudo apt update
sudo apt upgrade -y
sudo apt install -y git wget

If possible, reboot the instance

sudo reboot

Step 2: Download Latest Zulip Server

Download and unpack the latest built server tarball with the following commands:

wget https://www.zulip.org/dist/releases/zulip-server-latest.tar.gz

Wait for the Download to finish then extract the archive file:

tar -xf zulip-server-latest.tar.gz

Step 3: Install Zulip Server on Ubuntu 18.04/16.04 / Debian 9

You have two options to install Zulip Server on Ubuntu 18.04/16.04 / Debian 9:

Option 1: Use Let’s Encrypt SSL Certificates

If your  Zulip Server instance  has a public IP address, you can install Zulip Chat Server with Let’s Encrypt SSL:

export EMAIL="[email protected]"
export HOSTNAME="zulip.example.com"

Start installation:

sudo -s ./zulip-server-*/scripts/setup/install --certbot \
--email=${EMAIL} --hostname=${HOSTNAME}

Option 1: Use self-signed SSL SSL Certificates

In this method, Zulip installer will generate a self-signed SSL certificate for the server.

Ensure OpenSSL is installed

sudo apt install openssl

Then run Zulip Server installer with the option--self-signed-cert.

export EMAIL="[email protected]"
export HOSTNAME="zulip.example.com"

Start the installation by running the following command:

sudo -s ./zulip-server-*/scripts/setup/install --self-signed-cert --email=${EMAIL} --hostname=${HOSTNAME}

This is what the installer will do:

  • Creates the userzulip, which the various Zulip servers will run as.
  • Creates /home/zulip/deployments/, which the Zulip code for this deployment (and future deployments when you upgrade) goes into. At the very end of the install process, the script moves the Zulip code tree it’s running from (which you unpacked from a tarball above) to a directory there and makes /home/zulip/deployments/current as a symbolic link to it.
  • Installs Zulip’s various dependencies.
  • Configures the various third-party services Zulip uses, including,PostgreSQL RabbitMQ,Memcachedand Redis.
  • Initializes Zulip’s database.

Installation logs are logged by the installer to./var/log/zulip/install.log. Zulip errors should be visible from /var/log/zulip/errors.log

Step 4: Create a Zulip organization, and log in

On successful installation, the install script prints a link.

Open the link in your browser and follow the prompts to set up your organization, and your own user account as an administrator. Then, log in to start using Zulip Group Chat.