Все проекты
Свои проекты В разработке

mailnest — свой почтовый сервер

Почта на своих доменах без готовых сборок: Postfix, Dovecot, Rspamd и Roundcube на своих Dockerfile, управление на Django

Моя роль
Автор
Период
2026 — н.в.

Почтовый сервер mail.mailnest.uz для моих доменов и проектов семьи. Готовые сборки вроде Mailcow или docker-mailserver я не беру: каждый компонент собирается из своего Dockerfile на Debian 13, чтобы понимать и контролировать всю цепочку — от приёма письма до IMAP.

Домены, ящики и псевдонимы хранит Django, а Postfix и Dovecot читают их из PostgreSQL через отдельную роль, которой видны только представления. Схема с самого начала рассчитана на будущий сервис mailnest.uz, где клиенты сами подключают домены и создают ящики. Сейчас готовы спецификация, документация по всем компонентам, DNS и PTR-запись; дальше сервер собирается по этапам, с проверкой после каждого.

Что сделано

  • Свои Dockerfile для Postfix, Dovecot 2.4, Rspamd и Roundcube; из официальных образов — только PostgreSQL, Redis и nginx
  • Django владеет схемой почты: таблицы — модели, представления и триггеры — миграции; Postfix и Dovecot видят только представления
  • Лимиты отправки через policy-сервис Postfix: правила в базе, счётчики в Redis
  • DKIM-ключи генерирует Django при добавлении домена, в Rspamd они попадают через Redis
  • Исходящий 25-й порт открыт только контейнеру Postfix, чтобы соседние проекты на сервере не могли рассылать спам
  • SPF -all, DMARC p=reject и PTR с первого дня
  • Документация: путь письма, DNS и каждый компонент, с маршрутом изучения под этапы работ

Стек

  • Python
  • Django
  • Celery
  • PostgreSQL
  • Redis
  • Docker
  • Nginx
  • Postfix / Dovecot / Rspamd
  • GitHub Actions

Ещё в этой категории