feat(webclient): Phanpy on web.dedinit.ru; clean footer without pride flags

- phanpy service (openengineering/phanpy:latest) :8383->8080, Caddy vps02 → 10.8.0.2:8383
- custom page_footer.tmpl mounted ro: removes 🏳️🌈/🏳️⚧️/🦥 from footer
- scripts/check-pride.sh + check-pride.py: detect LGBTQ flags in GtS templates (unicode-normalized),
  to run on every image upgrade
- STATUS.md: procedure for GtS upgrades
- openspec: add-webclient-and-clean-footer
This commit is contained in:
estorozhenko
2026-09-07 13:55:45 +00:00
parent 30121869f2
commit c8d490d1c6
10 changed files with 340 additions and 2 deletions
@@ -0,0 +1,34 @@
## Why
1. На https://social.dedinit.ru/login предлагается использовать сторонние клиенты
(Elk, Tusky и т.п.), но при отсутствии настроенных устройств нечем читать и
писать посты с браузера. Нужен собственный веб-клиент, поднятый контейнером
рядом с GtS.
2. В подвале страниц отображаются ЛГБТ-символы (🏳️‍🌈, 🏳️‍⚧️, 🦥) из
дефолтного шаблона GtS. Пользователь против такой символики (в РФ это
незаконно) — убрать её со всех страниц и проверять при обновлении версии
контейнера.
## What Changes
1. Поднять контейнер веб-клиента Phanpy (лёгкий, нейтральный Mastodon-клиент,
статический SPA) рядом с GtS в docker-compose; опубликовать на
web.dedinit.ru через Caddy (vps02).
2. Заменить шаблон подвала GtS (page_footer.tmpl) на кастомный без радужных
эмодзи; добавить проверку при обновлении образа GtS.
## How
- GtS уже отдаёт CORS `access-control-allow-origin: *` → Phanpy (SPA) сможет
ходить на API с любого origin, включая web.dedinit.ru.
- Phanpy: официальный docker-образ openengineering/phanpy:latest (свежий,
автосборки) — статика на nginx.
- Caddy на vps02: добавить блок web.dedinit.ru → 10.8.0.2:8383.
- Шаблон: docker cp дефолтного page_footer.tmpl → правим → монтируем volume
в контейнер (уже реализовано, проверить).
## Risks
- Phanpy — сторонний клиент; работает через Mastodon API, CORS уже `*` на GtS.
- Обновления GtS могут менять структуру шаблонов — проверять совместимость
page_footer.tmpl (скрипт check-pride.sh).