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

100 lines
4.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Бэклог задач
> Задачи по приоритету. Обновляй этот файл при добавлении/завершении задач.
> Последнее обновление: 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.
---
## ✅ Сделано
- [x] PTR-запись 85.193.83.9 → mx.csrx.ru (настроена в Timeweb, ожидает propagation 3-24ч)
- [x] DNS Cloudflare: MX→mx, SPF `-all`, DMARC `p=quarantine`, DKIM, autoconfig/autodiscover, A dash/mail/mx
- [x] Бэкап изменён с hourly на каждые 6 часов (00:00, 06:00, 12:00, 18:00)
- [x] Traefik с wildcard TLS через Cloudflare DNS-01
- [x] Vaultwarden (менеджер паролей)
- [x] Forgejo + CI/CD через Forgejo Actions
- [x] Plane (управление проектами)
- [x] Outline wiki с email magic link авторизацией
- [x] n8n автоматизация
- [x] docker-mailserver (Postfix + Dovecot), аккаунты: noreply, admin, jack
- [x] SnappyMail вебмейл на mail.csrx.ru
- [x] docker-mailserver на mx.csrx.ru (было mail.csrx.ru)
- [x] Certbot авторотация сертификата (cron 2x/день + deploy-hook)
- [x] DMARC p=quarantine, SPF -all, DKIM
- [x] Мониторинг (Prometheus + Grafana + Loki + AlertManager)
- [x] CrowdSec IDS + fail2ban
- [x] Authelia 2FA SSO
- [x] Uptime Kuma статус-страница
- [x] Удаление Syncthing
- [x] cloudflare_zone_id перенесён в vault