infra/docs/BACKLOG.md
jack 1e638055c8
Some checks failed
CI/CD / syntax-check (push) Successful in 1m23s
CI/CD / deploy (push) Has been cancelled
feat(mail): rename mail→mx, webmail→mail.csrx.ru + reliability
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>
2026-03-22 20:07:59 +07:00

5.5 KiB
Raw Blame History

Бэклог задач

Задачи по приоритету. Обновляй этот файл при добавлении/завершении задач. Последнее обновление: 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 autoconfigmx.csrx.ru
    • Добавить CNAME autodiscovermx.csrx.ru
    • A mail → 87.249.49.32 (proxied, уже есть — оставить) A dash87.249.49.32 (proxied). Grafana сейчас недоступна по домену.
  • Бэкап 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)
  • Автоматическое обновление 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