CLI-Tool
coleifer/sqlite-web avatar
coleifer/sqlite-web

sqlite-web: der SQLite-Browser, der aus pip install kommt

Projektüberblick: Ein browserbasiertes SQLite-Webwerkzeug zum Durchsuchen vorhandener SQLite-Datenbanken und zur einfachen Erstellung sowie Verwaltung über eine Weboberfläche.

4.162 Sterne400 ForksPythonMIT
GitHub

Auf einen Blick

Was ist das?
coleifer/sqlite-web bringt eine Flask-basierte Weboberfläche für bestehende SQLite-Datenbanken mit, von Schemaänderungen über SQL-Abfragen bis JSON- und CSV-Import. Der Beitrag folgt Installation, den fünf Reitern, den Kommandozeilenoptionen und dem Docker-Betrieb.
Für wen ist es gedacht?
sqlite-web eignet sich für alle, die gelegentlich in SQLite-Datenbestände hinschauen oder sie klein editieren wollen, ohne sqlite3 auf der Kommandozeile zu bedienen: pip install sqlite-web, dann sqlite_web mit dem Datenbankpfad, fertig ist der Browser unter localhost:8080. Wer zusätzliche Datenbanken zur Laufzeit hochladen will, startet mit --enable-load, für Dateisystemzugriffe mit --enable-filesystem, wobei das README selbst vor Letzterem warnt.
Darf ich es kommerziell nutzen?
Ja. MIT ist eine freizügige Lizenz: Sie dürfen darauf aufbauende Software nutzen, verändern und verkaufen, solange Sie die Urheberrechts- und Lizenzhinweise beibehalten.
Wird es noch gepflegt?
Ja. Die letzten Commits kamen vor 3 Tagen.
In welcher Sprache ist es geschrieben?
Hauptsächlich Python, laut der Sprachstatistik von GitHub.

Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 18. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.

TIEFGEHENDE OPEN-SOURCE-ANALYSE

sqlite-web: ein Python-Browser für bestehende SQLite-Datenbanken

sqlite-web aus dem Repository coleifer/sqlite-web ist ein webbasierter SQLite-Datenbankbrowser, geschrieben in Python. Die Abhängigkeiten sind bewusst klein: Flask als Web-Framework, Peewee als ORM-Schicht und Pygments für Syntaxhervorhebung. GitHub verzeichnet 4151 Sterne, 401 Forks und null offene Issues; der Standardzweig heißt master. Eine Release-Liste gibt es im ausgewerteten Material nicht.

Der Einsatzbereich laut README: Das Werkzeug arbeitet mit vorhandenen SQLite-Datenbanken oder erzeugt neue. Damit füllt es die Lücke zwischen dem sqlite3-Kommandozeilentool und vollwertigen Desktop-Programmen: Man startet einen Prozess, öffnet den Browser und hat Index, Struktur und Inhalt der Datenbank vor sich, samt Größe auf der Festplatte und Anzahl der Tabellen und Indizes auf der Startseite.

Start mit sqlite_web, mehreren Datenbanken und gevent

Die Installation ist ein Einzeiler: pip install sqlite-web. Der Start folgt dem Muster sqlite_web /path/to/database.db, und die Oberfläche liegt dann unter http://localhost:8080/. Mehrere Datenbanken lassen sich gleichzeitig öffnen, indem man einfach mehrere Pfade übergibt: sqlite_web /path/to/db1.db /path/to/db2.db /path/to/db3.db.

Für höheren Durchsatz gibt es einen zweiten Einstiegspunkt: sqlite_wsgi startet die Anwendung mit dem gevent-WSGI-Server, wobei das Paket gevent separat installiert sein muss. Ein vollständigeres Beispiel aus dem README lautet sqlite_wsgi -p 8000 -H '0.0.0.0' /path/to/db1.db /path/to/db2.db. Wer beim Start den Browser automatisch öffnen lassen will, nutzt --browser, wer das unterdrücken möchte, --no-browser.

