fix(trusted-proxies): add 10.8.0.4/32 (vps02 WG) to GTS_TRUSTED_PROXIES

- docker-compose.yml: GTS_TRUSTED_PROXIES now 10.8.0.4/32,127.0.0.1/32,::1,172.30.0.1/16
- config.yaml: trusted-proxies sync (172.29.0.1/16 -> 172.30.0.1/16, actual docker gw)
- openspec: change fix-trusted-proxies (proposal/specs/design/tasks)
- verified: warning gone (0 matches), external IP 178.176.197.2 in logs, HTTP 200
This commit is contained in:
estorozhenko
2026-09-06 20:17:16 +00:00
parent b0fc7693c7
commit c62b6efb92
7 changed files with 213 additions and 6 deletions
@@ -0,0 +1,43 @@
## Why
GoToSocial на главной странице показывает предупреждение о неверной настройке `trusted-proxies`:
инстанс видит входящие запросы с IP, который не указан в доверенных прокси, из-за чего
rate-limiting (и, как следствие, федеризация) может работать некорректно.
Warning выводит `SUGGESTED_IP_RANGE` = `10.8.0.4/32` — это WireGuard-адрес vps02 (Caddy,
реверс-прокси) в сети 10.8.0.0/24. Трафик от Caddy приходит на bigbox (10.8.0.2),
проходит docker-NAT и попадает в контейнер GtS с source = адресом шлюза docker-сети
Gotosocial (172.30.0.1). Текущий `trusted-proxies` (`127.0.0.1/32,::1,172.30.0.1/16`)
не охватывает реальный адрес источника, который видит GtS.
## What Changes
- Добавить `10.8.0.4/32` (WireGuard-адрес vps02/Caddy) в `trusted-proxies`:
- `docker-compose.yml` → `GTS_TRUSTED_PROXIES` env (рабочий конфиг — только через env)
- `config.yaml` → `trusted-proxies` (reference-конфиг, образ его не читает, но держим синхронным)
- Сохранить существующие `127.0.0.1/32`, `::1`, `172.30.0.1/16` — ничего не убирается
- Пересоздать контейнер (`docker compose up -d --force-recreate`), рестарт сервиса снаружи
не требуется (bigbox — локальная машина, compose доступен)
- Проверить, что предупреждение исчезло и rate-limit работает с реальным клиентским IP
- Закоммитить и запушить изменения в git (gitverse — источник истины)
## Capabilities
### New Capabilities
- `gotosocial/trusted-proxies`: корректная настройка доверенных прокси GoToSocial —
инстанс определяет реальный IP клиента за реверс-прокси, rate-limiting и федеризация
работают штатно, предупреждение отсутствует
### Modified Capabilities
- `gotosocial/deploy` (существующая): уточняется требование `trusted-proxies` — добавляется
IP реверс-прокси (10.8.0.4/32, WireGuard vps02) к доверенным
## Impact
- **Сервисы/порты**: GoToSocial (docker, порт 8082 наружу / 8080 в контейнере); конфиг
GTS_TRUSTED_PROXIES в docker-compose.yml; reference config.yaml
- **Сеть**: WireGuard 10.8.0.0/24; docker-сеть gotosocial 172.30.0.0/16 (шлюз 172.30.0.1)
- **Rate limiting / федеризация**: должны начать использовать реальный клиентский IP
- **Rollback**: вернуть прежнее значение `GTS_TRUSTED_PROXIES` + `docker compose up -d`