infra/docs/BACKLOG.md
jack 207e1dcff0
All checks were successful
CI/CD / syntax-check (push) Successful in 1m29s
CI/CD / deploy (push) Successful in 16m39s
chore: project cleanup and docs update
- Remove Syncthing mention from authelia comment in docker-compose
- Fix backup.sh.j2 comment: hourly → every 6 hours
- Update CLAUDE.md: add docs update rule, fix backup schedule note
- Update STATUS.md: dash.csrx.ru fixed, PTR pending, backup schedule, mail hostnames
- Update BACKLOG.md: mark DNS/PTR/backup-schedule done, add SnappyMail domain task
- Update DECISIONS.md: fix backup section (no --storage-class COLD, correct schedule)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 17:00:35 +07:00

4.6 KiB
Raw Blame History

Бэклог задач

Задачи по приоритету. Обновляй этот файл при добавлении/завершении задач. Последнее обновление: 2026-03-23


🔴 Критично (сделать как можно скорее)

  • Настроить домен csrx.ru в SnappyMail (admin панель → Domains) IMAP: mailserver, порт 993, SSL SMTP: mailserver, порт 587, STARTTLS, с авторизацией Без этого вход в mail.csrx.ru невозможен.

  • Бэкап tools-сервера Добавить скрипт для tools-сервера (роль backup не подключена к tools.yml):

    • 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.


Сделано

  • PTR-запись 85.193.83.9 → mx.csrx.ru (настроена в Timeweb, ожидает propagation 3-24ч)
  • DNS Cloudflare: MX→mx, SPF -all, DMARC p=quarantine, DKIM, autoconfig/autodiscover, A dash/mail/mx
  • Бэкап изменён с hourly на каждые 6 часов (00:00, 06:00, 12:00, 18:00)
  • 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
  • docker-mailserver на mx.csrx.ru (было mail.csrx.ru)
  • Certbot авторотация сертификата (cron 2x/день + deploy-hook)
  • DMARC p=quarantine, SPF -all, DKIM
  • Мониторинг (Prometheus + Grafana + Loki + AlertManager)
  • CrowdSec IDS + fail2ban
  • Authelia 2FA SSO
  • Uptime Kuma статус-страница
  • Удаление Syncthing
  • cloudflare_zone_id перенесён в vault