Sign inSign up

gromy/ms-frontend

By gromy

Updated about 15 hours ago

R7 - MailServer PRO by Maintainer

Image
0

941

gromy/ms-frontend repository overview

ms-frontend

Mail Admin Frontend — веб-панель администрирования Р7-Почтовый сервер.

Nginx отдаёт статику админ-панели и проксирует запросы к связанным службам (API, MCP, MailFilter, Processing, SpamProtect, SpamBackend). При старте рендерит vhost из Jinja2-шаблонов, настраивает TLS, генерирует конфиг подключения к PostgreSQL для Lua-эндпоинта /instances и ожидает доступности заданных бэкендов.

  • Базовый образ: Debian Bookworm
  • HTTP: порт 80
  • HTTPS: порт 443
  • Статика: /opt/r7-mailserver/adminpanel
  • Конфигурация nginx: /etc/nginx/conf.d/mailadmin.conf

Быстрый старт

docker run -d \
  --name ms-frontend \
  --hostname ms-frontend \
  -p 8080:80 \
  -p 8443:443 \
  -e MS_FRONTEND_HOSTNAME=mailadmin.example.com \
  -e MS_FRONTEND_DB_HOST=ms-psql \
  -e MS_FRONTEND_DB_PWD=secret \
  -e MS_API_HOST=ms-api \
  -e MS_MCP_HOST=ms-mcp \
  -v ms-frontend-ssl:/app/ssl \
  gromy/ms-frontend:latest

Минимально необходимо указать параметры подключения к PostgreSQL. Прокси-блоки nginx создаются только для служб, у которых заданы оба параметра *_HOST и *_PORT.

docker run --env-file .env --name ms-frontend \
  -p 8080:80 -p 8443:443 \
  -v ms-frontend-ssl:/app/ssl \
  gromy/ms-frontend:latest

Порты

ПортПротоколОписание
80TCPHTTP (редирект на HTTPS при MS_FRONTEND_SCHEME_REDIRECT=yes)
443TCPHTTPS, статика и reverse proxy

Тома

Путь в контейнереОписание
/app/sslTLS-сертификаты (MS_FRONTEND_CERT_PATH); при отсутствии файлов генерируется self-signed

Рекомендуется монтировать том для сохранения сертификатов между перезапусками.


Переменные окружения

Пути и хостнейм
ПеременнаяПо умолчаниюОписание
MS_FRONTEND_APP_PATH/appРабочий каталог контейнера
MS_FRONTEND_STORAGE/opt/r7-mailserver/adminpanelКорень статики админ-панели (root в nginx)
MS_FRONTEND_CERT_PATH/app/sslКаталог TLS-сертификатов
MS_FRONTEND_HOSTNAMEmailadmin.localhostFQDN панели; из него вычисляются MS_FRONTEND_PREFIX и MS_FRONTEND_DOMAIN (15-derive-hostname.sh)
MS_FRONTEND_PREFIX(пусто)Поддомен; заполняется автоматически из MS_FRONTEND_HOSTNAME
MS_FRONTEND_DOMAIN(пусто)Домен; заполняется автоматически из MS_FRONTEND_HOSTNAME
MS_FRONTEND_SCHEME_REDIRECTyesРедирект HTTP → HTTPS (yes / другое значение — без редиректа)
TLS
ПеременнаяПо умолчаниюОписание
MS_FRONTEND_SSL_CERT/app/ssl/temp-cert.pemПуть к сертификату; если файл отсутствует — генерируется self-signed (40-setup-ssl.sh)
MS_FRONTEND_SSL_KEY/app/ssl/temp-key.pemПуть к закрытому ключу
PostgreSQL
ПеременнаяПо умолчаниюОписание
MS_FRONTEND_DB_HOSTms-psqlХост PostgreSQL; допускается список через запятую
MS_FRONTEND_DB_PORT5432Порт PostgreSQL
MS_FRONTEND_DB_NAMEr7mailserverИмя базы данных
MS_FRONTEND_DB_USERr7mailuserПользователь БД
MS_FRONTEND_DB_PWDsaSA123$Пароль пользователя БД

Используются для генерации backend/config (эндпоинт /instances, 50-generate-instances-config.sh).

Прокси к ms-api
ПеременнаяПо умолчаниюОписание
MS_API_HOST(пусто)Хост ms-api; если пуст — location /mailapi, /api, /websocket, /swagger не создаются
MS_API_PORT48033Порт ms-api
Прокси к ms-mcp
ПеременнаяПо умолчаниюОписание
MS_MCP_HOST(пусто)Хост ms-mcp; если пуст — location /mcp не создаётся
MS_MCP_PORT5110Порт ms-mcp
Прокси к ms-mailfilter
ПеременнаяПо умолчаниюОписание
MS_MF_HOST(пусто)Хост ms-mailfilter; если пуст — filter-маршруты не создаются
MS_MF_PORT5000Порт ms-mailfilter
Прокси к ms-processing
ПеременнаяПо умолчаниюОписание
MS_PROCESSING_HOST(пусто)Хост ms-processing; если пуст — processing-маршруты не создаются
MS_PROCESSING_PORT5002Порт ms-processing
Прокси к ms-spamprotect
ПеременнаяПо умолчаниюОписание
MS_SP_HOST(пусто)Хост ms-spamprotect; если пуст — spamprotect-маршруты не создаются
MS_SP_PORT5100Порт ms-spamprotect
Прокси к ms-spambackend
ПеременнаяПо умолчаниюОписание
MS_SB_HOST(пусто)Хост ms-spambackend; если пуст — spambackend-маршруты не создаются
MS_SB_PORT5200Порт ms-spambackend

Примечание: для каждой службы прокси включается только при непустых *_HOST и *_PORT. При старте контейнер ожидает TCP-доступности настроенных бэкендов (30-wait-services.sh).


Пример Docker Compose

services:
  ms-frontend:
    image: gromy/ms-frontend:latest
    hostname: ms-frontend
    env_file: .env
    environment:
      MS_FRONTEND_HOSTNAME: mailadmin.example.com
      MS_API_HOST: ms-api
      MS_MCP_HOST: ms-mcp
      MS_MF_HOST: ms-mailfilter
      MS_PROCESSING_HOST: ms-processing
      MS_SP_HOST: ms-spamprotect
      MS_SB_HOST: ms-spambackend
    ports:
      - "8080:80"
      - "8443:443"
    volumes:
      - frontend-ssl:/app/ssl
    depends_on:
      ms-psql:
        condition: service_healthy
      ms-api:
        condition: service_started

volumes:
  frontend-ssl:

Связанные образы

ОбразНазначение
ms-psqlPostgreSQL + схема БД
ms-apiREST API админ-панели
ms-mcpMCP-сервер
ms-mailfilterФильтрация почты
ms-processingОбработка вложений
ms-spamprotectАнтиспам (milter)
ms-spambackendSpam-бэкенд

Ссылки

  • GitLab — ms-frontend
  • Документация переменных окружения: README.md в репозитории

Tag summary

Content type

Image

Digest

sha256:4948a9850

Size

104.1 MB

Last updated

about 15 hours ago

docker pull gromy/ms-frontend