Install Zammad on CentMinMod CentOS 7

0
2714

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).

Features

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.

Phone

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.

Branding

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.

Autosave

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.

Security

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.

Escalations

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.

Chat

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

Multilingual

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

Tasks

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.

VIP

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

Output

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

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

cmdir
./centmin.sh

Install Ruby 2.7

yum install curl gpg gcc gcc-c++ make imlib2 imlib2-devel -y
curl -sSL https://rvm.io/mpapis.asc | sudo gpg2 --import -
curl -sSL https://rvm.io/pkuczynski.asc | sudo gpg2 --import -
curl -sSL https://get.rvm.io | sudo bash -s stable
usermod -a -G rvm `whoami`
source /etc/profile.d/rvm.sh
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
wget https://ftp.zammad.com/zammad-latest.tar.gz
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

Find

#### 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
export RAILS_SERVE_STATIC_FILES=true
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
./install-zammad-systemd-services.sh
systemctl enable zammad

Now we have Zammad running on port 3000

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

vi /usr/local/nginx/conf/conf.d/site.bullten.work.ssl.conf

Find

root /home/nginx/domains/site.bullten.work/public;

Change to

root /opt/zammad/public;

Find

  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;

  }

Find

include /usr/local/nginx/conf/pre-staticfiles-local-site.bullten.work.conf;

Add Above

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

So all this should look like the below screenshot

Restart Nginx

nprestart

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 https://artifacts.elastic.co/GPG-KEY-elasticsearch
echo "[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
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