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 192.168.1.19 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:
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:
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:
- With a self-signed certificate
- 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).
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).
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/settings.py
In that file look for the following line:
#EMAIL_HOST = 'smtp.example.com' #EMAIL_HOST_USER = '' #EMAIL_USE_TLS = True #EMAIL_PORT = 587
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:
EMAIL_HOST = 'smtp.gmail.com' EMAIL_HOST_USER = 'GMAILADDRESS' EMAIL_USE_TLS = True EMAIL_PORT = 587
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.