Гид по технологиям

Установка и настройка Zammad на Ubuntu 16.04 с Nginx и Let's Encrypt

• 6 min read • Системное администрирование • Обновлено 28 Nov 2025
Zammad на Ubuntu 16.04: Nginx и Let's Encrypt
Zammad на Ubuntu 16.04: Nginx и Let's Encrypt

Важно: перед началом убедитесь, что у вас есть доступ root и публичное доменное имя, указывающее на сервер.

Что такое Zammad

Zammad — это web‑приложение для службы поддержки и тикетов, написанное на Ruby. Одной строкой: это веб‑система тикетов с поддержкой нескольких каналов коммуникации (электронная почта, чат, Telegram, Facebook и др.). Термин: тикет — запись обращения клиента с историей действий и метаданными.

Что мы сделаем

  1. Настроим локали на Ubuntu 16.04
  2. Установим Zammad из репозитория
  3. Установим и настроим SSL через Let’s Encrypt
  4. Настроим Nginx на работу с HTTPS и Zammad
  5. Пройдем первоначальную веб‑настройку Zammad
  6. Дадим дополнительные советы, чек‑листы и команды управления

Требования

  • Ubuntu 16.04 (Xenial Xerus)
  • Оперативная память: 2 ГБ или больше
  • Права root или sudo
  • Публичный DNS‑имя (A/AAAA запись), указывающее на сервер

Шаг 1 — Настройка локалей

Перед установкой PostgreSQL и других компонентов рекомендуется использовать UTF‑8 локаль.

Установите пакет локалей:

apt install locales

Сгенерируйте локаль en_US.UTF-8 и сделайте её системной по умолчанию:

locale-gen en_US.UTF-8  
echo 'LANG=en_US.UTF-8' > /etc/default/locale

Установка локали

Проверьте текущую локаль:

locale

Ожидаемый результат: системная локаль использует UTF-8.

Проверка системной локали

Шаг 2 — Установка Zammad из репозитория

Мы устанавливаем Zammad из официального репозитория пакетов (проще, чем компиляция из исходников).

Добавьте GPG‑ключ и репозиторий:

wget -qO - https://deb.packager.io/key | sudo apt-key add -  
echo "deb https://deb.packager.io/gh/zammad/zammad xenial stable" | sudo tee /etc/apt/sources.list.d/zammad.list

Обновите кеш пакетов и установите Zammad:

sudo apt update  
sudo apt install zammad

Примечание: установщик автоматически добавит зависимости, включая Nginx и PostgreSQL.

После установки вы увидите итоговую информацию в выводе apt.

Запуск Zammad после установки

Шаг 3 — Установка и получение SSL‑сертификата Let’s Encrypt

Мы будем использовать certbot (инструмент Let’s Encrypt) для получения бесплатного сертификата и затем настроим Nginx.

Установите клиент letsencrypt (название пакета в репозитории Ubuntu 16.04 — letsencrypt/certbot):

apt install letsencrypt

Перейдите в каталог конфигурации Nginx и откройте виртуальный хост по умолчанию:

cd /etc/nginx/sites-available/  
vim default

Внутри секции server добавьте разрешение для ACME запросов:

        location ~ /.well-known {  
                allow all;  
        }

Сохраните файл и перезапустите Nginx:

systemctl restart nginx

Генерируем сертификат для вашего домена (замените zammad.hakase-labs.co на своё доменное имя):

letsencrypt certonly --standalone -d zammad.hakase-labs.co

Во время процедуры укажите адрес электронной почты для уведомлений о продлении и примите условия обслуживания.

Ввод Email для сертификата

Принятие условий Let's Encrypt

После успешного получения сертификата файлы будут лежать в /etc/letsencrypt/live/<ваш-домен>/. Пример сообщения об успешном создании сертификата:

Создание SSL сертификата

Шаг 4 — Настройка Nginx для Zammad

Zammad поставляет конфигурацию Nginx в /etc/nginx/sites-available. Отредактируем или создадим конфигурацию zammad.conf и добавим SSL‑параметры.

Откройте файл:

