openspec: change deploy-gotosocial — развертывание GoToSocial (compose+config+backup+docs)

This commit is contained in:
2026-09-06 19:09:50 +00:00
commit d385d8b42e
19 changed files with 1888 additions and 0 deletions
@@ -0,0 +1,31 @@
# Deploy GoToSocial на social.dedinit.ru
## Why
Нужна собственная федиверсная нода ActivityPub (GoToSocial) на личном домене dedinit.ru — «нода для обычных людей». Хостинг: сервис на bigbox в Docker, реверс-прокси — Caddy на vps02 (social.dedinit.ru → 87.242.100.206). Split-domain: аккаунты `@user@dedinit.ru`, сервер на social.dedinit.ru. Медиа — локально, бэкапы — SQLite consistent + медиа на Яндекс.Диск.
## What Changes
- Развернуть GoToSocial (последний стабильный релиз, фиксированный тег) в Docker на bigbox в `/opt/gotosocial`
- База: **SQLite** (файл `data/sqlite.db`), медиа: локальная папка `data/storage`, монтируется в контейнер
- **Split-domain**: `host: social.dedinit.ru`, `account-domain: dedinit.ru` (юзеры `@user@dedinit.ru`)
- На apex dedinit.ru (Jino, статический хостинг) добавить .well-known/webfinger, nodeinfo, host-meta редиректы на `https://social.dedinit.ru/...`
- Конфиг GtS: `config.yaml` (в git), секреты: `.env` (в git исключён)
- SMTP: `smtp.jino.ru:587` STARTTLS, логин `social@dedinit.ru` (для писем GtS)
- Caddy на vps02: блок `social.dedinit.ru { reverse_proxy 10.8.0.2:<port> }`
- Бэкап: скрипт `backup.sh` — SQLite consistent (`VACUUM INTO`) + медиа, локально 7 дней + Яндекс.Диск 30 дней (ротация)
- Метрики: `metrics-enabled: true` + OTEL prometheus экспортёр; логи: `log-format: json` → promtail → Loki
- Git: источник истины gitverse.ru (kpa39l/gotosocial), gitea.nixg.ru — pull-mirror
- Мониторинг бэкапов и дашборд Grafana — **post-MVP** (после запуска и настройки импорта из Telegram)
- **BREAKING**: нет (новый сервис, ничего не заменяет)
## Capabilities
- **New**: `gotosocial-deploy` — работоспособный инстанс GtS (compose, config, split-domain, SMTP, бэкап, метрики)
- **New**: `gotosocial-backup` — consistent бэкап SQLite + медиа, локально + Яндекс.Диск, ротация
## Out of Scope (отложено на post-MVP)
- Дашборд Grafana для GtS и бэкапов
- Мониторинг бэкапов (интеграция с Prometheus/node_exporter)
- Импорт из Telegram