Развертывание почтовой платформы MGate

Пошаговое руководство по вводу сервера в эксплуатацию за 5 минут. Поддерживаются Docker Compose и Kubernetes (Helm); образ All-in-One — скоро.

Чеклист готовности сервера (Pre-flight Checklist)

Перед установкой проверьте соответствие хоста требованиям для стабильной отправки почты:

1. Публичный статический IPv4
Почтовый шлюз обязан иметь постоянный белый IP-адрес. Динамические пулы IP-адресов заблокированы в спам-базах по умолчанию.
2. Открытый порт 25/TCP
Убедитесь, что ваш хостинг-провайдер не блокирует исходящий порт 25. Проверьте командой: nc -zv -w 5 smtp.gmail.com 25.
3. Обратная зона rDNS (PTR)
PTR-запись внешнего IP должна строго указывать на FQDN имя сервера (например, mail.company.ru).
4. Docker 25+ и Docker Compose v2.24+
Поддерживаются дистрибутивы Linux: Ubuntu 22.04 / 24.04 LTS, Debian 12, Rocky Linux 9, AlmaLinux.

Аппаратные требования к серверу

Образы собираются только для архитектуры linux/amd64 (x86_64); на arm64 они не запустятся.

Профиль нагрузки Процессор Оперативная память Накопитель Рекомендуемая топология
Минимальный (без ClamAV) 2 vCPU 2 GB RAM 20 GB SSD Docker Compose (Тестирование, до 20 ящиков)
Стандартный (полный стек) 4 vCPU 8 GB RAM 100 GB NVMe Docker Compose (Production, до 500 ящиков)
Высоконагруженный 8–16+ vCPU 16–32+ GB RAM 500+ GB NVMe / S3 Kubernetes Кластер (Helm-чарт, 1000+ ящиков)

Автоматическая установка

Запустите на сервере Linux x86_64 с правами root. Установщик спросит почтовый домен, имя сервера и e-mail администратора, проверит ресурсы, порты и подсети, установит зависимости и Docker на Debian/Ubuntu, скачает релиз в /opt/mgate и развернёт весь стек контейнеров. После проверки готовности он добавит ваш домен в MGate.

bash
curl -fsSL https://raw.githubusercontent.com/mgate-server/mgate/main/scripts/install.sh -o install-mgate.sh && sudo bash install-mgate.sh

Скачать скрипт install.sh · Посмотреть исходный код

Если curl отсутствует: sudo apt-get update && sudo apt-get install -y curl ca-certificates. Параметры: bash install-mgate.sh --help. Для сервера с 2–4 GB RAM добавьте --without-clamav; полный стек требует минимум 4 GB. Нужны 2 vCPU и 20 GiB свободного места. На других Linux установщик подскажет, как поставить недостающие зависимости вручную.

DNS, PTR и доступность портов у провайдера настраиваются вручную — установщик покажет подсказки. Пароль администратора находится в MGATE_ADMIN_PASSWORD файла /opt/mgate/.env (доступен root). Повторный запуск сохраняет конфигурацию и данные. По умолчанию используется самоподписанный TLS-сертификат; собственный загрузите в разделе «Сертификаты».

Установка через Docker Compose

Шаг 1. Клонирование репозитория

Склонируйте официальный репозиторий развертывания (github.com/mgate-server/mgate) и перейдите на последний релиз (список релизов):

bash
git clone https://github.com/mgate-server/mgate.git && cd mgate
git checkout "$(git tag --sort=-v:refname | head -n 1)"

Шаг 2. Инициализация и генерация секретов

Сгенерируйте файл .env с уникальными криптографическими паролями:

bash
make init

Шаг 3. Настройка FQDN и администратора

Укажите домен вашего почтового сервера в файле .env. MGATE_ADMIN_EMAIL — e-mail первого администратора:

.env
MGATE_HOSTNAME=mail.company.ru
[email protected]

Шаг 4. Запуск контейнеров

Образы загружаются из ghcr.io/mgate-server/* (публичные, вход в реестр не требуется; список — на странице пакетов организации). Загрузите образы, запустите сервисы и проверьте их статус:

bash
docker compose pull
docker compose up -d
docker compose ps

Шаг 5. Получение первого пароля администратора

Если MGATE_ADMIN_PASSWORD в .env не задан, пароль генерируется при первой инициализации базы и выводится в лог один раз — сохраните его сразу:

bash
docker compose logs migrate | grep -A2 'initial superadmin'

Откройте в браузере https://mail.company.ru/admin и войдите под администратором. По умолчанию сервер отдаёт самоподписанный сертификат, поэтому браузер покажет предупреждение; для рабочей эксплуатации загрузите собственный сертификат в разделе «Сертификаты» (автоматический выпуск Let's Encrypt — в разработке). Если пароль утерян, задайте новый: docker compose exec api mgate admin reset-password <MGATE_ADMIN_EMAIL>

Развертывание в Kubernetes (Helm)

Для работы в кластере Kubernetes доступен официальный Helm-чарт в каталоге deploy/helm/mgate репозитория (выполняйте из клона на последнем релизе, см. шаг 1):

bash
cd mgate/deploy/helm/mgate
helm install mgate . \
  --namespace mgate --create-namespace \
  --set config.hostname=mail.company.ru \
  --set [email protected]

Диагностика проблем при развертывании

Исходящая почта задерживается

Причина: Блокировка 25-го порта на уровне виртуального коммутатора хостинг-провайдера.
Решение: Создайте запрос в тикет-систему хостинга для снятия блокировки SMTP 25.

Браузер предупреждает о сертификате

Причина: По умолчанию отдаётся самоподписанный сертификат; автоматический выпуск Let's Encrypt пока в разработке.
Решение: Загрузите собственный сертификат (цепочка и ключ в PEM) в админке: «Сертификаты» → «Загрузить сертификат».