cd /etc/nginx/sites-available/  
vim zammad.conf

Удалите содержимое или замените его на приведённый ниже фрагмент (проверьте и поменяйте server_name и пути к сертификатам на ваши домены и пути):

#
 # this is the nginx config for zammad
 #

 upstream zammad {
     server localhost:3000;
 }

 upstream zammad-websocket {
     server localhost:6042;
 }

 # Added - Automatically redirect HTTP to HTTPS Nginx
 server {
     listen 80;
     server_name zammad.irsyadf.me;
     return 301 https://$host$request_uri;
 }

 # Added - HTTPS configuration for Zammad
 server {
     listen 443 http2 ssl;

     ssl_certificate /etc/letsencrypt/live/zammad.irsyadf.me/fullchain.pem;
     ssl_certificate_key /etc/letsencrypt/live/zammad.irsyadf.me/privkey.pem;
     ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
     ssl_prefer_server_ciphers on;
     ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
     ssl_ecdh_curve secp384r1;
     ssl_session_cache shared:SSL:10m;
     ssl_session_tickets off;
     ssl_stapling on;
     ssl_stapling_verify on;
     resolver 8.8.8.8 8.8.4.4 valid=300s;
     resolver_timeout 5s;
     add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";
     add_header X-Frame-Options DENY;
     add_header X-Content-Type-Options nosniff;

     # replace 'localhost' with your fqdn/domain name if you want to use zammad from remote
     server_name zammad.irsyadf.me;

     root /opt/zammad/public;

     access_log /var/log/nginx/zammad.access.log;
     error_log  /var/log/nginx/zammad.error.log;

     client_max_body_size 50M;

     location ~ ^/(assets/|robots.txt|humans.txt|favicon.ico) {
         expires max;
     }

     location /ws {
         proxy_http_version 1.1;
         proxy_set_header Upgrade $http_upgrade;
         proxy_set_header Connection "Upgrade";
         proxy_set_header CLIENT_IP $remote_addr;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_read_timeout 86400;
         proxy_pass http://zammad-websocket;
     }

     location / {
         proxy_set_header Host $http_host;
         proxy_set_header CLIENT_IP $remote_addr;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_read_timeout 180;
         proxy_pass http://zammad;

         gzip on;
         gzip_types text/plain text/xml text/css image/svg+xml application/javascript application/x-javascript application/json application/xml;
         gzip_proxied any;
     }
 }

Сохраните и проверьте конфигурацию Nginx, затем перезапустите сервис:

nginx -t  
systemctl restart nginx

Если тест (-t) выдаёт ошибку, внимательно проверьте синтаксис и пути к сертификатам.

Шаг 5 — Первичная веб‑настройка Zammad

Откройте веб‑браузер и перейдите по вашему доменному имени, например:

https://zammad.hakase-labs.co

Вы будете перенаправлены на HTTPS. Следуйте мастеру установки:

  1. Нажмите “Setup new System” (Запустить новый инстанс)

Мастер настройки Zammad

  1. Создайте учётную запись администратора: email и пароль.

Создание администратора

  1. Укажите название организации и другие базовые параметры.

Ввод названия организации

  1. Конфигурация электронной почты и каналов может быть пропущена на первом этапе — её удобнее настраивать позже в Settings.

Настройка email

  1. Пропустите подключение каналов, если хотите настроить их вручную позже.

Подключение каналов

После завершения мастер покажет панель администратора.

Панель администратора Zammad

Zammad установлен, Nginx и PostgreSQL настроены, HTTPS включён.

Шаг 6 — Дополнительные советы и управление сервисами

Zammad состоит из трёх ключевых компонентов: веб‑приложение, воркеры и вебсокеты. Все они управляются systemd‑юнитами.

Общие команды:

systemctl start zammad  
systemctl status zammad  
systemctl restart zammad

Проверка отдельных сервисов:

systemctl status zammad-web  
systemctl status zammad-worker  
systemctl status zammad-websocket

Если нужно перезапустить только воркеры или вебсокеты, используйте соответствующие unit‑файлы.

