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>
4.6 KiB
4.6 KiB
Статус инфраструктуры
Обновляй этот файл при каждом значимом изменении. Последнее обновление: 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 ↔ PostgreSQLforgejo-ssh— публичная, для SSH-клиентовplane-internal— internal, все компоненты Planerunner-jobs— публичная, для job-контейнеров CI/CDmonitoring— internal, стек мониторингаauthelia-internal— internal, Authelia ↔ Redis
Tools-сервер
front— публичная, для port binding хостаoutline-internal— internal, Outline ↔ DB ↔ Redisn8n-internal— internal, n8n изоляцияmail-internal— internal, Outline → mailserver (SMTP без auth)webmail-internal— internal, SnappyMail изоляция