How to install Zulip chat server on Ubuntu 18.04

How to install Zulip chat server on Ubuntu 18.04

If your business needs an internal chat server, Zulip might be what you are looking for. Jack Wallen shows you how to install this open source collaboration platform.

Your business needs to empower its staff for easy communication. You can choose people like Slack or Microsoft Teams, both of which are powerful and widespread solutions. But what if you prefer to keep communication / collaboration services at home? You certainly cannot use de facto standards without being connected to a third party.

When you need a certain level of privacy and control over your business communications, you might consider using an internal chat server. One solution for that is open source, cross-platform chat and collaboration platform, Zulip. Zulip threaded conversation feature, can serve thousands of concurrent chat sessions, offers many third-party plugins (including Travis CI, Github, Heroku, Zendesk, JIRA, Sentry, and many more), and is a rising chat server.

I will guide you through the process of installing Zulip on Ubuntu Server 18.04. I will show you with a LAN IP address, but you can use this tool with a domain name for external communication too. I will also install Zulip with SSL support, but use a self-signed certificate, because this is for testing purposes.

What do you need

  • An updated / improved example of Ubuntu Server 18.04
  • A user with sudo privileges

How to configure host files

The first thing you want to take care of is configuring your host file. You must map the IP address of your hosting server to the domain name. As an example of my test, I will map the IP address to zulip.lan. You must make sure to use your hosting server’s IP address and also your domain.

To maintain this configuration, open a terminal window on your server and give the command:

sudo nano /etc/hosts

In that file, add the following at the bottom: zulip.lan

Remember to use details for your settings, not mine.

Save and close the file.

How to download and uninstall the installer

Next we need to download and unpack the Zulip installer file. Return to the terminal window and change to the / tmp directory with the command:

cd /tmp

Now you can download the installer file with the command:


After the file is downloaded, open it with the command:

tar -xvf zulip-server-latest.tar.gz

How to install OpenSSL

Before you run the installer command, you must install OpenSSL on your server. For that, give the command:

sudo apt-get install openssl -y

After the OpenSSL installation is complete, you are ready to run the Zulip installer.

How to install Zulip

There are two ways to install Zulip:

  1. With a self-signed certificate
  2. With a Let’s Encrypt certificate

If you use FQDN for your Zulip server, you will definitely want to install it with the Let’s Encrypt certificate. I will show the installation with a self-signed certificate – because I will use Zulip for LAN testing only. I will show commands for both options.

To install Zulip with a self-signed certificate, issue the command:

sudo -s ./zulip-server-*/scripts/setup/install --self-signed-cert --email=EMAILADDRESS --hostname=zulip.lan

Where is EMAILADDRESS if you admin email address. Be sure to change the hostname to match what you have mapped in / etc / hosts.

To install with the Let’s Encrypt certificate, you will issue the command:

sudo -s ./zulip-server-*/scripts/setup/install --certbot --email=EMAILADDRESS --hostname=FQDN

Where EMAILADDRESS is your admin email address and FQDN is your fully qualified domain name.

The installation will take time to complete – between 5-15 minutes, depending on the speed of your server and the speed of your internet connection. When the installation is complete, you will be given a link to follow, which will take you to your Zulip installation. In the resulting browser window, type the e-mail address and click Create Organization (Figure A).

Figure A


The first step in completing the Zulip chat server installation.

In the next window, you will be asked to create an admin account that will be used to manage Zulip (Figure B).

Figure B


Create an admin account for Zulip.

After creating an admin account, you will be asked to log in to Zulip, where you can start changing the platform to suit your company’s needs.

How to configure email for Zulip

You also have to configure the SMTP server, so that Zulip can send notifications. To do this, return to the terminal window and give the command:

sudo nano /etc/zulip/

In that file look for the following line:


Cancel comments on those lines by removing the # character then fill in as needed for your SMTP server. For example, if you use Google’s SMTP server, the lines will look like:


Where GMAILADDRESS is the address that you use to log in to your Gmail account.

Save and close the file.

Next, you need to configure a password for your SMTP server. To set this up, open the file needed to edit with the command:

sudo nano /etc/zulip/zulip-secrets.conf

In that file, add the following line at the bottom:

email_password = PASSWORD

Where PASSWORD is the password for your SMTP server. If you use a Gmail SMTP server, you must create an application password for this because you cannot use a Gmail account password.

Save and close the file.

Finally, restart the Zulip service with the command:

su zulip -c '/home/zulip/deployments/current/scripts/restart-server'

And that’s all there is to installing the Zulip chat server / collaboration platform. If you are looking for a reliable and cost-effective replacement for the Slack Team or Microsoft, this might be your best choice.

Related posts

How to Install an Atom Editor on Ubuntu 20.04


How to Install the ElkArte Forum Software on Ubuntu 20.04


How to Install R on Ubuntu 20.04


What You Need to Know About Locked in Ubuntu 20.04


How to use the classic Unity Desktop on Ubuntu 20.04


How to Install Ruby on Ubuntu 20.04


How to Install the Open Source Computer Vision Library (OpenCV) on CentOS 8


How to Install Xrdp Server (Remote Desktop) on Ubuntu 20.04


How to Find Active SSH Connections on Linux