MailFilter — служба фильтрации почты для Р7-Почтовый сервер.
Предоставляет HTTP API api-filter/v1/* и TCP Policy Service для Postfix (check_policy_service). При старте генерирует конфигурацию из переменных окружения (Jinja2), регистрирует экземпляр в кластере и подключается к PostgreSQL.
/swagger-filter/opt/r7-mailserver/mailfilter/appsettings.jsondocker run -d \
--name ms-mailfilter \
--hostname ms-mailfilter \
-p 5000:5000 \
-p 2525:2525 \
-e MS_MF_DB_HOST=ms-psql \
-e MS_MF_DB_PWD=secret \
-v ms-mailfilter-logs:/var/log/r7-office/MailFilter.Service \
gromy/ms-mailfilter:latest
Минимально необходимо указать параметры подключения к PostgreSQL.
docker run --env-file .env --name ms-mailfilter \
-p 5000:5000 \
-p 2525:2525 \
-v ms-mailfilter-logs:/var/log/r7-office/MailFilter.Service \
gromy/ms-mailfilter:latest
| Порт | Протокол | Описание |
|---|---|---|
5000 | TCP | HTTP API |
2525 | TCP | TCP Policy Service (Postfix → MailFilter) |
Порты задаются переменными MS_MF_HTTP_PORT и MS_MF_TCP_PORT.
| Путь в контейнере | Описание |
|---|---|
/var/log/r7-office/MailFilter.Service | Файлы логов NLog (MS_MF_LOG_STORAGE) |
| Переменная | По умолчанию | Описание |
|---|---|---|
MS_MF_DB_HOST | ms-psql | Хост PostgreSQL |
MS_MF_DB_PORT | 5432 | Порт PostgreSQL |
MS_MF_DB_NAME | r7mailserver | Имя базы данных |
MS_MF_DB_USER | r7mailuser | Пользователь БД |
MS_MF_DB_PWD | saSA123$ | Пароль пользователя БД |
| Переменная | По умолчанию | Описание |
|---|---|---|
MS_MF_INSTANCE_GUID | (авто) | GUID экземпляра; если пусто — генерируется при старте |
MS_MF_INSTANCE_NAME | mail-filter | Имя экземпляра в кластере |
MS_MF_INSTANCE_ROLE | MailFilter | Роль экземпляра |
| Переменная | По умолчанию | Описание |
|---|---|---|
MS_MF_HTTP_LISTEN | 0.0.0.0 | IP-адрес прослушивания HTTP API |
MS_MF_HTTP_PORT | 5000 | TCP-порт HTTP API |
MS_MF_HTTP_ALLOWHOSTS | * | Разрешённые значения заголовка Host |
| Переменная | По умолчанию | Описание |
|---|---|---|
MS_MF_CACHE_REFRESH_MINUTES | 5 | Интервал обновления кэша правил (минуты) |
MS_MF_ENABLE_DETAILED_LOGGING | true | Подробное логирование фильтрации |
MS_MF_ENABLE_SQL_QUERY_CACHE | true | Кэширование SQL-запросов |
MS_MF_SQL_QUERY_CACHE_TTL_SECONDS | 30 | TTL кэша SQL-запросов (сек) |
MS_MF_SQL_QUERY_CACHE_SIZE_LIMIT | 10000 | Лимит размера кэша SQL-запросов |
| Переменная | По умолчанию | Описание |
|---|---|---|
MS_MF_GEOIP_PROVIDER | Json | Провайдер GeoIP (Json, Mmdb, GovApi) |
MS_MF_GEOIP_DATASET_PATH | (пусто) | Путь к JSON-дataset GeoIP |
MS_MF_GEOIP_MMDB_PATH | ./GeoLite2-Country.mmdb | Путь к MMDB-файлу |
MS_MF_GEOIP_GOV_API_URL | https://geoip.noc.gov.ru/api/geoip | URL Gov API |
MS_MF_GEOIP_GOV_API_TIMEOUT_SECONDS | 5 | Таймаут Gov API (сек) |
| Переменная | По умолчанию | Описание |
|---|---|---|
MS_MF_TCP_ENABLE | true | Включить TCP Policy Service |
MS_MF_TCP_LISTEN | 0.0.0.0 | IP-адрес прослушивания TCP |
MS_MF_TCP_PORT | 2525 | TCP-порт Policy Service |
MS_MF_TCP_RECEIVE_TIMEOUT_SECONDS | 5 | Таймаут чтения TCP (сек) |
MS_MF_TCP_SEND_TIMEOUT_SECONDS | 5 | Таймаут записи TCP (сек) |
| Переменная | По умолчанию | Описание |
|---|---|---|
MS_MF_LOG_STORAGE | /var/log/r7-office/MailFilter.Service | Каталог файлов логов |
MS_MF_LOG_FILE | mailfilter-${shortdate}.log | Шаблон имени файла (NLog) |
MS_MF_LOG_FORMAT | (см. Dockerfile) | Формат строки лога |
MS_MF_LOG_LEVEL | Info | Уровень логирования |
MS_MF_LOG_MAXFILES | 30 | Число архивных файлов |
MS_MF_LOG_FILESIZE | 10485760 | Порог ротации, байт |
MS_MF_LOG_MAXDAYS | 14 | Срок хранения архивов, дней |
services:
ms-mailfilter:
image: gromy/ms-mailfilter:latest
hostname: ms-mailfilter
env_file: .env
ports:
- "5000:5000"
- "2525:2525"
volumes:
- mailfilter-logs:/var/log/r7-office/MailFilter.Service
depends_on:
ms-psql:
condition: service_healthy
volumes:
mailfilter-logs:
| Образ | Назначение |
|---|---|
ms-psql | PostgreSQL + схема БД |
ms-mta | Postfix MTA (клиент TCP Policy на порту 2525) |
ms-frontend | Веб-панель (прокси /api-filter) |
README.md в репозиторииContent type
Image
Digest
sha256:a2e5c7899…
Size
229.6 MB
Last updated
15 days ago
docker pull gromy/ms-mailfilter