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
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.
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
Hint
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
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.