This article explains how to install Zammad Community Ticketing system on Ubuntu 24.04.
Zammad is an open-source helpdesk and support ticket system that manages customer communication and support requests. It provides a user-friendly interface for support agents and customers, allowing for easy tracking of tickets, communications via various channels (such as email, chat, and social media), and managing customer interactions.
Installing Zammad on Ubuntu provides a reliable environment in which to enhance and maintain the system. The Ubuntu platform ensures that Zammad can be set up with up-to-date libraries and packages, lending to its stability and performance.
The steps below walk you through installing Zammad on Ubuntu 24.04.
Install Elasticsearch
To use Zammad on Ubuntu, you must install Elasticsearch. The easiest way to install Elasticsearch is from our APT repository. It can install Elasticsearch on any Debian-based system, such as Debian and Ubuntu.
Before adding the Elasticsearch repository, install these packages.
sudo apt-get install apt-transport-https curl
Then, download and add the GPG key for its APT package in the repository.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
Next, run the command below to add the Elasticsearch version 8 repository to Ubuntu.
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
Finally, run the command below to install Elasticsearch from the APT repository.
sudo apt-get update && sudo apt-get install elasticsearch
When installing Elasticsearch, security features are enabled and configured by default. The password, certificate and keys are output to your terminal.
Take notes of the password, as you will need it later for Zammad configuration.
--------------------------- Security autoconfiguration information ------------------------------
Authentication and authorization are enabled.
TLS for the transport and HTTP layers is enabled and configured.
The generated password for the elastic built-in superuser is : x5cZ629H+clPySZLBAsQ
If this node should join an existing cluster, you can reconfigure this with
'/usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token <token-here>'
after creating an enrollment token on your existing cluster.
You can complete the following actions at any time:
Reset the password of the elastic built-in superuser with
'/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic'.
Generate an enrollment token for Kibana instances with
'/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana'.
Generate an enrollment token for Elasticsearch nodes with
'/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node'.
-------------------------------------------------------------------------------------------------
You can reset the password for the elastic
user with the elasticsearch-reset-password
command.
/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic
After installing Elasticsearch, please enable it by default and start it.
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
sudo systemctl enable elasticsearch.service
Configure Elasticsearch
Once you are done installing Elasticsearch, adjust its configuration file /etc/elasticsearch/elasticsearch.yml
.
sudo nano /etc/elasticsearch/elasticsearch.yml
Optimize the config file to suit your environment.
# /etc/elasticsearch/elasticsearch.yml
# Tickets above this size (articles + attachments + metadata)
# may fail to be properly indexed (Default: 100mb).
#
# When Zammad sends tickets to Elasticsearch for indexing,
# it bundles together all the data on each individual ticket
# and issues a single HTTP request for it.
# Payloads exceeding this threshold will be truncated.
#
# Performance may suffer if it is set too high.
http.max_content_length: 400mb
# Allows the engine to generate larger (more complex) search queries.
# Elasticsearch will raise an error or deprecation notice if this value is too low,
# but setting it too high can overload system resources (Default: 1024).
#
# Available in version 6.6+ only.
indices.query.bool.max_clause_count: 2000
Save and exit.
Install Zammad
After installing and configuring Elasticsearch, continue to install Zammad below.
First, add the Zammad GPG APT repository to Ubuntu by running the command below.
curl -fsSL https://dl.packager.io/srv/zammad/zammad/key | \
gpg --dearmor | sudo tee /etc/apt/keyrings/pkgr-zammad.gpg> /dev/null
Then, run the command below to add the Zammad APT repository to Ubuntu.
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
Finally, install Zammad by running the command below.
sudo apt update
sudo apt install zammad
Once Zammad is installed, you can manage its services using the command below.
sudo systemctl stop zammad
sudo systemctl start zammad
sudo systemctl enable zammad
You can use Zammad at this point using the localhost name in your browser.
http://localhost

Set up a new system and create an admin account.

Log in and begin configuring Zammad.

Connect Zammad to Elasticsearch
Zammad is ready to use at this point. However, you must connect Zammad to access Zammad Web-UI and get started.
Run the command below to connect Zammad to Elasticsearch version 8 and up. The command will configure Zammad with Elasticsearch using the account and password displayed when you install Elasticsearch above.
sudo zammad run rails r "Setting.set('es_url', 'https://localhost:9200')"
sudo zammad run rails r "Setting.set('es_user', 'elastic')"
sudo zammad run rails r "Setting.set('es_password', 'x5cZ629H+clPySZLBAsQ')"
Add Elasticsearch certificate to Zammad.
After setting up an Elasticsearch account, you should also set up an Elasticsearch certificate in Zammad.
Run the command below to display the Elasticsearch certificate installed on the system.
sudo cat /etc/elasticsearch/certs/http_ca.crt
Copy the certificate content, go to Zammad’s admin panel, and add your copied certificate under SSL Certificates.

After that, rebuild the Elasticsearch index by running the command below.
sudo zammad run rake zammad:searchindex:rebuild
Use a Reverse Proxy Server
You may want to set up a reverse proxy server using Nginx or Apache to use the software better.
Below are two posts that show you how to set up a proxy server on Ubuntu Linux.
- How to set up a proxy server using Apache on Ubuntu
- How to set up a proxy server using nginx on Ubuntu
Set up Let’s Encrypt SSL Certificate
Another setting you can use is an SSL certificate for the service. Below are two posts that show you how to set up a Let’s Encrypt SSL certificate for web servers on Ubuntu.
- How to set up Let’s Encrypt SSL certificate with Apache on Ubuntu
- How to set up Let’s Encrypt SSL certificate with Nginx on Ubuntu
After setting up your environment, access the Zammad portal using the domain name created in the Nginx or Apache virtual host.
If not, use the server’s default hostname to access Zammad.
Conclusion
Installing and configuring the Zammad Community Ticketing System on Ubuntu 24.04 is a straightforward process that empowers organizations with efficient customer support capabilities. Here are the key takeaways:
- User-Friendly Interface: Zammad offers a seamless experience for support agents and customers, enhancing communication and ticket management.
- Stable Environment: Utilizing Ubuntu ensures Zammad runs on a secure and updated platform, promoting system stability.
- Elasticsearch Integration: The integration with Elasticsearch allows for efficient search and indexing of tickets, optimizing response times.
- Custom Configuration: Users can tailor the configuration of Elasticsearch to fit their specific environment and workload needs.
- SSL Security: Setting up a reverse proxy with SSL certificates enhances the security of the Zammad instance.
- Comprehensive Resources: Various guides are available for configuring proxy servers and SSL certificates, ensuring users have the necessary support throughout the setup process.
With these steps completed, you can effectively leverage Zammad to improve your customer support services.
Leave a Reply