1. Einführung & Philosophie
BenzStore ist ein unabhängiger, datenschutzfreundlicher AppStore für Linux, Windows und Android. Entwickelt für das Jeremy Benz Open-Source-Ökosystem, löst er traditionelle Paketmanager-Abhängigkeiten und langsame, JAR-signierte F-Droid-Builds durch ein transparentes, kryptografisch verifiziertes JSON-Feed-System ab.
Zero Telemetry
Kein Tracking, keine Analyse-Frameworks, keine Registrierung. Weder im Desktop-Client noch in der Android-App.
Single-Binary Deployments
Kompakte Go-Executables ohne dynamische Runtime-Abhängigkeiten auf Windows (CGO=0) und schlanke WebKitGTK-Integration unter Linux.
SHA-256 Integrität
Jeder Download wird vor der Ausführung oder Installation strikt gegen kryptografische SHA-256-Prüfsummen abgeglichen.
2. Architektur & Sicherheit
BenzStore ist strikt nach dem Zero-Trust- und Zero-Dummy-Security-Prinzip aufgebaut. Die Anwendung gliedert sich in drei Kernkomponenten:
- Lokaler Embedded Web-Server (Go): Startet auf
127.0.0.1auf einem dynamischen Port mit kryptografischem Einweg-Sicherheitstoken. Verhindert CSRF-Angriffe aus fremden Browser-Tabs. - GUI Rendering: Verwendet native Plattformkomponenten – WebKitGTK unter Linux und MS Edge WebView2 unter Windows. Dadurch bleibt das Binary unter 12 MB (im Vergleich zu 150 MB+ Electron-Apps).
- Verteilter Content-Feed: GitHub Raw Content und GitHub Pages dienen als hochverfügbares CDN für Anwendungs-Metadaten und Binärdateien.
Downloads werden in temporäre Puffer geschrieben und erst nach erfolgreicher SHA-256-Verifikation in das Zielverzeichnis verschoben bzw. an den Android PackageInstaller übergeben.
3. Linux Desktop & CLI
Auf modernen Linux-Distributionen (Ubuntu, Debian, Fedora, Arch) läuft BenzStore entweder als vollwertige native Desktop-Applikation oder als CLI-Tool.
Systemvoraussetzungen
Für den grafischen Desktop-Modus wird WebKit2GTK 4.1 benötigt:
sudo apt update && sudo apt install -y libwebkit2gtk-4.1-0
Direkte Installation
Lade das vorkompilierte Standalone-Binary herunter und mache es ausführbar:
curl -sSL -o benzstore "https://raw.githubusercontent.com/benzjeremy/benzstore/content/linux/benzstore/benzstore-linux-amd64"
chmod +x benzstore
sudo mv benzstore /usr/local/bin/
benzstore --version
4. Windows Desktop
Unter Windows 10 und Windows 11 nutzt BenzStore den vorinstallierten Microsoft Edge WebView2 Controller im schlanken App-Modus. Es sind keine Administrator-Rechte oder Installer-Routinen erforderlich.
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/benzjeremy/benzstore/content/windows/benzstore/benzstore-windows-amd64.exe" -OutFile "benzstore.exe"
Start-Process .\benzstore.exe
5. Android APK & F-Droid
Für Android-Geräte stehen zwei Installationspfade zur Verfügung:
- Direkt-Installation: Die APK herunterladen und über den Android PackageInstaller installieren (Unbekannte Quellen aktivieren).
- MyFDroid Repository: Trage das offizielle Jeremy Benz F-Droid Repository in F-Droid oder Droid-ify ein:
https://benzjeremy.github.io/myfdroid/fdroid/repo
6. Feed-Spezifikation (JSON)
BenzStore liest den zentralen Feed von content/feed.json ein.
Jede App wird über eindeutige Identifier definiert:
{
"id": "com.benzjeremy.untis-go",
"name": "Untis-Go",
"summary_de": "Moderne, native Stundenplan-App für WebUntis...",
"summary_en": "Modern native timetable app for WebUntis...",
"platforms": ["linux", "windows"],
"latest_version": "2.3",
"versions": [
{
"version": "2.3",
"release_date": "2026-09-11",
"downloads": {
"linux": {
"url": "https://raw.githubusercontent.com/...",
"filename": "untis-go_2.3",
"sha256": "20dab4f7d3f336da17de89ba6cc4842781014d2c7ed94df6941bcedfb586fa53",
"size": 16666616
}
}
}
]
}
7. CLI-Referenz & Automatisierung
Im Terminal kann BenzStore komplett skriptgesteuert ohne Fenster aufgerufen werden:
# Übersicht aller Befehle
benzstore --help
# App-Katalog im Terminal auflisten
benzstore list
# Bestimmte App installieren (z. B. Untis-Go)
benzstore install untis-go
# Alle installierten Jeremy-Benz-Apps aktualisieren
benzstore update --all
# Status und Integrität prüfen
benzstore verify untis-go
8. FAQ & Bekannte Probleme
Warum wird kein Electron verwendet?
Electron bündelt eine vollständige Chromium- und Node.js-Laufzeitumgebung und verbraucht oft über 200 MB RAM pro Prozess. BenzStore verwendet pure Go-Routinen in Kombination mit nativen System-Webviews (WebKitGTK auf Linux, WebView2 auf Windows), was zu extrem niedriger Speicherlast (< 25 MB) und blitzschnellen Startzeiten führt.
Wie verifiziere ich eine Binärdatei manuell?
Du kannst die SHA-256 Prüfsumme jederzeit mit Bordmitteln abgleichen:
sha256sum benzstore-linux-amd64
# Vergleiche die Ausgabe mit der Tabelle auf der Startseite oder im feed.json