Install Zammad help desk system on Ubuntu 20.04 | 18.04

You can download this article in PDF format via the link below to support us.
Download the guide in PDF formatshut down

Zammad is an open source Web-based service desk and customer support system designed to help you manage customer communication through multiple channels such as Twitter, phone, chat, Facebook, and email. The Zammad help desk software is released under the GNU AGPLv3 license. With its REST API, you can easily link to other programs and get real-time information about all channels and operations.

Some notable features of the Zammad help desk are:

  • group: Form groups to establish isolation within your team and department
  • LDAP integration: Zammad uses our secure LDAP integration to provide you with centralized user/authority management options
  • sign in: Thanks to the integration of architectures such as SAML or Shibboleth, Zammad can easily achieve single sign-on with one click
  • External authentication: Support for logging in through a third party (such as Twitter, Facebook, LinkedIn or Google) via OAuth.
  • Time record: Zammad enables agents to record the exact processing time of each ticket
  • Exchange integration: Support Exchange synchronization to import Exchange address book contacts
  • Loose integration: When there is a new ticket, you can automatically receive messages in Slack
  • i-doit integration: I-doit integration allows you to follow data, processes and systems at any time
  • knowledge base: Zammad has an extensive knowledge base to ensure that everyone is always in the photo
  • multilingual: Zammad web application supports more than 30 languages
  • There are a lot more

In this short article, we will guide you through the steps to install Zammad Helpdesk and customer support system on Ubuntu 20.04 | 18.04 Linux system.

Minimum server requirements:

  • 2 CPU cores
  • 4 GB of RAM (If you want to run Elasticsearch on the same server, +4 GB)

In order to achieve the best performance, up to 40 seats can be accommodated:

  • 4 CPU cores
  • 6 GB of RAM (If you want to run Elasticsearch on the same server, +6 GB)

Step 1: Update the system

As you know, we start all software installation guides from the system update:

sudo apt update
sudo apt -y full-upgrade

I always recommend you to perform a system restart after the upgrade is complete

sudo reboot

Step 2: Install package dependencies

The following dependencies need to be installed on the system.All this can be used Easy Package management tools:

sudo apt install wget apt-transport-https gnupg2 libimlib2 libimlib2-dev

For Zammad to work properly, your system must use the correct language environment.

sudo apt install locales
sudo locale-gen en_US.UTF-8
echo "LANG=en_US.UTF-8" | sudo tee /etc/default/locale

Install MariaDB database server:

sudo apt install mariadb-server

Use the following command to protect the security of the database installation server:

$ sudo mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Configuration code

$ sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf
character-set-server  = utf8mb4
collation-server      = utf8mb4_general_ci

Restart the database server service:

sudo systemctl restart mariadb

Install Apache web server:

sudo apt install apache2

Add Elasticsearch repository:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/oss-7.x/apt stable main" | sudo tee  /etc/apt/sources.list.d/elastic-7.x.list
sudo apt update

Step 3: Install Zammad on Ubuntu 20.04 | 18.04

Install the repository key:

wget -qO- https://dl.packager.io/srv/zammad/zammad/key | sudo apt-key add -

Add the repository to the Debian/Ubuntu system:

Ubuntu 20.04:

echo "deb https://dl.packager.io/srv/deb/zammad/zammad/stable/ubuntu 20.04 main" | sudo tee /etc/apt/sources.list.d/zammad.list

Ubuntu 18.04:

echo "deb https://dl.packager.io/srv/deb/zammad/zammad/stable/ubuntu 18.04 main" | sudo tee /etc/apt/sources.list.d/zammad.list

Now install Zammad on Ubuntu 20.04. Debian 10 system:

sudo apt update
sudo apt install zammad

Accept the installation to continue:

The following additional packages will be installed:
  elasticsearch-oss libevent-core-2.1-7 libevent-extra-2.1-7 libpq5
The following NEW packages will be installed:
  elasticsearch-oss libevent-core-2.1-7 libevent-extra-2.1-7 libpq5 zammad
0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
Need to get 363 MB of archives.
After this operation, 860 MB of additional disk space will be used.
Do you want to continue? [Y/n] y

If you have a ufw firewall, please open http and https ports:

sudo ufw allow 80,443
sudo ufw reload

After installing Elasticsearch and its accessory plug-ins:

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

Make sure to enable elasticsearch by default and start it.

sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch

Start the Zammad service and enable it to start when the system boots:

sudo systemctl start zammad
sudo systemctl enable zammad

Set the Elasticsearch server address:

sudo zammad run rails r "Setting.set('es_url', 'https://localhost:9200')"

Build a search index:

sudo zammad run rake searchindex:rebuild

First, use the following command to disable the Apache default virtual host file:

sudo a2dissite 000-default.conf

Restart the apache2 web server:

sudo systemctl restart apache2

Confirm that there is no error when starting the service:

$ systemctl status apache2
● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-04-10 12:17:50 UTC; 7s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 2184 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 2201 (apache2)
      Tasks: 55 (limit: 9513)
     Memory: 6.1M
     CGroup: /system.slice/apache2.service
             ├─2201 /usr/sbin/apache2 -k start
             ├─2202 /usr/sbin/apache2 -k start
             └─2203 /usr/sbin/apache2 -k start

Apr 10 12:17:50 ubuntu systemd[1]: Starting The Apache HTTP Server...
Apr 10 12:17:50 ubuntu systemd[1]: Started The Apache HTTP Server.

I encountered an error”Apachek[2095]: Invalid command “RequestHeader”, may be misspelled or defined by a module not included in the server configuration“. I had to uncomment:

$ sudo vim /etc/apache2/sites-enabled/zammad.conf
# Line 36
#RequestHeader unset X-Forwarded-User

Then restart apache2

sudo systemctl restart apache2

Step 4: Visit the Zammad web interface

Open your web browser and visit the Zammad web interface at the URL.

 https://your_server_ip_or_hostname

You should see the following screen. select”Set up a new system“To start the configuration.

Create the first administrator account in the next screen.Install Zammad Help Desk Create Admin 02

Provide the organization name and click Next.Install Zammad Help Desk Configure Base 03

You can choose to configure the email communication channel in the next screenInstall Zammad Helpdesk Connect Channel 04

You can also configure the local MTA used to send emails from the server.Install Zammad Help Desk Email Notification 05

After successfully configuring Zammad from the web interface, you should see a page similar to the following.Install Zammad Help Desk Dashboard 06

To secure your web server with SSL, please check the official Zammad web server configuration page.

Similar articles:

How to install osTicket on Ubuntu Linux

Use “Let’s Encrypt SSL” to install Chatwoot on Ubuntu

Use “Let’s Encrypt SSL” to install Rocket.Chat on Ubuntu

Install Rocket.Chat Server on Debian | Ubuntu

You can download this article in PDF format via the link below to support us.
Download the guide in PDF formatshut down

Related Posts