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>
125 lines
5.9 KiB
Markdown
125 lines
5.9 KiB
Markdown
# Статус инфраструктуры
|
||
|
||
> Обновляй этот файл при каждом значимом изменении.
|
||
> Последнее обновление: 2026-03-22
|
||
|
||
---
|
||
|
||
## Серверы
|
||
|
||
| Сервер | 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 | ✅ | Дашборды мониторинга (нет DNS-записи — нужно добавить A→87.249.49.32) |
|
||
| Prometheus | — | ✅ | Сбор метрик, 30 дней хранения |
|
||
| Loki + Promtail | — | ✅ | Сбор логов |
|
||
| AlertManager | — | ✅ | Алерты в Telegram |
|
||
| CrowdSec | — | ✅ | IDS, банит злоумышленников |
|
||
| Authelia | auth.csrx.ru | ✅ | 2FA SSO, защищает traefik dashboard и plane/god-mode |
|
||
| Uptime Kuma | status.csrx.ru | ✅ | Публичная страница статуса |
|
||
| Бэкап | — | ✅ | Каждый час → S3 cold `visual-backup/data/` |
|
||
|
||
### Tools-сервер (tools, 85.193.83.9)
|
||
|
||
| Сервис | Домен | Статус | Заметки |
|
||
|--------|-------|--------|---------|
|
||
| Outline | wiki.csrx.ru | ✅ | Wiki, аутентификация через email magic link |
|
||
| n8n | n8n.csrx.ru | ✅ | Автоматизация workflow |
|
||
| docker-mailserver | mail.csrx.ru | ✅ | Postfix + Dovecot, порты 25/465/587/993 |
|
||
| SnappyMail | mail.csrx.ru | ✅ | Веб-клиент почты (ранее webmail.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, никаких ручных правок на сервере
|
||
|
||
---
|
||
|
||
## Известные проблемы
|
||
|
||
| Проблема | Статус |
|
||
|----------|--------|
|
||
| Нет DNS-записи для `dash.csrx.ru` | ⚠️ Нужно добавить в Cloudflare вручную: A `dash` → 87.249.49.32 |
|
||
| Tools-сервер не бэкапится | ⚠️ outline-db и n8n не входят в скрипт бэкапа |
|
||
| Tools-сервер вне мониторинга | ⚠️ Prometheus не скрейпит tools-сервер |
|
||
|
||
---
|
||
|
||
## Сети 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 изоляция
|