Zammad is an open-source ticketing system written in Ruby specially designed for customer support teams. It allows you to deal with customer queries and complaints from various channels, including web forms, Twitter, Facebook, email, chat, and more. Zammad also provides an API to integrate your telephone system. It offers a rich set of features including auto-save, full-text search, two-factor-authentication, and external authentication via Twitter, Facebook, LinkedIn, or Google.

In this tutorial, we will learn how to install Zammad Ticketing System on Ubuntu. This procedure is compatible with Ubuntu 22.04 and Ubuntu 24.04.

Step 1 – Install Java

Zammad requires Java to be installed on your server. You can install Java JDK with the following command:

apt-get install default-jdk -y

Once installed, verify the installed version of Java using the following command:

java -version

You should get the following output:

openjdk 21.0.7 2025-04-15
OpenJDK Runtime Environment (build 21.0.7+6-Ubuntu-0ubuntu124.04)
OpenJDK 64-Bit Server VM (build 21.0.7+6-Ubuntu-0ubuntu124.04, mixed mode, sharing)

Step 2 – Install ElasticSearch

Zammad uses Elasticsearch to provide the search function. By default, ElasticSearch is not available in the Ubuntu 24.04 default repository, so you will need to add the ElasticSearch repository to your system. You can add it with the following commands:

apt-get install apt-transport-https gnupg -y

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -

curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | gpg --dearmor | tee /etc/apt/trusted.gpg.d/elasticsearch.gpg> /dev/null

echo "deb [signed-by=/etc/apt/trusted.gpg.d/elasticsearch.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main"| tee -a /etc/apt/sources.list.d/elastic-7.x.list > /dev/null

Next, update the repository and install ElasticSearch with the following command:

apt-get update -y
apt-get install elasticsearch -y

Once installed, start the ElasticSearch service and enable it to start at boot:

systemctl start elasticsearch
systemctl enable elasticsearch

Next, you will need to allow Elasticsearch to index file attachments. You can do it with the following command:

/usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment

You should get the following output:

-> Installing ingest-attachment
-> Downloading ingest-attachment from elastic
[=================================================] 100%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: plugin requires additional permissions @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.lang.RuntimePermission accessClassInPackage.sun.java2d.cmm.kcms
* java.lang.RuntimePermission accessDeclaredMembers
* java.lang.RuntimePermission getClassLoader
* java.lang.reflect.ReflectPermission suppressAccessChecks
* java.security.SecurityPermission createAccessControlContext
* java.security.SecurityPermission insertProvider
* java.security.SecurityPermission putProviderProperty.BC
See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks.

Continue with installation? [y/N]y
-> Installed ingest-attachment

Edit the Elasticsearch configuration file.

nano /etc/elasticsearch/elasticsearch.yml

Set max content length.

http.max_content_length: 400mb

Next, restart ElasticSearch to apply the changes:

systemctl restart elasticsearch

Step 3 – Install Zammad

By default, Zammad is not available in the Ubuntu 24.04 default repository, so you will need to add Zammad repository in your system.

First, download and add the GPG key with the following command:

curl -fsSL https://dl.packager.io/srv/zammad/zammad/key | gpg --dearmor | tee /etc/apt/keyrings/pkgr-zammad.gpg> /dev/null

Next, add the Zammad repository with the following command:

echo "deb [signed-by=/etc/apt/keyrings/pkgr-zammad.gpg] https://dl.packager.io/srv/deb/zammad/zammad/stable/ubuntu 24.04 main"| tee /etc/apt/sources.list.d/zammad.list > /dev/null

Next, update the repository and install Zammad with the following command:

apt-get update -y
apt-get install zammad -y

Next, you will need to configure Zammad to work with Elasticsearch, add extra Elasticsearch index name space, and set the max attachment size. You can do that with the following command:

zammad run rails r "Setting.set('es_url', 'http://localhost:9200')"
zammad run rails r "Setting.set('es_user', 'elastic')"
zammad run rake zammad:searchindex:rebuild
zammad run rails r "Setting.set('es_index', Socket.gethostname.downcase + '_zammad')"
zammad run rails r "Setting.set('es_attachment_ignore', [ '.png', '.jpg', '.jpeg', '.mpeg', '.mpg', '.mov', '.bin', '.exe', '.box', '.mbox' ] )"
zammad run rails r "Setting.set('es_attachment_max_size_in_mb', 50)"

Step 4 – Start Zammad

By default, Zammad service is managed by systemd.

First, start and enable the Zammad service.

systemctl start zammad
systemctl enable zammad

Verify the status of Zammad service.

systemctl status zammad

Output.

● zammad.service
     Loaded: loaded (/etc/systemd/system/zammad.service; enabled; preset: enabled)
     Active: active (running) since Sun 2025-05-25 04:57:50 UTC; 1s ago
   Main PID: 11744 (sleep)
      Tasks: 1 (limit: 4609)
     Memory: 360.0K (peak: 612.0K)
        CPU: 3ms
     CGroup: /system.slice/zammad.service
             └─11744 /bin/sleep infinity

Next, remove the Nginx default virtual host file.

rm -rf /etc/nginx/sites-enabled/default

Next, restart the Nginx service.

systemctl restart nginx

Step 5 – Access Zammad Web Interface

Now, open your web browser and access the Zammad web interface using the URL http://your-server-ip. You should see the following screen:

Click on the Setup new System. You should see the following screen:

Provide your admin username, password, and email and click on the Create button. You should see the following screen:

Provide your Organization name, upload a logo, provide system URL, and click on the Next button. You should see the following screen:

Select your MTA and click on the Continue button. You should see the following screen:

Click on the Skip button. You should see the Zammad dashboard in the following screen:

Conclusion

In this guide, you learned how to install and configure the Zammad ticketing system on Ubuntu 24.04. Try hosting your own online ticketing system with Zammad on VPS Hosting from Atlantic.Net.