Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Entwicklungssystem für Hubzilla

Wer Addons für Hubzilla entwickeln möchte, oder Themes bauen oder sogar am Code von Hubzilla selbst arbeiten will, der sollte das tunlichst nicht mit einem Hub tun, der als “Produktivsystem” läuft, denn dieses kann man sich damit allzu leicht gründlich zerschießen.

Man bräuchte also einen laufenden Hub, der nicht im Echtbetrieb läuft. Klar kann man das auch auf einem gemieteten Server machen, aber das kostet natürlich Geld. Besser wäre es, wenn man einen solchen Hub lokal auf seinem Rechner laufen lassen könnte. Und das ist ja auch machbar. Allerdings ist der Aufwand, wenn man es normal auf seinem System zum Laufen bringen möchte, nicht gerade gering und kann sich auf den restlichen Betrieb des Rechners auswirken.

Aber dafür gibt es ja die Möglichkeit, bestimmte Dinge in einem isolierten Container laufen zu lassen… mit Docker oder Podman. Das ist eine bewährte und gute Möglichkeit. Allerdings muss man sich dafür wieder mit Docker auskennen, um sich entsprechende Container zu basteln.

Es gibt aber, um das zu vermeiden, die PHP-Entwicklungsumgebung DDEV. Und Harald Eilertsen, einer der Hauptentwickler von Hubzilla, hat eine spezielle DDEV-Umgebung für Hubzilla erstellt und stellt diese in einem Git-Repo zur Verfügung: hubzilla-ddev.

Die Dokumentation findet man hier: The Hubzilla DDEV Environment

Damit macht man es sich wirklich einfach. Man muss zunächst zwar Docker auf seinem Rechner installieren, was aber keine Hürde darstellt. Und natürlich auch DDEV, was auch sehr einfach ist.

Danach klont man das hubzilla-ddev-Repo in sein Homeverzeichnis:

git clone https://code.volse.net/hubzilla/hubzilla-ddev.git

Danach wechselt man in das neu erzeugte Verzeichnis hubzilla-ddev

cd hubzilla-ddev

und klont dort das Hubzilla-Core-Repo mit

git clone https://framagit.org/hubzilla/core.git.

Nun führt man die restlichen notwendigen Schritte, wie man sie aus der INSTALL.txt des Hubzilla-Repositorys kennt, durch:

cd core

mkdir -m 775 -p store/\[data\]/smarty3

./util/add_addon_repo https://framagit.org/hubzilla/addons.git hzaddons

Danach kann man auch schon den DDEV-Server starten:

start ddev

(der Docker Daemon muss natürlich vorher gestartet worden sein)

ddevstart

Wenn man alles nach diesen Vorgaben erledigt hat, kann man nun den Rest der initialen Hubzilla-Installation im Browser durchführen, indem man https://hubzilla.ddev.site aufruft.

Man führt die Installation dann im Webbrowser wie gewohnt durch…

  • Bestätigung der automatischen Diagnose und Eingabe der Basisdaten.
  • Eingabe der Datenbank-Parameter: alle Felder mit “db” ausfüllen, den Port auf belassen und als Datenbanktyp “PostgreSQL” auswählen.

Schließlich muss man einen Admin-Account und einen Kanal erstellen, wie man es von Hubzilla ja schon kennt. Dabei muss die Mailadresse, die man bei der Installation eingegeben hat, auch für das Anlegen des Accounts verwendet werden.

Da nun eine Bestätigungsmail mit einem Verifikationscode empfangen werden muss, aber keine echte Mail verschickt wird, startet man im Terminal (im hubzilla-ddev Verzeichnis)

ddev mailpit

Damit gelangt man in einen Mail-Webclient, in welchem die ausgehenden Mail angezeigt werden. Dort findet man dann die “abgeschickte” Mail mit dem Verifikationscode, den man bei der Accounterstellung eingeben muss.

Jetzt noch rasch einen Kanal erstellen, und schon läuft der Hub lokal.

“Lokal” ist dabei wichtig! Man sollte keinesfalls Verbindungen zu real existierenden Kanälen im Fediverse herstellen. Um das zu vermeiden, empfiehlt es sich die unter hubzilla/ddev liegende Datei .htconfig.php zu bearbeiten und in der Zeile

App::$config['system']['directory_mode']

folgendes einzutragen:

App::$config['system']['directory_mode'] = DIRECTORY_MODE_STANDALONE;

Fertig!

hubzilla-ddev

Nun kann man nach Herzenslust entwickeln, coden, ändern… alles innerhalb des Ordners “core”.

Sollte das System mal spinnen oder man das Gefühl haben, es müsse irgendwie neu gestartet werden, erledigt man das mit

ddev restart

Herunterfahren lässt sich die Entwicklungsumgebung mit

ddev stop

Die Logs des Entwicklungssystems kann man sich übrigens mit

ddev logs

anzeigen lassen.

Möchte man auf die PostgreSQL-Datenbank via CLI zugreifen, startet man aus dem Basisverzeichnis (hubzilla-ddev) heraus

ddev psql

An dieser Stelle noch einmal ein großes “Dankeschön” an Harald, der die hubzilla-ddev-Umgebung zur Verfügung gestellt hat.