Lyndrix Core ist der zentrale Runtime-Core für modulare Internal-Platform-Workloads auf Basis von FastAPI, NiceGUI, MariaDB und HashiCorp Vault.
- Boot-Orchestrierung mit Zustandsphasen (
waiting_core→loading_modules→ready) - Vault-first Secret Handling mit Auto-Init/Auto-Unseal (optional über
LYNDRIX_MASTER_KEY) - Persistente Plugin-Lifecycle-Steuerung (Install, Aktivieren/Deaktivieren, Reload, Uninstall)
- GitHub-basierte Plugin-Installation inkl. Versionstags und sicherer ZIP-Extraktion
- Plugin-Abhängigkeiten mit Vendor-Ordnern (
requirements.txt→vendor/pro Plugin) - Automatische Plugin-Reconciliation über
LYNDRIX_PLUGINS_DESIRED - Auth-Provider-Chain (
local,ldap,oidc+ Plugin-Provider via Bus) - Stabile Plugin-API-Oberfläche über
core.api(__api_version__ = 1.0.0)
Voraussetzungen:
- Docker
- Docker Compose
git clone https://github.com/lyndrix-platform/lyndrix-core.git
cd lyndrix-core
# Optional: docker/.env.dev anpassen
# Stack starten (App + DB + Vault + Docs)
docker compose -f docker/docker-compose.dev.yml up -d --buildDanach:
- App:
http://localhost:8081 - Docs-Preview:
http://localhost:8000
app/main.py: Entry-Point, Middleware, UI/FastAPI-Routingapp/core/bus.py: globaler Event-Bus (subscribe,emit,create_tracked_task)app/core/components/vault/*: Vault-Health, Init/Unseal, Secret-Engine-Setupapp/core/components/database/*: DB-Initialisierung und Reconnect-Watchdogapp/core/components/plugins/*: Plugin-Manager, Plugin-Service, UI
Detailliert: docs/architecture.md
- Plugin-Ordner unter
/app/plugins/<plugin_name>anlegen entrypoint.pymitmanifestundsetup(ctx)erstellen- Optional:
render_settings_ui(ctx)render_dashboard_widget(ctx)teardown(ctx)requirements.txt
- Über Plugin-Manager installieren/aktualisieren oder via
LYNDRIX_PLUGINS_DESIRED
Komplette Anleitung: docs/plugins.md
In app/config.py sind u. a. relevant:
VAULT_URL,LYNDRIX_MASTER_KEYDB_HOST,DB_NAME,DB_USER,DB_PASSWORDLYNDRIX_PLUGINS_DESIRED,LYNDRIX_PLUGINS_AUTO_UPDATELYNDRIX_AUTH_PROVIDERS- LDAP/OIDC Parameter (
LYNDRIX_LDAP_*,LYNDRIX_OIDC_*)
MIT – siehe LICENSE.