This repository has been archived on 2026-09-17. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
nixos-config/hosts/pinix/localServices/phanpy
pijukka fe022a1ca9 Backport confirmed live edits: forgejo wiki reorder, explore centering, phanpy tagline
Forgejo (all confirmed live on /wiki/userguide and /explore/repos before
backporting):
- Explore: center repo names instead of left-aligned.
- Wiki pages: content (+ TOC sidebar) goes directly after the site
  navbar. Everything else moves below it -- the breadcrumb/watch/star/
  fork row and tab bar (.secondary-nav), the page title/revision-count/
  "edited this page" line (.ui.dividing.header), and the page-picker/
  clone-panel button row. Took three live iterations to find all three
  pieces since none of them were wrapped together.

Phanpy: hide the "A minimalistic opinionated Mastodon web client."
tagline on the welcome page, same reasoning as the already-hidden
feature showcase below it -- redundant copy only the operator sees.
2026-08-03 22:11:54 +02:00
..
0ff-space.patch platform: declarativize pinix services and deployment 2026-07-27 23:46:41 +02:00
local-only.patch phanpy: add GoToSocial local-only posting 2026-07-28 20:26:06 +02:00
package.nix Backport confirmed live edits: forgejo wiki reorder, explore centering, phanpy tagline 2026-08-03 22:11:54 +02:00
README.md services: share 0ff.space branding 2026-08-03 07:34:40 +02:00

Phanpy

Gepatchter Phanpy-Client (siehe package.nix, 0ff-space.patch, local-only.patch) für phanpy.0ff.space, statisch ausgeliefert über static-web-server (siehe ../phanpy.nix). Backend ist GoToSocial auf social.0ff.space (../gotosocial.nix).

package.nix kopiert außerdem den gemeinsamen gepunkteten Light-/Dark- Hintergrund aus hosts/globalServices/branding/0ff-space-background.css in den Build und bindet ihn über index.html ein. Dadurch wird die Datei auch vom generierten Service Worker versioniert und gecacht.

Community-interne Posts (nicht föderiert)

local-only.patch fügt im Compose-Fenster eine „Local only"-Checkbox hinzu, die GoToSocials local_only-Parameter setzt. Damit ein Post innerhalb der Community sichtbar wird (also in der Local Timeline aller Instanz-Mitglieder auftaucht), aber nicht in den Fediverse föderiert wird, braucht es beide Einstellungen zusammen:

  • Sichtbarkeit: Public (nicht Followers-only/Private!)
  • „Local only"-Checkbox: an

Grund: GoToSocial nimmt Posts nur dann überhaupt in die Public-/Local-Timeline-Caches auf, wenn visibility == public ist (internal/surfacing/surfacetimeline.go, timelineStatusForPublic — bei jeder anderen Sichtbarkeit wird sofort zurückgekehrt, unabhängig vom local_only-Flag). Ein Post mit „Followers-only" + „Local only" verhält sich also einfach wie ein normaler Followers-only-Post (sichtbar nur für die eigenen Follower) und taucht nicht in der gemeinsamen Local Timeline auf — das erfüllt nicht das Ziel „für die ganze Community sichtbar, aber nicht federated".

Verifiziert über GoToSocials flags-Bitmaske in der statuses-Tabelle (internal/gtsmodel/statusflags.go): Bit 8 = Local (Autor ist lokaler Account), Bit 16 = Federated (wird über die Instanz hinaus verteilt). Ein normaler öffentlicher Post hat flags = 24 (Local + Federated), ein korrekt verfasster „Local only"-Post hat flags = 8 (nur Local, nicht Federated) — das per SQL auf pinix nachvollziehbar: sudo -u postgres psql -d gotosocial -c "SELECT id, flags, visibility FROM statuses ORDER BY id DESC LIMIT 20;".

Bekannter Fallstrick: Local-Timeline-Ansicht nach GoToSocial-Neustart

Phanpys eingebaute Local-Timeline-Ansicht (/p/l, Menü oben rechts → „Switch to Local") kann nach einem gotosocial-Neustart leer bzw. auf einen einzelnen, sehr alten Post eingefroren wirken — auch wenn die Datenbank aktuelle, passende Posts enthält. Ursache vermutlich GoToSocials serverseitiger In-Memory-Cache für die Local-/Public-Timeline (internal/cache/timeline), der nach einem Neustart nicht sofort korrekt mit dem vollen Verlauf preloaded. Am 29.07.2026 beobachtet und durch erneuten sudo systemctl restart gotosocial auf pinix behoben. Falls das wieder auftritt: erst prüfen, ob die Datenbank tatsächlich aktuelle, lokale Public-Posts enthält (SQL oben), dann gotosocial neu starten.