link

Logo for OliverHartmann.net

Bau dir einen eigenen Fediverse-Server

Alle wollen plötzlich ins Fediverse, das ist gut so, bringt aber für den Einzelnen auch neue Herausforderungen mit sich, die bis dahin völlig unbekannt waren.

  1. Das Fediverse ist am gesündesten, wenn es möglichst viele kleine Server gibt, also bau dir am besten selbst einen.
  2. Das Fediverse ist mehr als Mastodon, Friendica und Pixelfed etc., weit mehr. Viele Server sind sehr komplex und mühsam zu installieren, aber:
  3. Nutz doch einfach ein feines Stück Software, das einfach zu installieren und zu warten ist, zudem mit einer enormer Entwicklungs-Erfahrung dahinter aufwarten kann: Streams

The streams repository has no brand or brand identity. None. The name is the name of a code repository. Hence "the streams repository". It isn't a product. It's just a collection of code which implements a fediverse server that does some really cool stuff. There is no flagship instance. There is no mascot. In fact all brand information has been removed. You are free to release it under your own brand. Whatever you decide to call your instance of the software is the only brand you'll see. The software is in the public domain to the extent permissable by law. There is no license.

If you look for the streams repository in a list of popular fediverse servers, you won't find it. We're not big on tracking and other spyware. Nobody knows how many instances there are or how many Monthly Active Users there are. These things are probably important to corporations considering takeover targets. They aren't so important to people sharing things with friends and family.

Mittlerweile gibt es Anbieter die Streams für kleines Geld "out of the box" anbieten, sehr empfehlenswert ist zum Beispiel K&T Host. Du brauchst nur eine Domain, alles andere geht mit wenigen Klicks und funktioniert einfach.


Falls Du aber alles selbst erledigen möchtest, dann gehts hier lang:
Suche einen Hoster (für den Webspace) der fair ist und dir viele Freiheiten (u.a. Shell Zugriff) bietet, zb. Uberspace. Diese Anleitung setzt voraus dass du bei Uberspace gelandet bist. Besorg eine Domain, schalte sie auf deinen Webspace/Uberspace. Oder nutz einfach die von Uberspace bereitgestellte Subdomain. Wichtig: Du brauchst eine Domain oder Subdomain, untergeordnete Ordner werden nicht funktionieren (also zb. sowas wie www.deineseite.de/streams/) Ausserdem benötigst du ein SSL Zertifikat, das ist aber bei Uberspace bereits dabei.

Wie die Basics zu erledigen sind kannst du wunderbar im Uberspace-Handbuch nachlesen.

Die Installation ist relativ leicht und läuft zum Großteil über die Shell, nur keine Angst davor, es ist wirklich einfach.

Geh in dein Shell-Terminal und log dich in deinen Uberspace ein.
Du benötigst mindestens PHP Version 8.1, also erstmal checken was grade läuft:
uberspace tools version show php
ggf. die passende Version 8.1, oder spätere, aktivieren:
uberspace tools version use php <php Version>

Erstell eine Datenbank:
mysql -e "CREATE DATABASE ${USER}_streams"

Jetzt gehts los, Streams muss auf deinen Webspace geklont werden. Also zuerst in den Root-Ordner wechseln:
cd /var/www/virtual/$USER
dann mit Git die aktuellste Streams Version klonen:
git clone https://codeberg.org/streams/streams.git html
Wir benötigen Composer:
composer install --no-dev
danach in den html Ordner wechseln, zur Streams Installation:
cd html
Stell sicher dass folgende Ordner vorhanden sind:
"cache/smarty3" und "store"
Beide müssen von "aussen" beschreibbar sein:
mkdir -p "store"
mkdir -p "cache/smarty3"
chmod -R 700 store cache

Als nächstes werden die Addons installiert, dazu musst du weiterhin im html-Ordner sein. Das separate Addon-Repository muss geklont werden.
Wir geben dem Addon-Ordner den Namen 'zaddon', du kannst später weitere Addon- oder Themes-Repositorys mit anderen Namen einbinden wenn du möchtest.
util/add_addon_repo https://codeberg.org/streams/streams-addons.git zaddons

Der nächste Schritt ist wichtig, ein Cronjob muss eingerichtet werden, der alle 10 Minuten läuft.
Öffne das Crontab:
crontab -e
kopiere folgenden Text in das Feld:
*/10 * * * * cd /var/www/virtual/$USER/html; /usr/bin/php Zotlabs/Daemon/Run.php Cron > /dev/null 2>&1
Speichern und das Crontab wieder verlassen.

Im Grunde ist jetzt alles erledigt und du kannst deine Domain aufrufen um die (selbsterklärende) Installation über die Weboberfläche fertig zu machen. Dabei wird die Datenbank-Verbindung usw. eingerichtet.

Zukünftige Updates kannst du ganz einfach ebenfalls über die Shell durchführen:
cd /var/www/virtual/$USER/html; util/udall

Ein paar Dinge sind noch zu erledigen.
Öffne dazu deinen Webspace/html-Ordner in einen FTP-Explorer:
Die Datei .htaccess muss vorhanden sein.
Füge unter
<IfModule mod_rewrite.c>
RewriteEngine on
die folgende Zeile ein:
RewriteBase /

Speichern, schliessen.
Damit ist deine Installation ggf. auch unter einer Subdomain erreichbar.

Öffne die (superwichtige) Datei .htconfig.php und ändere folgende Zeile:
App::$config['system']['php_path'] = 'php';
in:
App::$config['system']['php_path'] = '/usr/bin/php';
Speichern, schliessen.

Du bist startklar, geh zurück in die Weboberfläche, erstell ein Konto und ein Profil auf deinem eigenen Fediverse-Server, verbinde dich mit wem du willst, hab viel Spaß im Fediverse!