Prerequisites
Before performing the following steps, make sure to meet Zammad’s software requirements.
1. Install Required Tools
In addition to already mentioned software dependencies, some operating systems may require additional packages if not already installed.
Ubuntu / DebianOpenSUSE / SLESCentOS / RHEL
$ sudo apt install curl apt-transport-https gnupg
2. Install Elasticsearch
Elasticsearch is not a hard dependency of Zammad, but strongly recommended! It needs to be installed before Zammad. Please take a look at the instructions first.
3. Ensure Correct Locale
To make Zammad work correctly, your system has to use the correct locales.
Ubuntu / DebianOpenSUSE / SLESCentOS / RHEL
List your current locale settings.
$ locale | grep “LANG=”
If above does not return <lang_code>.utf8
you can correct this issue as follows.
$ sudo apt install locales $ sudo locale-gen en_US.UTF-8 $ echo “LANG=en_US.UTF-8” > sudo /etc/default/locale
After fixing it, make sure to check the output again for including <lang_code>.utf8
. A reboot may help if unsuccessful.
Add Repository and Install Zammad
Packager.io may not be accessible from IPv6-only environments, so make sure to consider this when performing the steps below.
Add Repository
UbuntuDebianOpenSUSE / SLESCentOS / RHEL
Install Repository Key
$ curl -fsSL https://dl.packager.io/srv/zammad/zammad/key | \ gpg --dearmor | sudo tee /etc/apt/keyrings/pkgr-zammad.gpg> /dev/null
Ubuntu 20.04
$ echo “deb [signed-by=/etc/apt/keyrings/pkgr-zammad.gpg] https://dl.packager.io/srv/deb/zammad/zammad/stable/ubuntu 20.04 main”| \ sudo tee /etc/apt/sources.list.d/zammad.list > /dev/null
Ubuntu 22.04
$ echo “deb [signed-by=/etc/apt/keyrings/pkgr-zammad.gpg] https://dl.packager.io/srv/deb/zammad/zammad/stable/ubuntu 22.04 main”| \ sudo tee /etc/apt/sources.list.d/zammad.list > /dev/null
Ubuntu 24.04
$ echo “deb [signed-by=/etc/apt/keyrings/pkgr-zammad.gpg] https://dl.packager.io/srv/deb/zammad/zammad/stable/ubuntu 24.04 main”| \ sudo tee /etc/apt/sources.list.d/zammad.list > /dev/null
Install Zammad
Ubuntu / DebianOpenSUSE / SLESCentOS / RHEL
$ sudo apt update $ sudo apt install zammad
Firewall & SELinux
Some parts of these steps may not apply to you, feel free to skip them!
SELinux
Note
The commands below only work on Ubuntu, Debian and CentOS. If you use a different distribution, please have a look at their documentation.
$ # Allow nginx or apache to access public files of Zammad and communicate $ sudo chcon -Rv --type=httpd_sys_content_t /opt/zammad/public/ $ sudo setsebool httpd_can_network_connect on -P $ sudo semanage fcontext -a -t httpd_sys_content_t /opt/zammad/public/ $ sudo restorecon -Rv /opt/zammad/public/ $ sudo chmod -R a+r /opt/zammad/public/
Firewall
Ensure to open ports 80
and 443
(TCP & UDP) beside of the ports you need. Below you can find a few examples for different distributions. If you are using a different distribution, please have a look at their documentation.
Please note that the examples below only cover the distribution’s default firewall. It may not cover your case.
UbuntuDebianCentOS, RHEL, openSUSE, SLES
$ # Open Port 80 and 443 on your Firewall $ sudo ufw allow 80 $ sudo ufw allow 443 $ sudo ufw reload
Manage Services of Zammad
In general Zammad uses three services - these can be (re)started & stopped with the parent zammad
.
$ # Zammad service to start all services at once $ systemctl (status|start|stop|restart) zammad $ # Zammads internal puma server (relevant for displaying the web app) $ systemctl (status|start|stop|restart) zammad-web $ # Zammads background worker - relevant for all delayed- and background jobs $ systemctl (status|start|stop|restart) zammad-worker $ # Zammads websocket server for session related information $ systemctl (status|start|stop|restart) zammad-websocket
Next Steps
With this Zammad technically is ready to go. However, you’ll need to follow the following further steps to access Zammads Web-UI and getting started with it.
- Connect Zammad with Elasticsearch
- Configure the Webserver
- First Steps
- You may also find Zammads Console commands useful
If you expect usage with 5 agents or more you may also want to consider the following pages.