Help Desk and Ticket System

Zammad! is a web-based, open source user support/ticketing solution.


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 e-mails. It is distributed under version 3 of the GNU AFFERO General Public License (GNU AGPLv3).

Do you receive many e-mails and want to answer them with a team of agents?

You're going to love Zammad!

System Requirements

In order to install Zammad 3.4+, you must have the following softwares

  • Ruby 2.6.5+
  • MySQL 5.6+ / MariaDB 10.0+ / PostgreSQL 9.1+
  • Apache 2.2+ / Nginx 1.3+


Following are the key features of Zammad

  • Easy data historization
  • Escalations
  • Individual fields
  • Immediate changes
  • Your own overview
  • Chat
  • Phone
  • Multilingual
  • Branding
  • Tasks
  • Autosave
  • Text modules
  • Permanent marking
  • Full-text search
  • Security
  • Twitter integration
  • Customer interface
  • VIP
  • External authentication
  • Zammad migrator

Installation Instructions

Install Zammad on Debian 7, 8 / Ubuntu 16.04 / Ubuntu 18.04 (with Nginx & MySQL)


apt-get update 
apt-get install curl git-core patch build-essential bison zlib1g-dev libssl-dev libxml2-dev libxml2-dev sqlite3 libsqlite3-dev autotools-dev libxslt1-dev libyaml-0-2 autoconf automake libreadline6-dev libyaml-dev libtool libgmp-dev libgdbm-dev libncurses5-dev pkg-config libffi-dev libmysqlclient-dev mysql-server nginx gawk libimlib2-dev

Add User

useradd zammad -m -d /opt/zammad -s /bin/bash 
echo "export RAILS_ENV=production" >> /opt/zammad/.bashrc 

Create MySQL user zammad

 mysql --defaults-extra-file=/etc/mysql/debian.cnf -e "CREATE USER 'zammad'@'localhost' IDENTIFIED BY 'Your_Pass_Word'; GRANT ALL PRIVILEGES ON zammad_prod.* TO 'zammad'@'localhost'; FLUSH PRIVILEGES;" 

Get Zammad

su - zammad
curl -O
tar -xzf zammad-latest.tar.gz
rm zammad-latest.tar.gz 

Install environment

gpg --keyserver hkp:// --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
curl -L | bash -s stable
source /opt/zammad/.rvm/scripts/rvm
echo "source /opt/zammad/.rvm/scripts/rvm" >> /opt/zammad/.bashrc
echo "rvm --default use 2.6.5" >> /opt/zammad/.bashrc
rvm install 2.6.5
gem install bundler

Install Zammad

bundle install --without test development postgres
cp config/database/database.yml config/database.yml

Insert mysql user, pass & change adapter to mysql2 & change database to zammad_prod.

vi config/database.yml 
rake db:create 
rake db:migrate 
rake db:seed 
rake assets:precompile

Start Zammad

rails s -p 3000 &>> log/zammad.log &
script/websocket-server.rb start &>> log/zammad.log &
script/scheduler.rb start &>> log/zammad.log &

Create Nginx Config & restart Nginx

cp /opt/zammad/contrib/nginx/zammad.conf /etc/nginx/sites-available/zammad.conf

Change servername “localhost” to your domain if your’re not testing localy

vi /etc/nginx/sites-available/zammad.conf
ln -s /etc/nginx/sites-available/zammad.conf /etc/nginx/sites-enabled/zammad.conf
systemctl restart nginx

Go to http://localhost and you’ll see

  • “Welcome to Zammad!”, there you need to create your admin user and invite other agents.

Congrats! You have successfully installed Zammad on NGINX