Selbst gehostetes Plausible-Analytics, in einem Befehl
Eine Zeit lang lief railyard.run ohne jede Analytics. Nicht aus Prinzip — wir waren einfach noch nicht dazu gekommen, was bedeutete, dass jede Frage nach “liest das überhaupt jemand” eine Vermutung war. Das zu beheben wurde zum ersten echten Test, ob “selbst gehostet, ein Klick” tatsächlich hält, wenn wir es selbst nutzen, nicht nur etwas, das wir für die Apps anderer Leute gebaut haben.
Was wir gestartet haben
Plausible Community Edition, als Railyard-Stack-Template: drei Services — Plausible selbst, Postgres für seine eigenen App-Daten, und ClickHouse für die tatsächlichen Analytics-Events — gemeinsam auf einem unserer eigenen Server bereitgestellt.
railyard launch plausible --server <id>
Das ist der gesamte Provisioning-Schritt. Kein separates ClickHouse-Setup, keine manuell verdrahteten Connection-Strings — das Template deklariert alle drei Services und wie sie miteinander sprechen, und Railyard stellt das Set als eine Einheit bereit.
Was nach dem Launch-Befehl kam
Der Rest war der normale Erststart jeder selbst gehosteten App, nichts Railyard-Spezifisches:
- Die URL der App öffnen, als Instanz-Owner registrieren — Plausibles eigener Erststart-Flow, nichts vorzubefüllen.
- + Add a website, die zu trackende Domain eingeben.
- Das generierte Tracking-Snippet kopieren und in den
<head>der Seite einfügen.
Es war nicht einmal eine eigene Domain nötig — die Standard-URL der App unter *.apps.railyard.run reichte, um das Dashboard zu betreiben und das Tracking-Skript auszuliefern. Wir nutzen diesen Weg nur, weil er wirklich einfacher ist, nicht weil etwas gefehlt hätte.
Wo es tatsächlich kurz haperte
Es hat nicht — was selbst erwähnenswert ist, da der ganze Sinn dieses Beitrags ist, ehrlich darüber zu sein, was Self-Hosting in der Praxis wirklich kostet. Das Template startete sauber, die drei Services fanden sich über Railyards privates Netzwerk ohne manuelles Env-Var-Verdrahten, und das Tracking-Skript zeigte Pageviews in Plausibles Realtime-Ansicht innerhalb von Sekunden nach dem Einbau auf der Seite.
Die eine Sache, die man vorher wissen sollte: Ein frischer Launch erstellt jedes Mal eine neue App, wenn du ihn ausführst, also bedeutet zweimal starten zwei vollständige Stacks nebeneinander, nicht ein Update des ersten. Leicht zu vermasseln, leicht zu beheben — apps:rm <name> --confirm <name> in der CLI entfernt den zusätzlichen Stack sauber.
Warum self-hosted statt Plausible Cloud
Plausible Cloud ist ein gutes Produkt und für die meisten Teams die einfachere Wahl. Wir haben uns speziell für self-hosted entschieden, weil es dieselbe Art von Anspruch ist, den wir für alles andere auf Railyard erheben: Du solltest die Tools, auf die du dich verlässt, auf Infrastruktur betreiben können, die du kontrollierst, ohne eine zweite Anbieterbeziehung für jedes Stück deines Stacks. Cookie-frei, kein Consent-Banner, und die Daten verlassen nie einen Server, den wir selbst provisioniert haben.
Wenn du für deine eigene Seite denselben Tradeoff abwägst, ist das Plausible-Template einen Klick entfernt, und Logs, Metriken und Alerts deckt den Rest davon ab, was Railyard über Traffic sichtbar macht, ganz ohne einen separaten Analytics-Stack.