Zammad is free and open source web-based customer support system. It uses PostgreSQL or MySQL to store its data. It provides various features to manage customer support via many different channels like telephone, chat, facebook, twitter and email. You can manage and organize your support team for personalized and quick answers for effective customer support. Zammad also provides external authentication with facebook, twitter, and LinkedIn for quick login.
In this tutorial, we will install Zammad on CentOS 7.
Zammad recommends at least 2GB RAM for installation. If you want to run elasticsearch on the same server then you will need at least 4GB RAM on your server. All the required dependencies will be installed throughout the tutorial. You will need a minimal installation of CentOS 7 with root access on it. If you are logged in as a non-root user, you can run sudo -i to switch to root user.
Before installing any package it is recommended that you update the packages and repository using the following command.
yum -y update
Now you will need to install EPEL repository as we will need to install few packages which are not available in the default yum repository. Run the following command to install EPEL repository.
yum -y install epel-releaseyum -y update
Zammad can be installed directly using YUM, but before that, you will need to add the Zammad repository to your server. Run the following commands to add Zammad repository in your system.
echo "[zammad]name=Repository for zammad/zammad application.baseurl=https://rpm.packager.io/gh/zammad/zammad/centos7/stableenabled=1" | tee /etc/yum.repos.d/zammad.repo
Once the repository is added, add Zammad public key using the following command.
rpm --import https://rpm.packager.io/key
You can install Zammad using following command.
yum -y install zammad
The above command will install Zammad on your system. During the installation it will install nginx and PostgreSQL. It will automatically initialize the database and will setup everything for you. Once the installation finishes, you can access Zammad using the following URL in your browser.
Zammad also creates a server block or virtual host file for nginx reverse proxy. For non-SSL proxy, you can use the same configuration file but you will need to make a small change in the configuration. Edit the Zammad nginx configuration file using the following command.
If you don't have nano installed, you can run yum -y install nano command. Find the following line in the configuration.
Change the above line to the following.
Change yourdomain.com with your actual domain or subdomain. Once done save the file and exit from the editor and restart the nginx web server using the following command.
systemctl restart nginx
If you want your users to access the application using HTTPS, you can also use SSL with Zammad. In this tutorial, we will generate SSL certificates from Let's Encrypt client. If you want to use commercial SSL certificates instead, you can purchase SSL certificates from HostPresto.
To install Let's Encrypt client also called Certbot run the following command.
yum -y install certbot
Once the installation finishes, run the following command to obtain the SSL certificates from Let's Encrypt. Make sure that your domain is pointed to the server, the Let's Encrypt will check the domain authority before providing the certificates. Make sure that you do not have nginx running at this moment.
This command will run Let's Encrypt client to obtain the certificates only but will not install it. --standalone tells the client to use the standalone web server for authentication of domain authority. -d yourdomain.com tells the domain name for which the certificates needs to be obtained. Provide your email address and accept the terms and condition. Once the certificates are generated, they are likely to be stored in the following directory.
Where yourdomain.com is your actual domain. In the directory, you will find cert.pem which is your domains certificate and privkey.pem which is your certificate's private key.
Let's Encrypt SSL expires in 90 days, so it is recommended to set an automatic renewal for your certificates. Run the following command to open your crontab file.
crontab -e Enter the following line into the crontab file.
In the above configuration change yourdomain.com to your actual domain. Also, make sure that the path to your SSL certificate and private key are correct. Once done save the file and exit from the editor and restart the nginx web server using the following command.
systemctl restart nginx
Now you will need to disable your SELinux because reverse proxy does not work with SELinux policies. To temporary disable SELinux without restarting the server, run the following command.
To completely disable the SELinux you will need to edit /etc/selinux/config file.
If you don't have nano installed, you can install it using yum -y install nano Find the following line:
Change it to:
Now you will need to reboot your server so that the new configuration can take effect. Once the server is up again you can access your application at the following URL.
Click Next to go to the next interface. Choose how emails will be sent from your application. You can choose the local MTA, or SMTP. Choose according and provide the details of your mail server. It is recommended to use SMTP for sending emails.
If you find your cPanel disk space filling up, or an email address has hit its disk space quota, cPanel has a helpful built in Email Disk Usage tool. This will provide you with a simple to understand breakdown of how much disk space each folder for a particular email...
Although WHM will normally automatically keep itself up to date, you may want to manually check for server updates / push through an update that is pending, or it may be that you have automatic updates switched off on your cPanel server. In this guide we will show you how...
You may sometimes need to manually adjust the PHP settings on your cPanel server – for example if a site is hitting the PHP memory, or file size upload limit. WHM allows you to quickly change the settings of any PHP version installed on the server when needed, using the...