Struktur, Inhalt, Abfrage, Import und Export: die Reiter der Oberfläche

Die Weboberfläche gliedert sich in Reiter. Der Struktur-Reiter zeigt Spalten, Indizes, Trigger und Fremdschlüssel einer Tabelle und erlaubt das Anlegen, Umbenennen und Löschen von Spalten und Indizes, einschließlich Unterstützung für ältere SQLite-Versionen, die ALTER TABLE nur eingeschränkt beherrschen. Der Inhalt-Reiter listet die Tabellendaten; Links in den Kopfzeilen sortieren, Fremdschlüssel erscheinen als klickbare Verweise, und Zeilendaten lassen sich leicht kopieren.

Der Abfrage-Reiter führt benutzerdefinierte SQL-Abfragen aus, mehrere in einem Durchgang, mit Ergebnistabelle je Abfrage; datenverändernde Abfragen melden die Anzahl betroffener Zeilen. Der Import-Reiter nimmt CSV- und JSON-Dateien an und kann für nicht erkannte Schlüssel in der Importdatei automatisch Spalten erzeugen. Der Export-Reiter gibt Daten als JSON oder CSV aus, wahlweise vollständig oder auf eine Teilmenge der Spalten begrenzt. Grundlegende INSERT-, UPDATE- und DELETE-Operationen werden unterstützt.

Datenbanken zur Laufzeit laden mit --enable-load und --enable-filesystem

Eine Besonderheit von sqlite-web ist das Nachladen von Datenbanken im Betrieb. Standardmäßig arbeitet das Tool nur mit den beim Start übergebenen Dateien. Mit der Option --enable-load werden zusätzliche Datenbanken zur Laufzeit per Upload geladen oder wieder entladen; --upload-dir bestimmt das Zielverzeichnis für Uploads, sonst kommt ein System-Tempverzeichnis zum Einsatz.

Die Variante --enable-filesystem geht weiter: Sie erlaubt das Laden von Datenbanken durch Angabe eines Pfades auf der Festplatte. Das README versieht genau diese Option mit dem Warnhinweis Be careful with this, und das aus gutem Grund: Wer einen solchen Server außerhalb des lokalen Rechners betreibt, gibt damit jedem mit Zugriff auf die Oberfläche eine Brücke ins Dateisystem. Für den privaten Gebrauch auf localhost ist das unkritisch, für geteilte Server lohnt eine Abwägung.

Kommandozeilenoptionen von --read-only bis --base64

Die Optionenliste des Befehls sqlite_web ist lang und praktisch. -p und -H setzen Port und Host, Standard ist 8080 auf 127.0.0.1. -r öffnet die Datenbank im Nur-Lese-Modus, was für Recherche in fremden Datenbeständen die sicherste Einstellung ist. Die Seitengrößen lassen sich mit --rows-per-page, Standard 50, und --query-rows-per-page, Standard 1000, anpassen; --no-truncate schaltet die Ellipsen für lange Textwerte ab.

Für Datenformate und Erweiterung gibt es eigene Schalter: -B zeigt BLOB-Daten als Base64 statt als Hex, -e lädt eine oder mehrere SQLite-Erweiterungen, wobei der Schalter je Erweiterung wiederholt wird. -f aktiviert das Fremdschlüssel-Pragma, -u setzt ein URL-Präfix wie /sqlite-web, und ein Startup-Hook per -s initialisiert die Verbindung vor jeder Anfrage; das README nennt als Form my.module.some_callable, das eine SqliteDatabase-Instanz übergeben bekommt. Ein Passwortschutz steht per --password bereit oder über die Umgebungsvariable SQLITE_WEB_PASSWORD.

SSL-Betrieb mit --ssl-cert, --ssl-key und --ad-hoc