Частые ошибки и способы их устранения

  • Ошибка получения сертификата: порт 80 занят. Решение: временно остановите сервис, использующий порт 80, или используйте параметр –webroot с корректным корнем.
  • Nginx не стартует после правки конфигурации: выполнить nginx -t и исправить синтаксис, проверить пути к сертификатам.
  • Проблемы с подключением WebSocket: убедитесь, что секция /ws в конфигурации Nginx проксирует к правильному upstream (порт 6042) и что zammad-websocket запущен.

Рекомендации по безопасности и соответствию (GDPR)

  • Настройте регулярное резервное копирование базы данных и каталога /opt/zammad (медиа, вложения).
  • Используйте сильные пароли для учётной записи администратора и второй фактор аутентификации, если доступен.
  • Ограничьте доступ к административной панели через брандмауэр или VPN для внутренних интерфейсов.
  • Если вы обрабатываете персональные данные граждан ЕС, документируйте основания обработки данных и настройки хранения; храните логи и бэкапы в пределах требований вашей политики конфиденциальности.

Шпаргалка команд (Cheat sheet)

  • Установка пакета: sudo apt install zammad
  • Проверка Nginx: nginx -t
  • Перезапуск Nginx: systemctl restart nginx
  • Получение сертификата: letsencrypt certonly –standalone -d <ваш-домен>
  • Статус сервисов Zammad: systemctl status zammad*

Критерии приёмки

  1. По HTTP происходит редирект на HTTPS.
  2. HTTPS сертификат действителен и соответствует домену.
  3. Веб‑панель Zammad доступна и позволяет создать администратора.
  4. Сервисы zammad-web, zammad-worker и zammad-websocket находятся в состоянии active (running).

Чек‑лист ролей перед вводом в эксплуатацию

Администратор инфраструктуры:

  • DNS A/AAAA указывает на сервер
  • Порты 80 и 443 открыты/разрешены для Let’s Encrypt
  • Создан бэкап плана для БД PostgreSQL

Администратор Zammad:

  • Создан администратор в веб‑мастере
  • Настроена исходящая почта (SMTP)
  • Настроены каналы (email, чат, интеграции)

Операционная команда:

  • Мониторинг сервисов настроен (systemd/Prometheus/другое)
  • План восстановления протестирован

Факт‑бокс — ключевые числа

  • Минимальная рекомендованная оперативная память: 2 ГБ
  • Порты: 80 (HTTP), 443 (HTTPS), 3000 (внутренний Rails), 6042 (WebSocket)
  • Каталог установки веб‑приложения: /opt/zammad
  • Местонахождение сертификатов Let’s Encrypt: /etc/letsencrypt/live/<ваш-домен>/

Когда стоит выбрать альтернативу

  • Если вам нужна корпоративная поддержка и SLA, рассмотрите коммерческие варианты поддержки Zammad или платные SaaS‑решения.
  • Если инфраструктура требует контейнеризации и автоматического масштабирования, развёртывание в Docker/Kubernetes может быть предпочтительнее установки на хост.

Короткая методология установки

  1. Подготовить сервер: обновить пакеты, настроить локали, открыть порты.
  2. Добавить репозиторий Zammad и установить пакет.
  3. Получить SSL‑сертификат и настроить Nginx.
  4. Запустить веб‑мастер и выполнить базовую конфигурацию.
  5. Настроить мониторинг и бэкапы.

Краткий глоссарий

  • Zammad: система управления тикетами и обращениям клиентов.
  • WebSocket: двусторонний канал связи в реальном времени для уведомлений.
  • Let’s Encrypt: бесплатный центр сертификации для автоматических SSL‑сертификатов.

Итог

Zammad можно быстро развернуть на Ubuntu 16.04 с помощью пакета из репозитория. Ключевые шаги: настроить локали, установить пакет, получить сертификат Let’s Encrypt, настроить Nginx и пройти веб‑мастер. После установки убедитесь в наличии бэкапов, мониторинга и политики безопасности.

Короткое примечание: документация Zammad содержит детальные инструкции по настройке почты и каналов — при необходимости обращайтесь к официальному руководству.

Справочные материалы

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро