Skip to content

MGate 2026.10.1

Choose a tag to compare

@Ivan08 Ivan08 released this 09 Oct 11:42
· 2 commits to main since this release

Первый публичный релиз.

Added

  • Почтовое ядро: Postfix, Dovecot 2.4 (IMAP/POP3/LMTP/ManageSieve), Rspamd (антиспам,
    DKIM/SPF/DMARC/ARC), ClamAV, локальный DNSSEC-резолвер Unbound.
  • TLS: по умолчанию отдаётся самоподписанный сертификат; собственный сертификат (цепочка и
    ключ в PEM) загружается и заменяется вручную в админке («Сертификаты»), причина отказа при
    загрузке показывается в окне. Автоматический выпуск Let's Encrypt — в разработке (см. Known
    limitations).
  • IMAP-миграция: перенос ящиков с Яндекс 360, Google Workspace, Mail.ru и любых IMAP-серверов
    — пакетно администратором («Импорт и миграция») и самостоятельно пользователем; выполняется в
    фоне средствами Dovecot.
  • Единый веб-интерфейс (SPA): панель администратора, личный кабинет пользователя и веб-почта
    (/mail); мастер DNS с проверкой записей по кнопке «Проверить DNS», очередь писем, живые
    логи, статистика.
  • Веб-почта (/mail) поверх IMAP/SMTP самого сервера: папки (создание, переименование,
    удаление, перемещение писем, «в спам»), списки с поиском и цепочками, чтение с безопасным
    показом HTML (внешние изображения скрыты до нажатия), черновики с автосохранением, ответ и
    пересылка, вложения, контакты (импорт и экспорт CSV/vCard), подписи, настройки, обновления в
    реальном времени. Доступ — только по сессии почтового ящика; веб-почта работает от имени
    пользователя через короткоживущие учётные данные и внутренние порты, которые не публикуются.
  • Безопасность входа: ограничение подбора пароля для веб-входа, смены пароля и
    IMAP/POP3/SMTP (общий счётчик, без возможности заблокировать пользователю вход с его обычного
    адреса); cookie сессии с префиксом __Host- и защитой CSRF; отключение ящика, домена или
    администратора сразу завершает их сессии, включая открытые IMAP-соединения; смена пароля
    действует немедленно. Закрытые ключи DKIM хранятся в базе в зашифрованном виде.
  • Домены и доступ: администраторы доменов (Domain Admin) и квоты домена (число ящиков, объём)
    входят в Community.
  • DKIM: ключ RSA-2048 генерируется при создании домена; ротация выполняется вручную кнопкой
    «Ротировать DKIM» (см. docs/OPERATIONS.md).
  • DMARC: XML-отчёты загружаются в панель вручную (автоматического приёма нет), сводка за 7 дней;
    полные IP источников, история до 90 дней и скачивание исходных XML — в Pro (DMARC
    Intelligence, входит в любую Pro-лицензию, отдельного переключателя нет). Имена хостов и география источников не определяются.
  • Разовая «Автонастройка» DNS (кнопка в мастере домена): Cloudflare и Selectel; доступна во
    всех редакциях. Фоновая сверка записей (Pro) — в разработке.
  • Редакции Community (1 домен, бесплатно) и Pro (подписка); активация по ссылке или коду —
    см. docs/LICENSING.md. Работающие Pro-модули: неограниченное число
    доменов, white-label (название продукта и логотип в шапке интерфейса и заголовке вкладки;
    favicon, акцентный цвет, ссылка поддержки и футер сохраняются, но пока не отображаются),
    DMARC Intelligence. Состав редакций и планы — docs/ROADMAP.md.
  • Первый администратор: если MGATE_ADMIN_PASSWORD пуст, пароль генерируется и один раз
    выводится в лог сервиса migrate; сброс — docker compose exec api mgate admin reset-password <email>.
  • Развёртывание: Docker Compose, Helm-чарт (deploy/helm/mgate), резервное копирование
    (restic + pg_dump), сетевой экран хоста (nftables, профиль firewall).
  • Образы в GitHub Container Registry: ghcr.io/mgate-server/* (mgate, mgate-agent, web,
    postfix, dovecot, rspamd, unbound, traefik, backup, firewall); публичные,
    скачиваются без авторизации; архитектура — linux/amd64. Все образы содержат стандартные
    OCI-метки (org.opencontainers.image.*).
  • Календарное версионирование CalVer YYYY.M.N: единая версия для всех образов, Helm-чарта и
    backend. Теги образов: 2026.10.1 (неизменяемый), 2026.10 (плавающий — последняя сборка
    месяца), latest; git-теги — v2026.10.1. Файл VERSION в корне репозитория.
  • Unbound: каталог расширений /etc/unbound/conf.d/*.conf — например, чтобы направить запросы
    приватной зоны на внутренний резолвер (см. docker/unbound/README.md).
  • Ссылки на тарифы и портал вендора в интерфейсе настраиваются переменными
    MGATE_PRICING_URL и MGATE_VENDOR_PORTAL_URL (по умолчанию пусто — ссылки скрыты).
  • Прокси для исходящих соединений (HTTPS_PROXY, HTTP_PROXY, NO_PROXY в .env) передаются
    сервисам api и worker; make init сохраняет в .env собственные переменные оператора.
  • Документация: установка, конфигурация, DNS, резервное копирование, эксплуатация, версии и
    обновление (см. docs/README.md).

Known limitations

  • Двухфакторная аутентификация (TOTP) в разработке: вход выполняется только по паролю,
    одноразовый код не запрашивается и не проверяется; подключение 2FA в личном кабинете и
    принудительная 2FA для ящиков отключены в интерфейсе.
  • Автоматический выпуск и продление сертификатов (Let's Encrypt / ZeroSSL) в разработке:
    по умолчанию отдаётся самоподписанный сертификат, собственный сертификат загружается и
    продлевается вручную; переменные MGATE_ACME_* ничего не выпускают.
  • Pro-модули в разработке (API отвечает 501 not_implemented, в интерфейсе помечены «В
    разработке»): Backup Center, Advanced Dashboard, расширенная мультиарендность (Multi-tenant
    RBAC), фоновая сверка DNS-Автопилота, приоритетные обновления.
  • Отказоустойчивость: Dovecot — только active/passive (один экземпляр на хранилище vmail;
    Director в Dovecot 2.4 CE отсутствует); Valkey/Redis — один endpoint, Redis Cluster и
    Sentinel не поддерживаются. См. docs/HA.md.
  • Автонастройка DNS поддерживает только Cloudflare и Selectel.
  • Политика MTA-STS публикуется в режиме testing; проверка DNS выполняется по запросу, без
    фоновой задачи; ротация DKIM — ручная.
  • SRS для пересылок и предупреждения о приближении к квоте ящика не реализованы.
  • Веб-почта: по умолчанию один экземпляр сервиса; для нескольких реплик в Kubernetes нужна
    привязка сессии на Ingress (загружаемые вложения хранятся локально в реплике). Для писем
    больше MGATE_WEBMAIL_MAX_RENDER_BYTES показываются только заголовки, скачивание — 413.

Образы

Публичные, docker pull без авторизации, платформа linux/amd64.

Образ Digest
ghcr.io/mgate-server/mgate-agent:2026.10.1 sha256:208e44be092e1c7d7e843d158a8fcd178ac89903226eccb9d30692c1cdcaf3b3
ghcr.io/mgate-server/mgate:2026.10.1 sha256:906f45c9017dad67ffea1f86225a690d1f6bc50ce8e286bae86fe19a872fa7a0
ghcr.io/mgate-server/web:2026.10.1 sha256:1bfc053543874ac13146130bcd753d3b62ef4a8d25909aed0f209682e39c1d1a
ghcr.io/mgate-server/postfix:2026.10.1 sha256:30efc80beb0a7e0b527d8a6215439014081c7c09b2075aa0a3c6873459ae3f49
ghcr.io/mgate-server/dovecot:2026.10.1 sha256:60022eb8668d50e2eb93b5d08e339d813d77f65f686f346d74c6433ee3d7bcf4
ghcr.io/mgate-server/rspamd:2026.10.1 sha256:68cfdd6410a46858bf9f15f10446fb442d01573057e61e8c6c941016a05fd236
ghcr.io/mgate-server/unbound:2026.10.1 sha256:81881b32f90428490cd8aa2d0b093d4ad8e4f40f5f9065df8958dd0fda9fce07
ghcr.io/mgate-server/traefik:2026.10.1 sha256:cc7270ad272e944c11fcb15f6a8e95228e0a15c848b63ddccb24bd4afdb9dbbc
ghcr.io/mgate-server/backup:2026.10.1 sha256:2d5e9184faad3b112b68a28ef5484f0cde98aa412d5d39ed767c72fee6ea9057
ghcr.io/mgate-server/firewall:2026.10.1 sha256:5f038d5691728b43d4183be2e0c0e552b3ee03b3098c8a84b1f9c636c29a039b

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

git clone https://github.com/mgate-server/mgate.git && cd mgate && git checkout v2026.10.1
make init            # .env и секреты; при обновлении добавляет новые переменные
# в .env: MGATE_VERSION=2026.10.1
docker compose pull && docker compose up -d