Install Zammad on CentMinMod CentOS 7


Zammad is a web based open source helpdesk/customer support system with many features to manage customer communication via several channels like telephone, facebook, twitter, chat and emails. It is distributed under version 3 of the GNU AFFERO General Public License (GNU AGPLv3).


Easy data historization

Zammad is auditable. That’s the reason it is often used in banks. Via the ticket history it’s possible to reconstruct at any time who changed which attribute to which value.

Individual fields

With Zammad you can easily create individual fields like a desired deadline. And here’s the kicker: It doesn’t only work for tickets, but also for clients and organizations.

Your own overview

Create individual overviews – especially for your different teams. The admin is able to define numbers, names, columns, attributes and authorizations.


The Zammad API helps you to integrate your telephone system into in- and outgoing calls. Clients are picked and shown via their telephone number and outgoing calls can be initialized by click.


Individual guys need individual styles. That’s why clients and agents are able to change the look of Zammad according to their wishes and give the user interface their own personality.


No need to be scared of closing without saving. The current progress is being saved automatically and work can be continued on other devices.

Permanent marking

You wish to mark important sections for the whole team? Zammad supports the permanent marking of important sections in order to provide indication for your colleagues.


Play it safe with Zammad: We support different guidelines for keywords, device-logging and two-factor-authentication.

Customer interface

Customers are able to track the current editing at any time via the customer interface and can provide further information easily.

External authentication

Zammad is up to date. It’s possible to log in via Twitter, Facebook, LinkedIn or Google via OAuth.


Would you like to ensure your clients an individual escalation or solution time limit? Zammad will help you to adhere to your agreements and their evaluation

Immediate changes

The change of objects is reported immediately in the application. The advantage? Double editing is impossible and your colleagues are always provided with the newest information.


It’s worth to be quick: Customer requests can be solved seven times faster via our chat than via email.


The Zammad Web-App supports nine languages. You only have to choose the preferred language for your user interface.


Zammad supports multitasking: Your agents are up to open and edit several documents (tickets, user, organization) at once without switching between browser windows.

Text modules

Zammad is comfortable: With the aid of our flexible text modules, customer requests can be solved more efficiently.

Full-text search

Looking for the needle in a haystack? No problem with Zammad. Our full-text search doesn’t only browse tickets but also their attachments. And this with full power: The search within 40 GB of data for example takes only up to three seconds.

Twitter integration

The world’s talking about you? We guarantee your attention. You can answer immediately via status updates or message.


Zammad shows you who’s important. Via the VIP-feature important clients can be “marked” and will be presented marked in the interface.

Zammad migrator

Moving without missing data? It’s easy: By moving to Zammad you can migrate your previous data straightforwardly. Use the Zammad migrator and migrate from OTRS or Zendesk to Zammad.

How to Install Zammad on CMM

Find and save your MySQL root password somewhere as we will need that later.

cat /root/.my.cnf | grep password | cut -d' ' -f1 | cut -d'=' -f2


[10:45][[email protected] ~]# cat /root/.my.cnf | grep password | cut -d' ' -f1 | cut -d'=' -f2

Create vHost for a domain name by choosing option 2 in gui


Install Ruby 2.7

yum install curl gpg gcc gcc-c++ make imlib2 imlib2-devel -y
curl -sSL | sudo gpg2 --import -
curl -sSL | sudo gpg2 --import -
curl -sSL | sudo bash -s stable
usermod -a -G rvm `whoami`
source /etc/profile.d/
rvm requirements
rvm install 2.5.5
rvm use 2.5.5 --default

Install Zammad

useradd zammad -m -d /opt/zammad -s /bin/bash
sudo usermod -a -G rvm zammad
cd /opt
tar -xzf zammad-latest.tar.gz -C zammad
chown -R zammad:zammad zammad
su - zammad
gem install bundler
bundle install --without test development postgres

Configure Datatabse

cp config/database/database.yml config/database.yml

Edit MySQL Database. Uncomment #### mysql config ##### part and add your MySQL root login

vi config/database.yml


#### mysql config #####

# adapter: mysql2
# username: zammad
# password: <password>

Change to

#### mysql config #####

adapter: mysql2
username: root
password: YLglCR37twsDr0qTArFoHhwWI

Initialize your database

export RAILS_ENV=production
rake db:create
rake db:migrate
rake db:seed
rake assets:precompile

Change to Root and setup Zammad Services

su - root
cd /opt/zammad/script/systemd
systemctl enable zammad

Now we have Zammad running on port 3000

Lets setup Nginx Vhost to run zammad on domain name. Replace with your domain dame you created above

vi /usr/local/nginx/conf/conf.d/


root /home/nginx/domains/;

Change to

root /opt/zammad/public;


  location / {
  include /usr/local/nginx/conf/503include-only.conf;
# block common exploits, sql injections etc
#include /usr/local/nginx/conf/block.conf;

  # Enables directory listings when index file not found
  #autoindex  on;

  # Shows file listing times as local time
  #autoindex_localtime on;

  # WordPress Permalinks example
  #try_files $uri $uri/ /index.php?q=$uri&$args;


Add Under {}. We have added proxy_pass http://localhost:3000; below include directive.

  location / {
  include /usr/local/nginx/conf/503include-only.conf;

 proxy_pass http://localhost:3000;

  # block common exploits, sql injections etc
  #include /usr/local/nginx/conf/block.conf;

  # Enables directory listings when index file not found
  #autoindex  on;

  # Shows file listing times as local time
  #autoindex_localtime on;

  # WordPress Permalinks example
  #try_files $uri $uri/ /index.php?q=$uri&$args;



include /usr/local/nginx/conf/;

Add Above

location /ws {
proxy_pass http://localhost:6042;

So all this should look like the below screenshot

Restart Nginx


Now open your domain name in web browser and you will see zammad setup screen as below

Additionally you can install ElasticSearch and configure it to work with zammad.

Install ElasticSearch

rpm --import
echo "[elasticsearch]
name=Elasticsearch repository for 7.x packages
type=rpm-md"| sudo tee /etc/yum.repos.d/elasticsearch.repo
yum install -y java-11-openjdk java-11-openjdk-devel elasticsearch
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment

Centos 7

systemctl start elasticsearch.service
systemctl enable elasticsearch.service