infra/docs/STATUS.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

5.9 KiB
Raw Blame History

Статус инфраструктуры

Обновляй этот файл при каждом значимом изменении. Последнее обновление: 2026-03-23


Серверы

Сервер IP Роль Состояние
main 87.249.49.32 Основные сервисы + мониторинг Работает
tools 85.193.83.9 Wiki + автоматизация + почта Работает

Сервисы

Основной сервер (main, 87.249.49.32)

Сервис Домен Статус Заметки
Traefik Реверс-прокси, TLS wildcard *.csrx.ru через Cloudflare DNS-01
Vaultwarden vault.csrx.ru Менеджер паролей
Forgejo git.csrx.ru Git-сервер, SSH на порту 2222
Forgejo Actions CI/CD runner, деплой через push в master
Plane plane.csrx.ru Управление проектами
Grafana dash.csrx.ru Дашборды мониторинга
Prometheus Сбор метрик, 30 дней хранения
Loki + Promtail Сбор логов
AlertManager Алерты в Telegram
CrowdSec IDS, банит злоумышленников
Authelia auth.csrx.ru 2FA SSO, защищает traefik dashboard и plane/god-mode
Uptime Kuma status.csrx.ru Публичная страница статуса
Бэкап Каждые 6 часов (00/06/12/18) → S3 visual-backup/data/, 7 дней

Tools-сервер (tools, 85.193.83.9)

Сервис Домен Статус Заметки
Outline wiki.csrx.ru Wiki, аутентификация через email magic link
n8n n8n.csrx.ru Автоматизация workflow
docker-mailserver mx.csrx.ru Postfix + Dovecot, порты 25/465/587/993, DKIM+SPF+DMARC
SnappyMail mail.csrx.ru Веб-клиент почты

Почта (@csrx.ru)

Аккаунты:

Аккаунт Назначение
noreply@csrx.ru Системные письма (Outline magic link)
admin@csrx.ru Администратор
jack@csrx.ru Личный

Архитектура почты:

Входящая:  internet → port 25 → mx.csrx.ru (85.193.83.9) → Postfix → Dovecot → IMAP
Исходящая: Outlook/SnappyMail → port 587 (STARTTLS) → mx.csrx.ru → Postfix → internet
Outline:   outline контейнер → mailserver:587 (Docker mail-internal сеть) → noreply@

Настройки почтового клиента:

  • IMAP: mx.csrx.ru порт 993 (SSL/TLS)
  • SMTP: mx.csrx.ru порт 587 (STARTTLS) или 465 (SSL/TLS)
  • Веб-клиент: https://mail.csrx.ru (SnappyMail)

DNS-записи для почты (все должны быть в Cloudflare):

A     mx             → 85.193.83.9           DNS-only (НЕ proxied!)
A     mail           → 87.249.49.32          Proxied (webmail через Traefik)
MX    @          10  → mx.csrx.ru.
TXT   @              → "v=spf1 mx -all"
TXT   _dmarc         → "v=DMARC1; p=quarantine; rua=mailto:admin@csrx.ru; ..."
TXT   mail._domainkey → "v=DKIM1; k=rsa; p=<KEY>"  (генерируется при деплое)
CNAME autoconfig     → mx.csrx.ru.           для Thunderbird autodiscover
CNAME autodiscover   → mx.csrx.ru.           для Outlook autodiscover

rDNS (PTR-запись) — настроить в панели Timeweb: 85.193.83.9 → mx.csrx.ru (критично для доставки в Gmail/Yandex!)

Автообновление TLS-сертификата:

  • certbot renew cron: каждый день в 03:15 и 15:15
  • deploy-hook: после обновления автоматически перезагружает Postfix+Dovecot

CI/CD

  • Репозиторий: git.csrx.ru/jack/infra
  • Триггер: push в master запускает ansible-playbook playbooks/deploy.yml + playbooks/tools.yml
  • Runner: act_runner на основном сервере
  • Правило: все изменения только через git, никаких ручных правок на сервере

Известные проблемы

Проблема Статус
PTR-запись 85.193.83.9 → mx.csrx.ru Настроена в Timeweb, обновляется 324 ч
Tools-сервер не бэкапится ⚠️ outline-db, n8n, mailserver/config не входят в бэкап
Tools-сервер вне мониторинга ⚠️ Prometheus не скрейпит tools-сервер
SnappyMail домен csrx.ru не настроен ⚠️ Нужно в админке: IMAP mailserver:993, SMTP mailserver:587

Сети Docker

Основной сервер

  • proxy — публичная, только для Traefik (нужна для ACME)
  • backend — internal, Traefik ↔ сервисы
  • forgejo-db — internal, Forgejo ↔ PostgreSQL
  • forgejo-ssh — публичная, для SSH-клиентов
  • plane-internal — internal, все компоненты Plane
  • runner-jobs — публичная, для job-контейнеров CI/CD
  • monitoring — internal, стек мониторинга
  • authelia-internal — internal, Authelia ↔ Redis

Tools-сервер

  • front — публичная, для port binding хоста
  • outline-internal — internal, Outline ↔ DB ↔ Redis
  • n8n-internal — internal, n8n изоляция
  • mail-internal — internal, Outline → mailserver (SMTP без auth)
  • webmail-internal — internal, SnappyMail изоляция