If your business needs an in-house chat server, Zulip might be what you’re looking for. Jack Wallen shows you how to install this open source collaboration platform.
Your business needs to empower it’s staff for easy communication. You could opt for the likes of Slack or Microsoft Teams, both of which are powerful and wide-spread solutions. But what if you’d prefer to keep your communication/collaboration services in-house? You certainly can’t use the de facto standards without connecting to a third party.
When you require a certain level of privacy and control over your business communications, you might consider deploying an in-house chat server. One such solution for that is the open source, cross-platform chat and collaborative platform, Zulip. Zulip features threaded conversations, can serve up thousands of concurrent chat sessions, offers plenty of third-party plugins (including Travis CI, Github, Heroku, Zendesk, JIRA, Sentry, and much more), and is a chat server that’s on the rise.
I’m going to walk you through the process of installing Zulip on Ubuntu Server 18.04. I’ll be demonstrating with a LAN IP address, but you can use this tool with a domain name for external communication as well. I will also be installing Zulip with SSL support, but using a self-signed certificate, since this is for testing purposes.
SEE: Hiring kit: Network administrator (TechRepublic Premium)
What you’ll need
How to configure the hosts file
The first thing you’ll want to take care of is configuring your hosts file. You must map the IP address of your hosting server to a domain name. For my testing instance, I’ll be mapping IP address 192.168.1.19 to zulip.lan. You’ll want to make sure to use your hosting server IP address as well as your domain.
To take care of this configuration, open a terminal window on your server and issue the command:
sudo nano /etc/hosts
In that file, add the following at the bottom:
Remember to use the details for your setup, not mine.
Save and close the file.
How to download and unpack the installer
Next we need to download and unpack the Zulip installer file. Go back to the terminal window and change into the /tmp directory with the command:
Now you can download the installer file with the command:
Once the file has downloaded, unpack it with the command:
tar -xvf zulip-server-latest.tar.gz
How to install OpenSSL
Before you run the installer command, you’ll need to install OpenSSL on your server. For that, issue the command:
sudo apt-get install openssl -y
Once the OpenSSL installation completes, you’re ready to run the Zulip installer.
How to install Zulip
There are two ways to install Zulip:
With a self-signed certificate
With a Let’s Encrypt certificate
If you’re using an FQDN for your Zulip server, you’ll definitely want to install with a Let’s Encrypt certificate. I’ll be demonstrating the installation with a self-signed certificate–because I’ll be using Zulip for LAN-only testing. I’ll show you the commands for both options.
For installing 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 EMAILADDRESS if you admin email address. Make sure to change the hostname to match what you’ve mapped in /etc/hosts.
To install with a Let’s Encrypt certificate, you’ll 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 some time to complete–between 5-15 minutes, depending on horsepower of your server and speed of your internet connection. When the installation completes, you’ll be presented with a link to follow, which will take you to your Zulip installation. In the resulting browser window, type an email address and click Create Organization (Figure A).
In the next window, you’ll be asked to create an admin account which will be used to manage Zulip (Figure B).
Once you’ve created the admin account, you’ll then be prompted to log in to Zulip, where you can begin tweaking the platform to perfectly fit your company needs.
How to configure email for Zulip
You’ll need to also configure an SMTP server, so Zulip can send out notifications. To do this, go back to the terminal window and issue the command:
sudo nano /etc/zulip/settings.py
In that file look for the following lines:
#EMAIL_HOST = 'smtp.example.com' #EMAIL_HOST_USER = '' #EMAIL_USE_TLS = True #EMAIL_PORT = 587
Uncomment out those lines by removing the # character and then fill them out as needed for your SMTP server. For instance, if you’re using the Google SMTP servers, those lines would look like:
EMAIL_HOST = 'smtp.gmail.com' EMAIL_HOST_USER = 'GMAILADDRESS' EMAIL_USE_TLS = True EMAIL_PORT = 587
Where GMAILADDRESS is the address you use to log into your Gmail account.
Save and close that file.
Next, you need to configure the password for your SMTP server. To set this, open the necessary file for editing 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’re using the Gmail SMTP passwords, you will have to create an app password for this as you cannot use your Gmail account password.
Save and close the file.
Finally, restart the Zulip services 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’re looking for a reliable, cost-effective replacement for Slack or Microsoft Teams, this might well be your best in-house option.