118 lines
5 KiB
Markdown
118 lines
5 KiB
Markdown
# Статус инфраструктуры
|
||
|
||
> Обновляй этот файл при каждом значимом изменении.
|
||
> Последнее обновление: 2026-03-27
|
||
|
||
---
|
||
|
||
## Серверы
|
||
|
||
| Сервер | IP | Роль | Состояние |
|
||
|--------|----|------|-----------|
|
||
| **main** | 87.249.49.32 | Все продуктовые сервисы + мониторинг | ✅ Работает |
|
||
| **tools** | 85.193.83.9 | Вспомогательные сервисы (пусто, ожидает мониторинг) | ✅ Работает |
|
||
|
||
> mon (188.225.79.34) — планируется к отключению.
|
||
|
||
---
|
||
|
||
## Сервисы
|
||
|
||
### Основной сервер (main, 87.249.49.32)
|
||
|
||
| Сервис | Домен | Статус | Заметки |
|
||
|--------|-------|--------|---------|
|
||
| Traefik | — | ✅ | Реверс-прокси, TLS wildcard `*.walava.io` через Cloudflare DNS-01 |
|
||
| Vaultwarden | vault.walava.io | ✅ | Менеджер паролей |
|
||
| Forgejo | git.walava.io | ✅ | Git-сервер, SSH на порту 2222 |
|
||
| Forgejo Actions | — | ✅ | CI/CD runner, деплой через push в master |
|
||
| Plane | plane.walava.io | ✅ | Управление проектами |
|
||
| Outline Wiki | wiki.walava.io | 🔄 Переезд (CI в процессе) | SMTP: Resend через walava.io |
|
||
| n8n | auto.walava.io | 🔄 Переезд (CI в процессе) | Workflow автоматизация |
|
||
| outline-mcp | — | 🔄 Переезд | MCP сервер для Claude |
|
||
| discord-bot | — | ✅ | Деплой-нотификации в Discord |
|
||
| walava-web | walava.io | ✅ | Лендинг (заглушка) |
|
||
| Grafana | dash.walava.io | ✅ | Дашборды мониторинга |
|
||
| Prometheus | — | ✅ | Сбор метрик, 30 дней хранения |
|
||
| Loki + Promtail | — | ✅ | Сбор логов |
|
||
| AlertManager | — | ✅ | Алерты в Telegram |
|
||
| CrowdSec | — | ✅ | IDS, банит злоумышленников |
|
||
| Uptime Kuma | status.walava.io | ✅ | Публичная страница статуса |
|
||
| Бэкап | — | ✅ | Каждые 6 часов → S3 `walava-backup/data/`, 7 дней |
|
||
|
||
### Tools-сервер (tools, 85.193.83.9)
|
||
|
||
Outline и n8n **переехали на main**. Сервер ожидает переноса мониторинга.
|
||
|
||
---
|
||
|
||
## Почта
|
||
|
||
Используется **Resend** (resend.com) для исходящей почты.
|
||
- Домен `walava.io` верифицирован в Resend
|
||
- Отправитель: `noreply@walava.io`
|
||
- Outline шлёт magic link напрямую через `smtp.resend.com:587`
|
||
- API ключ: в vault как `vault_resend_api_key`
|
||
|
||
**Входящая почта не настроена** (нет MX, не нужна).
|
||
|
||
---
|
||
|
||
## S3 (Timeweb Object Storage)
|
||
|
||
| Bucket | Назначение |
|
||
|--------|-----------|
|
||
| `walava-backup` | Бэкапы (каждые 6 часов, 7 дней хранения) |
|
||
| `walava-outline` | Файлы Outline (вложения, изображения) |
|
||
|
||
---
|
||
|
||
## CI/CD
|
||
|
||
- Репозиторий: `git.walava.io/jack/infra`
|
||
- Триггер: push в `master` запускает `ansible-playbook playbooks/deploy.yml` + `playbooks/tools.yml`
|
||
- Runner: `act_runner` на main-сервере
|
||
- **Правило**: все изменения только через git, никаких ручных правок на сервере
|
||
|
||
---
|
||
|
||
## Бэкап (что входит)
|
||
|
||
| Данные | Метод |
|
||
|--------|-------|
|
||
| Forgejo DB | pg_dump → gzip |
|
||
| Forgejo data | tar volume |
|
||
| Plane DB | pg_dump → gzip |
|
||
| Plane MinIO | tar volume |
|
||
| Outline DB | pg_dump → gzip |
|
||
| n8n workflows | tar volume |
|
||
| Vaultwarden | tar volume |
|
||
| Uptime Kuma | tar volume |
|
||
| Traefik acme.json | в составе volumes |
|
||
|
||
Расписание: 00:00, 06:00, 12:00, 18:00 UTC. Хранение: 7 дней.
|
||
|
||
---
|
||
|
||
## Известные проблемы / TODO
|
||
|
||
| Проблема | Статус |
|
||
|----------|--------|
|
||
| Outline + n8n переезд на main | 🔄 CI задеплоен, ожидаем старт контейнеров |
|
||
| Authelia всё ещё запущена | ⚠️ Нужно удалить после деплоя (remove_orphans уберёт) |
|
||
| Мониторинг переезд на tools | ⏳ Следующий шаг |
|
||
| Отключить mon-сервер | ⏳ После переноса мониторинга |
|
||
|
||
---
|
||
|
||
## Сети Docker (main)
|
||
|
||
- `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, стек мониторинга
|
||
- `outline-internal` — internal, Outline ↔ DB ↔ Redis
|
||
- `n8n-internal` — internal, n8n изоляция
|