Files
gotosocial/PRD.md
T

2.8 KiB

GoToSocial — PRD

Цель

Развернуть собственную федиверсную ноду ActivityPub (GoToSocial) на личном домене dedinit.ru — «нода для обычных людей». Аккаунты @user@dedinit.ru, сервер на https://social.dedinit.ru.

Пользователи

  • Владелец (admin): estorozhenko (@estorozhenko@dedinit.ru)
  • Приглашённые пользователи («обычные люди»)

Функциональные требования

  • Инстанс GoToSocial работает в Docker на bigbox (контейнер из /opt/gotosocial)
  • Split-domain: host=social.dedinit.ru, account-domain=dedinit.ru (аккаунты @user@dedinit.ru)
  • База данных: SQLite (файл в volume ./data)
  • Медиа: локальное хранилище (./data/storage), монтируется в контейнер
  • Реверс-прокси: Caddy на vps02 (social.dedinit.ru → 10.8.0.2:8080 через WireGuard)
  • TLS: Let's Encrypt автоматически (Caddy)
  • SMTP: отправка писем через smtp.jino.ru:587 (STARTTLS), ящик social@dedinit.ru
  • Метрики: Prometheus (OTEL экспортёр, /metrics)
  • Логи: JSON → Promtail → Loki
  • Бэкап: consistent SQLite (VACUUM INTO) + медиа; локально 7 дней, Яндекс.Диск 30 дней

Нефункциональные требования

  • Версия GoToSocial фиксируется тегом релиза (v0.22.1), обновление вручную
  • Секреты (.env) не попадают в git (в .gitignore)
  • host/account-domain НЕ меняются после первого запуска (необратимо)
  • Рестарт контейнера: unless-stopped
  • Бэкап при недоступном Яндекс.Диске — ошибка (exit != 0), не тихий fail

Границы (что НЕ делаем сейчас)

  • Мониторинг бэкапов + дашборд Grafana — post-MVP
  • Импорт из Telegram — post-MVP
  • Postgres вместо SQLite — нет (выбор пользователя, обратимо только до старта)
  • Remote-медиа не бэкапится (пере-фетчится)

Критерии готовности (MVP)

  • docker compose up -d на bigbox — контейнер Up, :8080 отвечает 200
  • Caddy на vps02: https://social.dedinit.ru отвечает 200, сертификат LE
  • Split-domain: мылтиаккаунт резолвится acct:estorozhenko@dedinit.ru (webfinger на apex)
  • SMTP-письмо уходит (подтверждение email)
  • backup.sh запускается, архив на ЯД
  • Админ-аккаунт estorozhenko создан и промоутнут