In this post, I’ll take you through the steps to install Zulip Chat Server on Ubuntu 20.04/18.04 /16.04 & Debian 10/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.
To run a Zulip server, you will need:
- A dedicated machine or VM
- A supported OS:
- Ubuntu 20.04/18.04/16.04
- Debian 10/9 Linux
- 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 20.04|18.04 & Debian 10/9 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 Zulip Server on Ubuntu 20.04|18.04 / Debian 10|9
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 20.04|18.04 / Debian 10|9
You have two options to install Zulip Server on Ubuntu 20.04|18.04 / Debian 10|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"
Where:
- [email protected] is the email address of the person or team who should get support and error emails from this Zulip server.
- zulip.example.com is the user-accessible domain name for this Zulip server
Start installation:
sudo -s ./zulip-server-*/scripts/setup/install --certbot \
--email=${EMAIL} --hostname=${HOSTNAME}
With the –certbot option, the Zulip installer automatically obtains an SSL certificate for the server using Certbot.
Option 2: 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 user
zulip
, 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,
Memcached
andRedis
. - 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
.
....
ulip-workers:zulip_deliver_scheduled_messages: started
+ set +x
+ su zulip -c '/home/zulip/deployments/current/manage.py generate_realm_creation_link'
Please visit the following secure single-use link to register your
new Zulip organization:
https://zulip.hirebestengineers.com/new/daf9ny25q198hvdcdfjvzr51
Open the link in your browser and follow the prompts to set up your organization
Next set your own user account
as an administrator
Then, log in to start using Zulip Group Chat.
Refer to Zulip official documentation pages for extensive reading on Zulip administration and usage.