Proxy- und Verwaltungsservice fuer private REDAXO Addons auf GitHub.
Dieses Projekt ist die Server-/Proxy-Seite.
Fuer die Installation und Updates im REDAXO-System wird zusaetzlich das AddOn client_installer benoetigt.
- Ohne
client_installerkann der Proxy zwar Pakete und Versionen liefern, aber keine AddOn-Installation im Zielsystem ausfuehren. client_installernutzt die API dieses Proxys (packages,versions,download) fuer den eigentlichen Installations- und Update-Flow.
- Admin Area fuer Kunden und Sponsoren
- Dynamische GitHub-Bereiche (Owner/Orgs beliebig hinzufuegen)
- Eigene Settings-Seite fuer GitHub-Bereiche und Branding
- Freigabe-Matrix: welches Repo fuer welchen Kunden erlaubt ist
- API-Tokens pro Kunde mit Rotation
- Proxy-API fuer AddOn-Installation und Updates
- Download-Streaming aus privaten GitHub-Repositories
- Modernes UI mit Light/Dark/Auto Theme, Sponsoren-Highlight, Brandingfarben und Logo
- In dieses Verzeichnis wechseln.
- Optional:
composer install - Browser auf
.../installer/install.phpoeffnen. - Datenbank eintragen (MySQL/MariaDB).
- Admin-Konto anlegen.
- Im Adminbereich mindestens einen GitHub-Owner mit Token hinterlegen und private Repositories synchronisieren.
- Kunden/Sponsoren anlegen und pro Benutzer die erlaubten Repositories freigeben.
- Im Ziel-REDAXO das AddOn
client_installerinstallieren und mit diesem Proxy verbinden.
Fuer lokale Entwicklung ist ein Docker-Setup enthalten (docker-compose.yml).
- Docker Desktop oder Docker Engine + Compose
-
In den Projektordner wechseln.
-
Container starten:
docker compose up -d --build
-
Setup im Browser aufrufen:
http://localhost:8088/install.php
-
Im Setup diese DB-Werte verwenden:
- Host:
db - Port:
3306 - Datenbank:
klxm_installer_proxy - Benutzer:
klxm - Passwort:
klxm
- Host:
-
Danach Login unter:
http://localhost:8088/index.php?route=login
config.phpwird absichtlich nicht versioniert.- Bei Docker-Entwicklung wird
config.phpdurch den Setup-Prozess erzeugt. - Das Volume
db_dataspeichert den MariaDB-Stand persistent.
# Logs anzeigen
docker compose logs -f
# Container stoppen
docker compose down
# Container + DB-Volume entfernen (Reset)
docker compose down -vDer typische Ablauf ist:
- Admin pflegt Owner-Token und Repo-Freigaben im KLXM Installer Proxy.
- Kunde/Sponsor erhaelt eigenen API-Token aus dem Proxy.
client_installerim Zielsystem nutzt den API-Token und ruft die Proxy-Endpunkte auf.- Der Proxy liefert Versionen und ZIP-Downloads aus privaten GitHub-Repositories aus.
client_installerinstalliert/aktualisiert das AddOn im REDAXO-System.
Bearer Token via Authorization: Bearer klxm_xxx
GET /installer/index.php?route=api/v1/packagesGET /installer/index.php?route=api/v1/versions&owner=KLXM&repo=mein_repoGET /installer/index.php?route=api/v1/download&owner=KLXM&repo=mein_repo&ref=v1.2.3
- Admins, Kunden und Sponsoren melden sich mit eigenem E-Mail/Passwort-Konto an.
- Kunden und Sponsoren sehen nur ihre freigegebenen privaten Repositories und koennen eigene API-Tokens rotieren.
- Admins koennen ausserdem fuer Kunden/Sponsoren neue Tokens erzeugen.
Das Datenmodell fuer Passkeys ist enthalten (passkeys Tabelle). Fuer produktionsreife WebAuthn-Verifikation empfiehlt sich die Aktivierung mit einer spezialisierten Bibliothek oder einem zentralen Identity-Provider (z. B. Keycloak mit Passkey/WebAuthn).
- GitHub-Zugriff bleibt serverseitig.
- Kunden erhalten nur eigene API-Tokens.
- Freigaben werden strikt pro Kunde und Repository geprueft.
- Token-Hashes werden gespeichert, nie Klartext.
- Audit-Log fuer Admin- und Sicherheitsereignisse.