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 20.04 and Ubuntu 22.04.
Step 1 – Install Java
Zammad requires Java to be installed on your server. You can install Java JDK 11 with the following command:
apt-get install openjdk-11-jdk -y
Once installed, verify the installed version of Java using the following command:
java -version
You should get the following output:
openjdk version "11.0.7" 2020-04-14 OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1) OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing)
Step 2 – Install Apache Web Server and Other Dependencies
Next, you will need to install Apache webserver to host Zammad. You can install it with the following command:
apt-get install apache2 -y
Next, you will also need to install libssl on your server. First, add the Focal security repository with the following command.
echo "deb http://security.ubuntu.com/ubuntu focal-security main" | tee /etc/apt/sources.list.d/focal-security.list
Next, update the repository and install the libssl package with the following command.
apt update -y apt install libssl1.1
Once you are finished, you can proceed to install the Zammad in the step.
Step 3 – Install ElasticSearch
Zammad uses Elasticsearch to provide the search function. By default, ElasticSearch is not available in the Ubuntu 20.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 -y apt-get install gnupg -y wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add - echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic.list
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
Next, restart ElasticSearch to apply the changes:
systemctl restart elasticsearch
Step 4 – Install Zammad
By default, Zammad is not available in the Ubuntu 20.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:
wget -qO- https://dl.packager.io/srv/zammad/zammad/key | apt-key add -
Next, add the Zammad repository with the following command:
wget -O /etc/apt/sources.list.d/zammad.list https://dl.packager.io/srv/zammad/zammad/stable/installer/ubuntu/20.04.repo
Next, update the repository and install Zammad with the following command:
apt-get update -y apt-get install zammad -y
Once Zammad has been installed, you should get the following output:
Add your fully qualified domain name or public IP to servername directive of apache2, if this installation is done on a remote server. You have to change: /etc/apache2/sites-available/zammad.conf and restart apache2 process. Otherwise just open http://localhost/ in your browser to start using Zammad. ################################################################################ #### Setting up gcc-9 (9.3.0-10ubuntu2) ... Setting up libtool (2.4.6-14) ... Setting up gcc (4:9.3.0-1ubuntu2) ... Processing triggers for man-db (2.9.1-1) ... Processing triggers for libc-bin (2.31-0ubuntu9) ...
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 rake searchindex:rebuild zammad run rails r "Setting.set('es_index', Socket.gethostname + '_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 5 – Configure Apache for Zammad
Next, you will need to configure Apache webserver for Zammad.
First, disable the Apache default virtual host file with the following command:
a2dissite 000-default.conf
Next, edit the Zammad virtual host configuration file:
nano /etc/apache2/sites-available/zammad.conf
Change the ServerName and uncomment ServerTokens directive as shown below:
ServerName your-server-ip # ServerTokens Prod # RequestHeader unset X-Forwarded-User
Example:
Save and close the file, then restart the Apache service to apply the changes:
systemctl restart apache2
Step 6 – 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 20.04. Try hosting your own online ticketing system with Zammad on VPS Hosting from Atlantic.Net.