GoToSocial als ActivityPub Server - Meine Erfahrungen
Ich bin seit der Übernahme von Twitter durch Elon Musk auch auf Mastodon bzw. im ActivityPub-Universum unterwegs. Das Konzept, dass es viele verteilte Server im sozialen Netzwerk gibt finde ich total spannend. Das ist, wenn man so will, das soziale Netzwerk neu gedacht – dezentral, offen und communitygetrieben. Vor allem haben wir damit nicht die allgemeinen Probleme welche die derzeit großen Netzwerke so mit sich bringen. Egal in welche politische Richtung man jetzt denken möge.
Mein Werdegang im Fediverse
Seit dem ersten Tag war für mich klar: Wenn ich irgendwo im Internet aktiv bin, dann selfhosted. Ich wollte also meine eigene Instanz betreiben – nicht einfach einen Account auf mastodon.social oder chaos.social haben, sondern wirklich alles selbst in der Hand. Angefangen habe ich mit einem Mastodon Server der auf einem Netcup VPS installiert wurde, in der klassischen Installation, also ohne Container. Einige Zeit später habe ich meine Installation dann zu den Docker Containern umgezogen. Beide Installationsvarianten liefen ohne Probleme. Lediglich das Updaten ist mittels Container einfacherer.
Umzug ins Homelab
Ein paar Monate später lief mein Kubernetes-Homelab endlich stabil – und was liegt näher, als den Mastodon-Server auch dorthin umzuziehen? Mit Cloudflare Tunnel war das Routing kein Problem. Auch diese Installation lief reibungslos. Ich habe irgendwann von den offiziellen Mastodon-Containern auf die Images von Linuxserver.io gewechselt. Funktional gab’s aber keinen Unterschied.
Der Umstieg auf GoToSocial
Vor einigen Wochen schrieb Matthias dann über sein Experiment mit GoToSocial – kurz GTS. Diese Software ist im Prinzip eine leichtgewichtige Alternative zu Mastodon, geschrieben in Go, und läuft als Single Binary. Kein Ruby, keine externe Datenbank nötig, kein Overhead. Also perfekt für kleine Instanzen mit nur wenigen aktiven Konten. GTS bringt leider kein eigenes Frontend mit, sodass man hier auf externe oder auf die gängigen Smartphone Apps ausweichen muss.
Matthias hat hier ein paar Beobachtungen auf seinem Blog dazu geschrieben was die Unterschiede der Performance sowie des Resourcenverbrauches angeht. Sehr spannend zu lesen.
Also habe ich mir ebenfalls eine kleine GoToSocial-Instanz eingerichtet. Die Einrichtung war wirklich simpel: Binary herunterladen, Konfigurationsdatei anlegen, starten – fertig. Und ja, es lief erstaunlich stabil. Nur merkt man schnell, dass GTS zwar das ActivityPub-Protokoll unterstützt, aber bei der Interoperabilität noch nicht auf dem gleichen Level wie Mastodon ist.
Problem Nummer 1 - Wanderer und das schweigen im Feed
Das Thema ActivityPub, also quasi das Protokoll das hinter vielen verschiedenen Föderierenden in sozialen Netzwerken steckt, findet in den letzten Monaten bei diversen Apps der selfhosting-Szene auch immer mehr anklang. Ich war also erfreut, dass die App Wanderer ebendies nun anbietet. Die Idee dahinter ist großartig: Man kann eigene Wanderrouten teilen, GPS-Tracks hochladen und diese als Beiträge ins Fediverse posten. Und das Ganze natürlich föderiert über ActivityPub.
Nach kurzer Zeit musste ich dies einmal ausprobieren wie das so funktioniert. Das folgen meines Accountes aus der GoToSocial Instanz war kein Problem. Also eine neue Wanderroute per GPX importiert und gewartet was ich nun als Beitrag in meinem Feed sehen werde… Nix… Nach ein wenig hin und her habe ich es von einem normalen Mastodon Account probiert und siehe da: Die Wanderung wird mir als Beitrag in die Timeline gespült.
Ich habe den Fehler natürlich dem Entwickler gemeldet, aber bisher (Stand heute) hat sich da noch nichts getan. Das zeigt recht deutlich: ActivityPub ist mächtig, aber eben auch komplex. Nicht jede Implementierung spricht dieselbe „Sprache“, und schon kleine Abweichungen führen zu Inkompatibilitäten.
Problem Nummer 2 - PeerTube und seine Follower
Das zweite Thema, das mich beschäftigt hat, war mein alter YouTube-Kanal. Ich hatte Lust, mal wieder ein paar Videos zu machen – aber eben nicht nur auf YouTube. Wenn man schon im Fediverse ist, bietet sich PeerTube an: eine dezentrale Videoplattform, die nach dem gleichen Prinzip funktioniert wie Mastodon, nur eben für Videos.
Die Installation war schnell erledigt, aber die Einrichtung hat es in sich. PeerTube hat ein komplexes Rollen- und Berechtigungssystem, dazu die Föderationseinstellungen und eine ganze Menge an Tuning-Parametern. Aber: Es läuft stabil, und die Community ist sehr aktiv.
Auch hier habe ich ein paar Testvideos hoch geladen und geschaut was so passiert. Leider steckt das Thema Interoperabilität zwischen PeerTube und GoToSocial sogar noch weiter vorne fest. Ich kann Accounts oder Kanälen folgen, die Anfrage wird aber nicht sauber von PeerTube verarbeitet. Das Problem war sogar bekannt: Auf GitHub gab es bereits ein Issue, und angeblich sollte der Bug mit Version 7.2 behoben sein. Ich hatte allerdings schon Version 7.3 – und trotzdem trat der Fehler auf. Auch hier wieder das gleiche Muster: Mit einem Mastodon-Account lief alles tadellos.
Ich könnte noch ein paar Kleinigkeiten auflisten die mir im Laufe des Tests aufgefallen sind, aber du erkennst sicherlich den Punkt worauf ich hinaus möchte. Wer keine größeren Ansprüche hat ist mit einer GoToSocial Instanz super zufrieden, allerdings hapert es häufig an Kleinigkeiten.
Zwischenfazit – Kleine Tools, große Hürden
Ich könnte jetzt noch viele Kleinigkeiten aufzählen, die mir im Laufe der Tests aufgefallen sind: kleinere Inkompatibilitäten, Eigenheiten in den HTTP-Headern, Timeouts bei der Föderation und so weiter. Aber das wäre Haarspalterei.
Der Punkt ist: Wer keine großen Ansprüche hat und einfach nur einen minimalistischen Account im Fediverse betreiben möchte, ist mit GoToSocial super beraten. Die Software ist schlank, ressourcenschonend und wirklich stabil. Aber sobald man versucht, etwas weiter über den Tellerrand zu schauen – also PeerTube, Bookwyrm, Pixelfed oder eben Wanderer zu integrieren – merkt man, dass viele Projekte noch nicht vollständig aufeinander abgestimmt sind.
Und das ist völlig verständlich. Jedes dieser Tools wird von kleinen Teams oder sogar Einzelpersonen entwickelt, meist in der Freizeit. Es gibt keinen großen Konzern im Hintergrund, der alles zentral steuert. Das ist einerseits der Charme des Fediverse, andererseits aber auch die Quelle vieler kleiner Frustrationen.
Fazit
Wer jetzt der Schuldige des ganzen ist, kann ich nicht beurteilen. Sicherlich gibt Mastodon die Entwicklung des ganzen vor und schlussendlich werden die ganzen kleinen Tools von Menschen programmiert und gepflegt die das lediglich in ihrer Freizeit tun. Ich hoffe nur, dass perspektivisch sich das ganze angleicht und alle möglichen Plattformen sauber miteinander kommunizieren können..