Files
gotosocial/openspec/changes/fix-apex-webfinger-and-registration/design.md
T
estorozhenko cd7e279bb6 feat(registration): open signups, 10/day limit; openspec: fix-apex-webfinger-and-registration
- docker-compose.yml: GTS_ACCOUNTS_REGISTRATION_OPEN=true, GTS_ACCOUNTS_REGISTRATION_DAILY_LIMIT=10
- openspec: proposal/specs/design/tasks for dynamic apex webfinger + registration + SMTP verify
- verified: /api/v1/instance → registrations:true; apex webfinger → acct:kpa39l@dedinit.ru; SMTP test OK
2026-09-07 05:48:46 +00:00

2.4 KiB

Goals

  1. Восстановить короткий адрес @kpa39l@dedinit.ru в клиентах (Tusky/Mastodon).
  2. Открыть регистрацию с лимитом 10 пользователей/день.
  3. Убедиться, что SMTP работает (для писем подтверждения).

Non-Goals

  • Не меняем DNS (apex остаётся на Jino).
  • Не меняем split-domain схему (host=social.dedinit.ru, account-domain=dedinit.ru).
  • Не вводим PHP/мод_rewrite (недоступны на Jino).
  • Не открываем регистрацию без лимита.

Architecture

Топология

Клиент (Tusky/Mastodon)
  │  резолв @kpa39l@dedinit.ru
  ▼
dedinit.ru (apex, Jino/Apache)
  │  /.well-known/webfinger?resource=acct:kpa39l@dedinit.ru
  ▼  RedirectMatch 301 (mod_alias, .htaccess)
social.dedinit.ru (GtS, vps02→WG→bigbox→docker)
  │  /.well-known/webfinger?resource=...
  ▼  динамический JSON: subject=acct:kpa39l@dedinit.ru

Регистрация

docker-compose.yml env:

  • GTS_ACCOUNTS_REGISTRATION_OPEN=true
  • GTS_ACCOUNTS_REGISTRATION_DAILY_LIMIT=10

approval_required=true (GtS по умолчанию): админ одобряет заявки. Очередь одобрения: дефолт GtS (20) — при 10/день хватает.

Risks / Open Questions

  • Tusky может кэшировать старый адрес: после фикса apex-WebFinger нужно перезайти/переподписаться в клиенте (или переустановить) — клиентский кэш сам не сбросится. Это документируется, но не решается серверно.
  • .htaccess и rsync --delete: деплой hugo (make deploy) использует rsync --delete public/. .htaccess в static/.well-known/ копируется в public/ и не затирается (файлы в public/ соответствуют static/, но --delete удаляет только лишнее). Проверено: .htaccess в static/ → public/.well-known/webfinger/.htaccess.
  • Jino: RedirectMatch (mod_alias) работает; mod_rewrite не работает — НЕ использовать RewriteRule.
  • Статический index.html в webfinger УДАЛЁН — не восстанавливать.