Set up your own Slack-like chat system on Linux

Install Zulip

Follow our six-step guide to get Zulip running on Debian or Ubuntu. The official requirements state that 2GB of RAM and 10GB of disk space are needed, with more if you’re expecting hundreds of users. 

This makes it ideal for running on Mythic Beasts’ Raspberry Pi 4 hosting offerings. For public access, you’ll need a domain name and for your server’s port 443 to be accessible too.

Step 1: Download Zulip

screenshot of Zulip

(Image credit: Zulip)

Download and extract the latest release to a temporary folder with

$ cd $(mktemp -d)
$ wget https://www.zulip.org/dist/releases/zulip-server-latest.tar.gz
$ tar -xf zulip-server-latest.tar.gz

After all, there’s no point messing up your home directory.

Step 2: Install Zulip

screenshot of Zulip

(Image credit: Zulip)

Run the install script and have it automatically set up an SSL certificate via Certbot with 

$ sudo ./zulip-server-*/scripts/setup/install –certbot –email=EMAIL –hostname=HOSTNAME

replacing the email and hostname to match you and your server.

You can also set up a self-signed certificate for local use or testing by using the –self-signed-cert option.

Step 3: Log in to Zulip

screenshot of Zulip

(Image credit: Zulip)

The script will take some time so perhaps a cup of tea is in order. When it’s done visit your Zulip install in a browser via the URL given when the script completes. You’ll be prompted to set up your organisation’s details and administrator account. Alternatively, you can import settings from Slack, Mattermost, HipChat or Gitter.

Step 4: Set up email

screenshot of Zulip

(Image credit: Zulip)

In order to verify new users, Zulip needs access to an outgoing email server. If you don’t have one there are free mail services (such as https://mailgun.com) that will do the job just fine. Just pop the details into /etc/zulip/settings.py and /etc/zulip/zulip-secrets.conf and restart everything with sudo supervisorctl restart all.

Step 5: Invite users

screenshot of Zulip

(Image credit: Zulip)

Soliloquising is all well and good, but you probably want to chat with real, actual users at some point. So your next step is to hit the Invite More Users button at the bottom of the user list, which sends out emails or generates invitation links. There’s no working around the fact that users will need a valid email address to sign up.

Step 6: Get to know Zulip

screenshot of Zulip

(Image credit: Zulip)

There’s fantastic documentation around getting your organisation started with Zulip and all kinds of customisation options. Why not start by adding your own logo? This and other things (important things such as adding custom emojis) can be done by going to the Settings menu (the cog in the top right) and selecting Manage organization.