Selbstgehostete soziale Netzwerke

Cyril Šebek • 22.11.2024, 17:42:25

Haftungsausschluss: Dieser Artikel ist eine schlechte Übersetzung der englischen/tschechischen Version. Ich lerne gerade Deutsch und habe dies als Ausrede für ein bisschen Übung genutzt.

Einführung

Im Juli 2024 hatte ich endlich Zeit, meine Server vollständig einzurichten. Alle Programme liefen stabil, und ich konnte etwas Neues ausprobieren. Ich nutze soziale Netzwerke eigentlich nicht, aber wegen der Probleme mit Twitter/X wollte ich eine Alternative finden. So stieß ich auf Mastodon und später auf Bluesky.

Mastodon

Mastodon ist ein dezentrales Netzwerk. Das bedeutet, dass die Server von Nutzern gehostet werden, nicht von einer Firma. Jeder kann einen eigenen Server betreiben, der trotzdem mit anderen Servern verbunden ist – dank des ActivityPub-Protokolls. Zusammen bilden diese Server das sogenannte „Fediverse“.

Warum Mastodon selbst hosten ?

Es gibt viele Gründe. Manche machen es für ihre Communities oder Firmen. Für mich war die größte Motivation Freiheit. Es gibt keine zentrale Kontrolle. Jeder Server legt seine eigenen Regeln fest.

Mastodon einrichten

Die Installation von Mastodon ist nicht schwer. Es gibt offizielle Anleitungen. Ich habe Mastodon auf einem Debian 12-Container in meinem Proxmox-Server installiert. Eine wichtige Lektion: Mastodon braucht viel Speicherplatz! Meine Instanz verbraucht ungefähr 60 GB. Und ich habe das auf die harter Tour gelernt.

Speicherproblem lösen

Mastodon speichert viele Daten, löscht sie aber nicht automatisch. Ich habe ein Skript erstellt, das alte Daten löscht, um Speicherplatz zu sparen:

#!/bin/bash

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

RAILS_ENV=production /home/mastodon/live/bin/tootctl accounts prune;

RAILS_ENV=production /home/mastodon/live/bin/tootctl statuses remove --days 4;

RAILS_ENV=production /home/mastodon/live/bin/tootctl media remove --days 4;

RAILS_ENV=production /home/mastodon/live/bin/tootctl media remove --remove-headers --include-follows --days 0;

RAILS_ENV=production /home/mastodon/live/bin/tootctl preview_cards remove --days 4;

RAILS_ENV=production /home/mastodon/live/bin/tootctl media remove-orphans;

Das Skript läuft automatisch alle drei Stunden

0 */3 * * * /bin/bash /home/mastodon/purge-media.sh

Das macht meine Konfiguration hanhabbar unter 60GB.

Bluesky

Bluesky ist ein anderes soziales Netzwerk, ähnlich wie Twitter/X. Es ist jünger als Mastodon und basiert auf dem ATProto-Protokoll. Seit 2021 ist Bluesky unabhängig. Heute hat es über 21,5 Millionen Nutzer (Stand: November 2024).

Bluesky selbst hosten

Bluesky ist einfacher zu hosten als Mastodon. Es gibt ein automatisches Installationsskript, das alles einrichtet. Mehr Informationen finden Sie auf Blueskys GitHub-Seite.

Nginx vs. Caddy

Eine Herausforderung bei der Einrichtung war, dass das automatische Skript davon ausgeht, dass es der einzige Dienst auf der Domain oder IP-Adresse ist. Standardmäßig verwendet das Skript Caddy als Reverse Proxy und verwaltet die SSL/TLS-Zertifikate. Für weniger technisch versierte Nutzer ist das praktisch, aber es passte nicht zu meiner Umgebung. Ich nutze Nginx, um in meinem Homelab mehrere Dienste zu verwalten, die jeweils Subdomains verwenden. Um Konflikte zu vermeiden, habe ich Nginx so konfiguriert, dass es Anfragen an die passenden Backends weiterleitet, ohne die SSL/TLS-Zertifikate zu beeinträchtigen. Hier ist meine Lösung mit dem stream-Modul von Nginx:

stream {
    # Define a map to route based on SNI
    map $ssl_preread_server_name $backend {
        bsky.cyrilsebek.cz 10.69.13.212:443;
        default 127.0.0.1:8443; # Fallback backend or drop the connection
    }

    server {
        listen 443;
        listen [::]:443;

        # Enable SNI inspection
        ssl_preread on;

        # Route traffic to the correct backend
        proxy_pass $backend;
    }
}

Conclusion

Sowohl Mastodon als auch Bluesky sind großartige Optionen für selbstgehostete soziale Netzwerke. Allerdings ist es nicht notwendig, sie selbst zu hosten, um sie nutzen zu können. Mastodon bietet unvergleichliche Freiheit und eine Community-gesteuerte Verwaltung, während Bluesky mit Einfachheit und leichter Einrichtung punktet. Für Nutzer, die eine unkomplizierte Alternative zu Twitter/X suchen, ist Bluesky wahrscheinlich die bessere Wahl. Mastodon hingegen überzeugt durch seine dezentrale und föderierte Struktur, die mehr Kontrolle ermöglicht und dem Gedanken eines wirklich unabhängigen Netzwerks entspricht. Am Ende habe ich mich entschieden, beide Plattformen zu nutzen. Jede hat ihre eigenen Stärken, und durch das Selbst-Hosting kann ich sie vollständig erkunden.