Wer die Weboberfläche über das Netzwerk erreichbar macht, findet zwei SSL-Wege im README. Der erste ist klassisch: --ssl-cert und --ssl-key verweisen auf ein Zertifikat und einen privaten Schlüssel. Der zweite ist der bequeme Weg für den schnellen Start: --ad-hoc erzeugt einen Ad-hoc-SSL-Kontext auf der Stelle, benötigt dafür aber das cryptography-Paket, das sich mit pip install sqlite-web[ssl] mitinstallieren lässt.

Diese Optionen, kombiniert mit Passwortschutz und --read-only, ergeben eine brauchbare Absicherungsreihenfolge für den Betrieb außerhalb des lokalen Rechners: Verschlüsselung über einen der SSL-Wege, Zugangsschutz über das Passwort, und wenn nur Browsing geplant ist, der Nur-Lese-Modus. Das README dokumentiert alle drei Bausteine, ordnet sie aber nicht als Sicherheitskonzept an; die Bewertung bleibt beim Nutzer.

Docker-Image über ghcr.io und eigene Builds

Für containerisierten Betrieb liegt dem Projekt ein Dockerfile bei, abgelegt unter docker/Dockerfile. Der schnellste Weg nutzt die GitHub Container Registry: docker run -it --rm -p 8080:8080 -v /path/to/your-data:/data ghcr.io/coleifer/sqlite-web:latest db_filename.db. Wer selbst bauen will, führt docker build -t coleifer/sqlite-web -f docker/Dockerfile . vom Repository-Stamm aus und startet anschließend dasselbe Kommando mit dem eigenen Image.

Kommandozeilenoptionen lassen sich beim Docker-Aufruf unverändert anhängen. Das README zeigt als Beispiel das URL-Präfix: db_filename.db --url-prefix="/sqlite-web/", nützlich, wenn die Anwendung hinter einem Reverse-Proxy unter einem Unterverzeichnis laufen soll. Das Datenvolumen kommt über den Volume-Mount aus dem Verzeichnis your-data, die Datenbankdatei wird dem Container als Argument mitgegeben.

MIT-Lizenz und der Wartungsstand von sqlite-web

sqlite-web steht unter der MIT-Lizenz; die LICENSE-Datei des Repositorys nennt Charles Leifer als Urheberrechtsinhaber. Die Lizenz erlaubt Nutzung, Kopieren, Modifikation, Zusammenführung, Veröffentlichung, Vertrieb, Unterlizenzierung und Verkauf, sofern Urheberrechtshinweis und Genehmigungstext übernommen werden, und stellt die Software ausdrücklich ohne Garantie.

Zum Wartungsbild: 4151 Sterne bei 401 Forks und null offene Issues sprechen für ein kleines, stabiles Werkzeug, das seit Jahren in der Python-Welt als praktischer Begleiter für SQLite-Bestände etabliert ist. Wer es einsetzt, verankert keine Infrastruktur, sondern startet bei Bedarf einen Prozess und beendet ihn wieder. Genau diese Unverbindlichkeit, zusammen mit der Nutzung der Original-Datenbankdatei ohne Export in ein Eigenformat, ist der eigentliche Entwurfskern des Projekts.

Redaktionelles Fazit

sqlite-web eignet sich für alle, die gelegentlich in SQLite-Datenbestände hinschauen oder sie klein editieren wollen, ohne sqlite3 auf der Kommandozeile zu bedienen: pip install sqlite-web, dann sqlite_web mit dem Datenbankpfad, fertig ist der Browser unter localhost:8080. Wer zusätzliche Datenbanken zur Laufzeit hochladen will, startet mit --enable-load, für Dateisystemzugriffe mit --enable-filesystem, wobei das README selbst vor Letzterem warnt. Die Lizenz ist MIT, das Projekt von Charles Leifer steht mit 4151 Sternen bei keinen offenen Issues.

Offizielle Quellen

  1. Official README
  2. Project repository
Community-Notizen

Community-Notizen