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

51 lines
2.4 KiB
Markdown

## 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 УДАЛЁН — не восстанавливать.