LibreDB - Datenbank-Client als Container neben dem Stack, statt den DB-Port aufzumachen

libredb

New member
Nach Rücksprache mit @LittleWing stelle ich hier ein quelloffenes Projekt vor, an dem ich mitarbeite: LibreDB Studio, ein Datenbank-Client, der als Container läuft und im Browser bedient wird.

Der Anlass passt zu diesem Unterforum. Wer auf dem Heimserver Nextcloud, Immich, Paperless oder Home Assistant betreibt, hat damit auch eine PostgreSQL oder MariaDB laufen, meistens im selben Docker-Compose-Stack. Will man dort einmal hineinsehen, installiert man üblicherweise einen Client auf dem Rechner und muss den Datenbank-Port dafür ins Netz hängen. Der andere Weg ist, den Client in dasselbe Docker-Netz zu stellen und nur den Browser aufzumachen. Der Datenbank-Port kann dann zubleiben.

Code:
docker run -d -p 3000:3000 ghcr.io/libredb/libredb-studio:0.18.0

Beim ersten Start wird das Administratorkonto angelegt und das Passwort ins Container-Log geschrieben, abrufbar mit docker logs. Wer das lieber vorher festlegt, setzt ADMIN_PASSWORD. Hängt die Datenbank in einem eigenen Compose-Netz, hängt man den Container mit hinein und trägt als Host den Containernamen ein, also etwa nextcloud-db statt einer IP.

Im Alltag macht er das, was man von so einem Werkzeug erwartet: Tabellen durchsehen, Zeilenzahl und Größe, Indizes und Fremdschlüssel, Abfragen mit Autocomplete, Ausführungsplan, ER-Diagramm, Vergleich zweier Datenbanken, Sitzungen und langsame Abfragen. Praktisch für einen Heimserver finde ich den Sandbox-Modus: die Anweisung läuft wirklich, man sieht das Ergebnis, und am Ende wird alles zurückgerollt. Man sieht also, was ein UPDATE an der Nextcloud-Datenbank anrichten würde, ohne es anzurichten.

Quelloffen, MIT-Lizenz, keine kostenpflichtige Variante, und wir hosten nichts.

Zwei Dinge sage ich gleich dazu, weil sie hier auffallen würden. Die Oberfläche gibt es bisher nur auf Englisch. Und die Zahl der unterstützten Datenbanken führt in die Irre: 26 Verbindungstypen bringt der Client selbst mit, weitere 28 Engines sprechen das Protokoll eines dieser Typen und verbinden sich ohne eigenen Treiber. Dasselbe Protokoll bedeutet aber nicht denselben Systemkatalog, und genau daraus liest der Client Tabellenliste, Größen und Indizes. Wir haben alle 28 als Container gestartet und bei jeder dieselben fünfzehn Ansichten durchprobiert: achtzehn haben überall geantwortet, zehn nur teilweise. Bei einer völlig funktionierenden Engine haben wir uns dabei selbst vertan und sie erst im zweiten Durchlauf richtig eingeordnet, weil ihre Statistiken verzögert aktualisiert werden.

Für den typischen Heimserver-Fall ist das allerdings ruhiges Wasser: PostgreSQL, MariaDB und MySQL, SQLite und MongoDB laufen über eigene Treiber.

Letzte Woche kam 0.18.0 heraus, unter anderem mit InfluxDB, das hier einige wegen Home Assistant einsetzen dürften. In derselben Version haben wir einen Fehler von uns behoben: bei Anmeldung über OIDC wurden Sitzungen akzeptiert, obwohl die Antwort des Anbieters nie geprüft wurde, betroffen 0.7.0 bis 0.17.0. Wer so eine Installation hat, sollte aktualisieren; die lokale Anmeldung war nicht betroffen.

Quellcode und Compose-Beispiele: https://github.com/libredb/libredb-studio

Wenn jemand das Ding an eine Datenbank hängt und etwas nicht sauber angezeigt wird, schreibt es gern hier rein. Genau solche Rückmeldungen korrigieren unsere Messung.
 
Sieht ja schon ganz nett aus das Projekt. So braucht man zumindestens schon nicht mehr für jede x-beliebige Datenbank eine eigene Client-Software, sondern hat direkt alles unter einer Haube (erstmal egal, ob nun alles via Docker, oder nicht). Ich denke, ich werde es mir bei Zeiten mal anschauen :)(y)
 
Sieht ja schon ganz nett aus das Projekt. So braucht man zumindestens schon nicht mehr für jede x-beliebige Datenbank eine eigene Client-Software, sondern hat direkt alles unter einer Haube (erstmal egal, ob nun alles via Docker, oder nicht). Ich denke, ich werde es mir bei Zeiten mal anschauen :)(y)
Danke dir! Docker ist übrigens kein Muss: mit Node.js 24 reicht ein npx @libredb/studio, und fertige Pakete gibt es für macOS (brew), Linux (deb, rpm, Snap) und Windows (winget, choco). Wenn du es dir anschaust, freue ich mich über eine Rückmeldung
 

Letzte Anleitungen

Statistik des Forums

Themen
8.292
Beiträge
82.272
Mitglieder
9.042
Neuestes Mitglied
cevheri
Zurück
Oben