Rename: - docker-mailserver: hostname mail → mx, OVERRIDE_HOSTNAME → mx.csrx.ru - Traefik route: webmail/domain_webmail → mail/domain_mail - domain_webmail removed, domain_mail + domain_mx added to main.yml - certbot cert: mail.csrx.ru → mx.csrx.ru Email reliability improvements: - certbot renewal cron (03:15 + 15:15 daily) - deploy-hook: auto-reload Postfix+Dovecot after cert renewal - POSTFIX_MESSAGE_SIZE_LIMIT=26214400 (25 MB) - SPF hardened: ~all → -all - DMARC hardened: p=none → p=quarantine, added ruf + fo=1 + adkim/aspf strict - autodiscover/autoconfig CNAME records for mail client setup - dns-zone.zone fully updated with architecture comments Docs: - STATUS.md: full mail architecture section, client settings, DNS table - BACKLOG.md: rDNS task + DNS migration steps - DECISIONS.md: mx/mail split rationale Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5.5 KiB
Бэклог задач
Задачи по приоритету. Обновляй этот файл при добавлении/завершении задач. Последнее обновление: 2026-03-22
🔴 Критично (сделать как можно скорее)
-
rDNS (PTR-запись) для 85.193.83.9 в панели Timeweb Установить:
85.193.83.9 → mx.csrx.ruБез PTR Gmail/Yandex будут отклонять или помечать наши письма как спам. Путь: Timeweb → Cloud VPS → tools-сервер → Сеть → Обратная DNS-запись -
Обновить DNS в Cloudflare после деплоя:
- Удалить старую A
mail→ 85.193.83.9 (DNS-only) - Добавить A
mx→ 85.193.83.9 (DNS-only, orange cloud OFF) - Изменить MX запись:
csrx.ru MX 10 mx.csrx.ru. - Обновить SPF:
v=spf1 mx -all - Обновить DMARC:
v=DMARC1; p=quarantine; rua=mailto:admin@csrx.ru; ... - Добавить CNAME
autoconfig→mx.csrx.ru - Добавить CNAME
autodiscover→mx.csrx.ru - A
mail→ 87.249.49.32 (proxied, уже есть — оставить) Adash→87.249.49.32(proxied). Grafana сейчас недоступна по домену.
- Удалить старую A
-
Бэкап tools-сервера Добавить в
roles/backup/или создать отдельный скрипт для tools-сервера:- outline-db (PostgreSQL dump)
- n8n_data (Docker volume)
- mailserver/config (DKIM ключи, аккаунты)
- snappymail/data
-
plane-minio не бэкапится Вложения и файлы из Plane не входят в текущий бэкап. Нужен dump MinIO bucket
uploads.
🟡 Высокий приоритет
-
Мониторинг tools-сервера Добавить node-exporter на tools-сервер и scrape-конфиг в Prometheus.
-
mem_limit для plane-worker и plane-beat Сейчас без ограничений памяти, риск OOM. Добавить
mem_limit: 256m. -
Проверить работу swap
roles/base/tasks/swap.ymlдолжен создавать 2GB swap. Проверить что он реально создан на сервере. -
Верификация бэкапов Добавить еженедельную проверку: скачать последний бэкап из S3, сделать test restore в Docker.
🟢 Обычный приоритет
-
Алерты на сбой бэкапа Если
backup-servicesзавершился с ошибкой — отправить алерт в Telegram. -
Алерты на истечение TLS-сертификатов Добавить Prometheus правило: предупреждение за 7 дней до истечения сертификата.
-
Prometheus → tools-сервер Настроить federated scraping или remote_write для получения метрик tools-сервера.
-
Бакет S3
visual-backupУбедиться что бакет создан в Timeweb как "холодное хранилище" (тип: COLD).
📋 Бэклог (без срока)
-
Обновление образов Регулярно проверять новые версии (образы запинены в
defaults/main.yml):- Forgejo (сейчас
:9) - Traefik (сейчас
v3.3) - Plane (сейчас
:stable) - Authelia (сейчас
4.38)
- Forgejo (сейчас
-
Автоматическое обновление Cloudflare IP-списков UFW разрешает только Cloudflare IPs. Список захардкожен — нужен cron для обновления.
-
Логи mail-сервера в Loki Добавить promtail pipeline для сбора логов mailserver с tools-сервера.
-
Двухфакторная аутентификация для n8n n8n сейчас доступен только с rate-limit middleware, без 2FA через Authelia.
✅ Сделано
- Traefik с wildcard TLS через Cloudflare DNS-01
- Vaultwarden (менеджер паролей)
- Forgejo + CI/CD через Forgejo Actions
- Plane (управление проектами)
- Outline wiki с email magic link авторизацией
- n8n автоматизация
- docker-mailserver (Postfix + Dovecot), аккаунты: noreply, admin, jack
- SnappyMail вебмейл, переименован на mail.csrx.ru (было webmail.csrx.ru)
- docker-mailserver переименован на mx.csrx.ru (было mail.csrx.ru)
- Certbot авторотация сертификата (cron 2x/день + deploy-hook для перезагрузки Postfix/Dovecot)
- DMARC ужесточён до p=quarantine (было p=none)
- SPF ужесточён до -all (было ~all)
- DKIM/SPF/DMARC DNS-записи для почты
- Мониторинг (Prometheus + Grafana + Loki + AlertManager)
- CrowdSec IDS + fail2ban
- Authelia 2FA SSO
- Uptime Kuma статус-страница
- Бэкап каждый час → S3 cold
data/, 7 дней хранения - Удаление Syncthing (домен, firewall правила, образ, переменные)
- cloudflare_zone_id перенесён из main.yml в vault