Installing Zulip

As an example, I’ll install Zulip on a clean Ubuntu Server 24 system.

Activate the universe repository:

add-apt-repository universe
apt update

Download and unzip the latest version of Zulip:

cd $(mktemp -d)
curl -fLO https://download.zulip.com/server/zulip-server-latest.tar.gz
tar -xf zulip-server-latest.tar.gz

During the test, my virtual server had only 4GB of RAM, so I added a swapfile:

fallocate -l 4G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

swapon --show
free -h
df -h

Let’s run the installation script, specifying the host name and email address of the administrator; it will be visible to all users as a contact:

./zulip-server-*/scripts/setup/install --push-notifications --certbot \
    [email protected] --hostname=zulip.ixnfo.com

We agree to the Zulip Terms of Service and during the installation process you will need to agree again when certbot requests a domain certificate.

After installation, let’s create an organization:

su zulip
cd /home/zulip/deployments/current
./manage.py generate_realm_creation_link

Let’s prohibit the creation of an organization after it has already been created:

nano /etc/zulip/settings.py
REALMS_HAVE_SUBDOMAINS = False
EXTRA_SETTINGS = {
    "OPEN_REALM_CREATION": False,
}

Let’s restart:

supervisorctl restart all

Since the test cloud server was at Hetzner, I wrote to support asking them to open port 25 so that Postfix could send notifications from the server.

See also my article:
Elevating user privileges to over the owner

Leave a comment

Leave a Reply