Zum Inhalt springen

Smolfedi: Ein Fediverse Client am eigenen Webspace

Ich verwende seit einiger Zeit neben Mastodon auch GoToSocial um ins Fediverse zu posten. GoToSocial hat jedoch keine eigene Weboberfläche um Postings anderer zu lesen oder selbst zu posten. Dafür braucht man einen sogenannten Client. Das ist eine App am Desktop oder Mobilgerät.

Es gibt aber auch Clients für das Web, wie z.B. phanpy.

Und gestern entdeckte ich in Adële’s blog den Artikel The Fediverse deserves a dumb graphical client, also „Das Fediverse verdient einen einfachen grafischen Client„.

Adële folgt dabei dem smolweb Ansatz, der das Web von Ballast befreit möchte.

Sie schreibt über Smolfedi unter anderem (Übersetzung stammt von mir):

Es ist eine PHP-Anwendung. … Es nutzt eine SQLite-Datenbank und einfache PHP-Sitzungen. Jede Seite wird serverseitig generiert und als reines HTML gesendet. Es unterstützt mehrere Konten, Timelines, Benachrichtigungen, Umfragen, Medienanhänge mit Alt-Text, Inhaltswarnungen, Verfassen, Antworten, Boosten, Favorisieren – alles, was ich tatsächlich täglich nutze. … Es gibt keine einzige Zeile JavaScript im Code.

Das musste ich doch gleich mal ausprobieren. Also von Codeberg die Dateien heruntergeladen und auf meinen Webspace in ein Subverzeichnis gespeichert.

Die Datenbank wird einfach in einem Subverzeichnis angelegt. Da braucht es keine eigenes mySQL.

In der „config.php“ musste ich – gemäß Anleitung – noch ein paar Anpassungen vornehmen und dann ging es los.

Eine Hürde: Session Problem

Naja, nicht ganz. Beim Autorisieren eines Profils gab es immer eine Fehlermeldung. Ich habe dieses Problem ChatGPT hingeworfen und nach ein wenig Fehlereingrenzung konnte es mir eine Lösung liefern.

Die Autorisierung wollte einfach nicht klappen. Ich gab meinen Fedivese Instanz an (z.B. microblog.at) an, wurde dorthin geleitet, loggte michals @roblen ein, gab die Zustimmung der Nutzung durch den Client, wurde zurückgeleitet und erhielt eine Fehlermeldung.

Tja, was macht man als Laie? Man fragt seine KI und nach rund 30 Minuten Fehlereinkreisung hatten wir die Lösung.

Das Problem: Oft liegt das an den PHP-Sessions. Im Shared Hosting teilen sich viele Accounts Standard-Ordner für diese Sessions. Wenn dort die Schreibrechte nicht stimmen oder der Server die Daten zu schnell löscht, „vergisst“ die App den Login-Prozess mitten im Vorgang.

Die Lösung: Ich habe dem Client in der bootstrap.php einfach einen eigenen, privaten Speicherort für die Sessions zugewiesen. Damit hat die App volle Kontrolle und die Anmeldung läuft sauber durch.

In der Datei gibt es die Zeile

ini_set('session.save_path', SESSIONS_PATH);

dort fügte ich oberhalb noch

ini_set('session.save_handler', 'files');

ein. Den Ordner „sessions“ habe ich natürlich entsprechend mit einer .htaccess abgesichert.

Und dann funktionierte es. Sollte jemand eine bessere Lösung dazu einfallen und jemand Sicherheitsprobleme erahnen, dann würde ich mich über Hinweise freuen.

Fediverse Profil autorisieren

Nachdem das geschafft war, rief ich das Subverzeichnis im Browser auf und schon war das Login zu sehen.

Screenshot

im Feld „Instance URL“ gibt man die Domain der Instanz ein, auf der das eigene Profil läuft. Dann wird man zu der Instanz weitergeleitet, loggt sich dort ein und erlaubt Smolfedi den Zugriff auf die eigenen Daten. Dann wird man auf Smolfedi zurückgeleitet.

Die Autorisierung mehrere Profile ist möglich. Man wechselt dann ganz einfach über ein kleines Auswahlmenü.

Funktionen

