Обзор развертывания Zammad на сервере¶
Предварительные условия и базовые требования¶
Для обеспечения успешного развертывания и работы Zammad должны быть соблюдены следующие системные требования:
-
Операционная система: Ubuntu (в связи с использованием пакетного менеджера
apt). -
Привилегии: Требуется доступ root или sudo для установки пакетов и управления сервисами Docker.
-
Конфигурация домена: Необходим действующий доменное имя в зоне
hostkey.in. -
Необходимые пакеты:
-
ca-certificates -
curl -
git
-
FQDN финальной панели в домене hostkey.in¶
Приложение доступно по полному доменному имени (FQDN) по следующему шаблону: <prefix><Server ID>.hostkey.in
Где <prefix> установлен как zammad.
Структура файлов и директорий¶
Для конфигурации, исходного кода и SSL-сертификатов используются несколько ключевых директорий:
| Путь | Описание |
|---|---|
/root/zammad-docker-compose | Исходные файлы приложения и оркестрация Docker Compose. |
/etc/nginx/sites-available/zammad | Конфигурационный файл сервера Nginx. |
/etc/nginx/sites-enabled/zammad | Символическая ссылка на активный сайт Nginx. |
/etc/apt/keyrings/docker.asc | GPG-ключ безопасности Docker. |
/etc/letsencrypt/live/<domain>/ | SSL-сертификаты, управляемые Certbot. |
Процесс установки приложения¶
Приложение развертывается с использованием контейнеризированного подхода через Docker Compose v2. Развертывание включает следующие этапы:
-
Установка Docker Engine и плагина Docker Compose.
-
Клонирование репозитория
zammad-docker-composeв директорию/root/zammad-docker-compose. -
Настройка переменных окружения в файле
.envдля поддержки HTTPS и доверенных прокси (trusted proxies). -
Оркестрация сервисов с помощью команды
docker compose up -d.
Права доступа и безопасность¶
Безопасность обеспечивается за счет сочетания обратного проксирования (reverse proxying) через Nginx и SSL-шифрования:
-
Межсетевой экран/Прокси: Nginx выступает в роли reverse proxy, перенаправляя трафик с внешнего порта на внутренний контейнер приложения.
-
SSL/TLS: Certbot используется для получения и управления SSL-сертификатами Let's Encrypt. Включено автоматическое перенаправление (redirection) с HTTP на HTTPS.
-
Доверенные прокси (Trusted Proxies): Приложение настроено на доверие
127.0.0.1/32для заголовков проксирования.
Docker-контейнеры и их развертывание¶
Развертывание опирается на Docker Compose для управления стеком Zammad. Для инициализации контейнеров используется следующая команда:
Прокси-серверы¶
Nginx настроен как reverse proxy для обработки входящего веб-трафика и терминации (termination) SSL-соединений.
| Компонент | Детали конфигурации |
|---|---|
| Веб-сервер | Nginx |
| SSL-провайдер | Certbot (Let's Encrypt) |
| Протокол проксирования | HTTP/1.1 с поддержкой WebSocket (Upgrade header) |
| Внутренний целевой прокси | http://127.0.0.1:8080 |
Расположение конфигурационных файлов и данных¶
Следующие файлы определяют поведение прокси и окружения приложения:
-
Конфигурация Nginx:
/etc/nginx/sites-available/zammad -
Переменные окружения Docker:
/root/zammad-docker-compose/.env
Доступные порты для подключения¶
| Порт | Направление | Использование |
|---|---|---|
443 | Внешний | Защищенный веб-доступ по HTTPS (через Nginx) |
80 | Внешний | Перенаправление HTTP на HTTPS |
8080 | Внутренний | Сервис приложения Zammad (внутренний трафик контейнера) |
Запуск, остановка и обновление¶
Управление сервисами осуществляется через Docker Compose в директории приложения.
-
Запуск/Перезапуск сервисов:
-
Остановка/Пересоздание контейнеров: