Zammad - это служба поддержки с открытым исходным кодом, предназначенная для групп поддержки клиентов. С Zammad представители службы поддержки клиентов могут легко обрабатывать запросы и жалобы клиентов по различным каналам, включая Интернет, формы, электронную почту, чат, Twitter, Facebook и т. Д.
Предпосылки
	- Свежий Vultr Ubuntu 16.04 LTS экземпляр сервера x64 с по крайней мере 4 Гб оперативной памяти. Скажите, что его IP-адрес 203.0.113.1и имя хостаhelpdesk.
- Домен, helpdesk.example.comнастроенный для указания на экземпляр сервера, упомянутый выше. Вы можете узнать больше об этом в другом уроке Vultr .
- Пользователь Sudo .
- Экземпляр сервера обновлен до последнего стабильного состояния .
- В производственной среде рекомендуется настроить файл подкачки , чтобы оптимизировать производительность.
Шаг 1. Установите полное доменное имя (полное доменное имя)
В соответствии с требованиями Zammad вам необходимо правильно настроить полное доменное имя на экземпляре вашего сервера, прежде чем вы сможете получить удаленный доступ к сайту Zammad.
Используйте viтекстовый редактор, чтобы открыть /etc/hostsфайл.
sudo vi /etc/hosts
Вставьте следующую строку перед любыми существующими строками.
203.0.113.1 helpdesk.example.com helpdesk
Сохранить и выйти.
:wq!
Используйте hostname -fкоманду для подтверждения результата, который будет выглядеть следующим образом.
helpdesk.example.com
Шаг 2: Установите пакеты OpenJDK 8
В соответствии с требованиями Zammad, вам необходимо установить Java на свой экземпляр сервера, прежде чем вы сможете установить и запустить Zammad.
Установите последнюю стабильную версию OpenJDK 8.
sudo apt install -y openjdk-8-jdk
Установив OpenJDK 8, вы можете проверить результат.
java -version
Вывод будет выглядеть так.
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-2ubuntu1.16.04.3-b11)
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)
Наконец, настройте JAVA_HOMEпеременную среды.
echo "JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")" | sudo tee -a /etc/profile
source /etc/profile
Шаг 3: Установите Elasticsearch 5 и плагин mapper-attachments
Zammad использует Elasticsearch для обеспечения функции поиска. В Ubuntu 16.04 вы можете установить последнюю стабильную версию Elasticsearch 5 с помощью официального репозитория Elasticsearch DEB, как показано ниже.
Сначала загрузите и установите открытый ключ подписи Elasticsearch 5.
sudo apt install -y wget
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Затем установите apt-transport-httpsпакет.
sudo apt install -y apt-transport-https
Сохраните определение хранилища в /etc/apt/sources.list.d/elastic-5.x.list.
echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
Затем установите Elasticsearch 5.x с помощью APT.
sudo apt update -y
sudo apt install -y elasticsearch
Наконец, запустите службу Elasticsearch и сделайте так, чтобы она автоматически запускалась во время загрузки.
sudo systemctl daemon-reload
sudo systemctl start elasticsearch.service
sudo systemctl enable elasticsearch.service
Кроме того, чтобы Elasticsearch мог индексировать файловые вложения, вам необходимо установить mapper-attachmentsплагин Elasticsearch следующим образом.
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install mapper-attachments
Когда вас попросят утвердить дополнительные разрешения, введите « Y», а затем нажмите « Enter», чтобы завершить установку.
Перезапустите сервис Elasticsearch, чтобы загрузить новый плагин.
sudo systemctl restart elasticsearch.service
Шаг 4: Установите Zammad 2.0
Чтобы упростить процесс установки, вы можете использовать официальное репозиторий Zammad DEB для установки Zammad вместе с различными зависимостями, включая Nginx, PostgreSQL и другие, одновременно.
Прежде всего, убедитесь, что экземпляр сервера использует UTF-8локаль, иначе PostgreSQL не может быть установлен.
locale
Если вы найдете какие-либо настройки локали, кроме en_US.UTF-8, то вам нужно переключиться на эту локаль следующим образом.
sudo apt install -y locales
sudo locale-gen en_US.UTF-8
echo "LANG=en_US.UTF-8" | sudo tee /etc/default/locale
После проверки правильности локали загрузите официальное репозиторий Zammad DEB.
wget -qO- https://dl.packager.io/srv/zammad/zammad/key | sudo apt-key add -
sudo wget -O /etc/apt/sources.list.d/zammad.list https://dl.packager.io/srv/zammad/zammad/stable/installer/ubuntu/16.04.repo
Установите Zammad и все необходимые зависимости, используя APT.
sudo apt update -y
sudo apt install -y zammad
После успешной установки Zammad служба Zammad автоматически запустится. Вы можете использовать следующую команду для подтверждения статуса сервиса Zammad.
sudo systemctl status zammad.service
Его статус будет active (running).
Затем используйте следующие команды, чтобы заставить Zammad работать с Elasticsearch и перестроить индекс. 
sudo zammad run rails r "Setting.set('es_url', 'http://localhost:9200')"
sudo zammad run rake searchindex:rebuild
Добавьте дополнительное пространство имен индекса Elasticsearch (необязательно).
sudo zammad run rails r "Setting.set('es_index', Socket.gethostname + '_zammad')"
Игнорировать общие двоичные типы файлов (необязательно).
sudo zammad run rails r "Setting.set('es_attachment_ignore', [ '.png', '.jpg', '.jpeg', '.mpeg', '.mpg', '.mov', '.bin', '.exe', '.box', '.mbox' ] )"
Установите максимальный размер вложения (необязательно).
sudo zammad run rails r "Setting.set('es_attachment_max_size_in_mb', 50)"
Чтобы разрешить пользователям удаленный доступ к Zammad, вам необходимо изменить файл конфигурации Zammad Nginx.
sudo vi /etc/nginx/sites-available/zammad.conf
Найдите строку.
 server_name localhost;
