Files
gotosocial/openspec/changes/add-webclient-and-clean-footer/design.md
T
estorozhenko c8d490d1c6 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
2026-09-07 13:55:45 +00:00

2.0 KiB

Goals

  1. Веб-клиент рядом с GtS: чтение и написание постов из браузера без сторонних приложений.
  2. Убрать ЛГБТ-символы из подвала всех страниц, проверять при апгрейде.

Non-Goals

  • Не менять GtS изнутри (fork, патч бинаря).
  • Не использовать тяжёлые клиенты (Elk — сборка из исходников, радужная символика в UI).
  • Не поднимать отдельный Mastodon-сервер.

Decisions

Клиент: Phanpy (openengineering/phanpy:latest)

  • Статический SPA, минимализм, нейтральный (без ЛГБТ-символики в UI).
  • Образ официальный, свежий (автосборка main, 2026-09-05).
  • Не требует сборки у нас; образ с nginx-раздачей статики.
  • CORS уже * на GtS → работа с API из любого origin.

Публикация: web.dedinit.ru (Caddy на vps02)

  • Caddyfile (vps02, docker caddy): web.dedinit.ru { reverse_proxy 10.8.0.2:8383 }.
  • TLS авто через Caddy (как остальные домены).

Порт/сеть

  • Контейнер phanpy на bigbox: порт 8383, сеть gotosocial_default? Нет — отдельный сетевой мост, доступ извне через vps02 (как GtS).
  • Обычно Phanpy не хранит ничего на диске (localStorage в браузере), volume не нужен.

Чистка подвала

  • Кастомный page_footer.tmpl в /opt/gotosocial/web/template/, смонтирован volume в контейнер поверх /gotosocial/web/template/page_footer.tmpl.
  • Скрипт проверки при обновлении: docs/check-pride.sh — docker cp шаблонов, grep по эмодзи, fail при наличии.