Syncthing removal (was already decided, now fully removed): - roles/base/tasks/firewall.yml: remove 3 UFW rules (ports 22000/21027) - inventory/group_vars/all/main.yml: remove domain_sync, domain_mon, syncthing_basic_auth_htpasswd - roles/services/templates/env.j2: remove DOMAIN_SYNC - roles/services/templates/authelia/configuration.yml.j2: remove Syncthing 2FA rule - roles/services/tasks/directories.yml: remove syncthing/config and syncthing/data dirs - roles/services/defaults/main.yml: remove syncthing_image - roles/services/tasks/main.yml: remove syncthing image pull Security hardening: - inventory/group_vars/all/main.yml: move cloudflare_zone_id to vault - inventory/group_vars/all/vault.yml: add vault_cloudflare_zone_id .gitignore improvements: - add *.env, acme.json, *.log, editor dirs, venv, temp files Documentation (new): - docs/STATUS.md: all services, servers, known issues - docs/BACKLOG.md: prioritized task list, done/todo - docs/DECISIONS.md: architecture decisions and rationale - CLAUDE.md: rewritten with read-first docs, rules, full arch reference Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
99 lines
4.6 KiB
Markdown
99 lines
4.6 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 | webmail.csrx.ru | ✅ | Веб-клиент почты |
|
||
|
||
### Почта (@csrx.ru)
|
||
|
||
| Аккаунт | Назначение |
|
||
|---------|-----------|
|
||
| noreply@csrx.ru | Системные письма (Outline magic link) |
|
||
| admin@csrx.ru | Администратор |
|
||
| jack@csrx.ru | Личный |
|
||
|
||
**DNS-записи для почты:**
|
||
- A `mail.csrx.ru` → 85.193.83.9
|
||
- MX `csrx.ru` → `mail.csrx.ru` (priority 10)
|
||
- TXT `csrx.ru` → `v=spf1 mx ~all`
|
||
- TXT `_dmarc.csrx.ru` → `v=DMARC1; p=quarantine; rua=mailto:admin@csrx.ru`
|
||
- TXT `mail._domainkey.csrx.ru` → DKIM-ключ (генерируется автоматически при первом деплое)
|
||
|
||
---
|
||
|
||
## 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 изоляция
|