Замените localhostна полное доменное имя вашего экземпляра сервера.
server_name helpdesk.example.com;
Сохранить и выйти.
:wq!
Наконец, перезапустите службу Nginx, чтобы применить ваши изменения.
sudo systemctl restart nginx.service
Шаг 5: Настройка SELinux и правил брандмауэра
Используйте следующие команды, чтобы определить состояние SELinux на экземпляре вашего сервера.
sudo apt install -y policycoreutils
sestatus
Если SELinux включен в enforcingрежиме на вашем компьютере, вам нужно изменить правило SELinux следующим образом.
sudo apt install -y selinux selinux-basics selinux-utils selinux-policy-ubuntu setools
sudo setsebool httpd_can_network_connect on -P
Если SELinux disabledвключен или включен в этом permissiveрежиме, игнорируйте вышеуказанные изменения и продолжайте.
Вам также необходимо изменить правила брандмауэра UFW следующим образом.
sudo ufw app list
sudo ufw allow OpenSSH
sudo ufw allow in "Nginx Full"
sudo ufw enable
Шаг 6: Настройте новую систему Zammad из веб-интерфейса.
Укажите свой любимый веб-браузер http://helpdesk.example.com, и тогда вы попадете на Zammad getting startedстраницу.
Нажмите на Setup new systemкнопку, чтобы двигаться дальше.
В Administrator Accountокне введите имя, фамилию, адрес электронной почты и пароль администратора (дважды), а затем нажмите Createкнопку.
В Organizationокне http://helpdesk.example.comвведите название организации и системный URL , загрузите свой логотип (если есть), а затем нажмите Nextкнопку.
В Email Notificationокне выберите правильный способ отправки электронной почты, а затем нажмите Continueкнопку.
В Connect Channelsокне нажмите Skipкнопку, чтобы завершить первоначальную настройку. Все каналы могут быть настроены позже.
Это все для настройки действующей системы продажи билетов Zammad. Не стесняйтесь изучать интерфейс Zammad и приглашать представителей службы поддержки клиентов. Спасибо за чтение.