Ich habe mir erlaubt die Feature Liste ins deutsche zu übersetzen und sie mit ein paar Anmerkungen zu versehen. Im Screenshot seht ihr, wie eine Timeline im Browser so aussehen kann.

Timeline in Smolefedi - näheres im Artikel
Screenshot – anklicken für eine größere Ansicht
  • OAuth 2.0-Anmeldung (funktioniert mit Mastodon, GoToSocial und kompatiblen Instanzen. Ergänzung: ich konnte auch Friendica und Pixelfed einbinden)
  • Mehrere Konten – Melde dich gleichzeitig bei mehreren Konten (auf derselben oder verschiedenen Instanzen) an; wechsle über ein Navigations-Dropdown-Menü zwischen ihnen; jeder Browser-Tab kann über den URL-Parameter ?a=N unabhängig ein anderes Konto verwenden
  • Startseite mit Paginierung (das bedeutet, dass die Postings auf mehrere Seiten verteilt werden können. Die Anzahl der Postings pro Seite lässt sich in den Settings festlegen.
  • Beitragsdetailansicht mit Thread-Kontext, Favoriten/Boosts
  • Listen werden mit eigenem Button angezeigt
  • Profilansicht mit Folgen/Entfolgen, Bio-Feldern, Follower- und Following-Listen
  • Antworten, favorisieren, boosten, mit Lesezeichen versehen
  • Lesezeichen-Timeline
  • Anzeige von Direktnachrichten (Konversationen)
  • Anzeige von Umfragen und Abstimmungen
  • Hashtag-Timelines

Ergänzt wird das Ganze um

  • Umschalten zwischen dunklem und hellem Design (in der Sitzung gespeichert)
  • Breite der Seite (zwischen 400 und 2.000 Pixel)
  • Content Security Policy (keine externen Skripte erlaubt)
  • smolweb Note B CSS, kein JavaScript, keine externen Abhängigkeiten (damit sollten Anpassungen im Aussehen der Timeline recht einfach vorzunehmen sein, wenn man sich ein wenig mit CSS auskennt)

Ein Posting schreiben

Screenshot des Artikel Editors - näheres im Blogartikel
Screenshot – anklicken für eine größere Ansicht

Über Smolfedi lassen sich für das jeweils authentifizierte Profil auch Beiträge verfassen. 

Die Anzahl der möglichen Zeichen für einen Beitrag liest Smolfedi anscheinend aus dem jeweiligen Profildaten aus. Bei meiner Mastodon Instanz wurden mir 500 Zeichen erlaubt, bei GoToSocial 5.000 – und bei meiner speziell adaptieren Instanz sogar die umgestellten 10.000.

Beiträge können mit bis zu 4 Medienanhängen versehen werden. Zu jedem Anhang kann man auch einen Alt-Text ergänzen.

Es gibt auch eine Unterstützung für Inhaltswarnungen – CW verbirgt dann den Beitragstext mit einem „Inhalt anzeigen“-Link.

Die Sprache des jeweiligen Beitrags ist individuell einstellbar, ebenso die Beitragssichtbarkeit (öffentlich, nicht gelistet, nur für Follower, direkt).

Fazit

Ich finde es immer wieder wunderbar, wenn Anwendung auch in einem einfachen Webspace laufen und so auch von mir selbst gehostet werden können.

Adële schreibt selbst, dass Smolfedi nicht für jeden etwas ist. Das Layout ist simpel, neue Postings werden nicht automatisch nachgeladen, etc.

Dafür läuft die Anwendung in fast jedem Browser, verbraucht wenig Ressourcen und ist somit auch auf älteren PC/Servern lauffähig.

Außer dem Anfangsproblem mit der Authentifizierung (meinem Hoster geschuldet) ist die Installation und Einrichtung eine Sache von ein paar Minuten und somit schnell mal ausprobiert.

Neuveröffentlichungen

Likes

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Um auf deiner eigenen Website zu antworten, veröffentliche dort einen Beitrag, der einen Link zur Permalink-URL dieses Artikels enthält. Die Antwort erscheint dann (möglicherweise nach einer kurzen Moderation) hier auf dieser Seite. Möchtest du deine Antwort später ändern oder entfernen? Aktualisiere oder lösche einfach deinen Beitrag und sende die URL deines Beitrags erneut. Mehr über Webmentions erfahren