Dokumentation durchblättern
Entwickler- und Betriebs-Dokumentation
Technische Dokumentation für Schneespur: eigene Module entwickeln und die Software selbst betreiben. Neutrale Referenz, keine Verkaufstexte.
Das Modulsystem ist verfügbar (seit Version 1.1.0): Module registrieren ihre Fähigkeiten über einen ServiceProvider in den Core-Registries, ohne Core-Dateien zu verändern. Diese Dokumentation beschreibt das real vorhandene System.
Eine öffentliche REST-API ist geplant, aber noch nicht verfügbar — sie bekommt eine eigene Referenz, sobald sie existiert. Diese Seiten erfinden keine Funktionen, die es noch nicht gibt.
Module entwickeln
Wie Sie eigene Module für Schneespur bauen: Architektur, Lebenszyklus, das Manifest, der ServiceProvider und die Registries, über die ein Modul Fähigkeiten anmeldet — ohne Core-Dateien anzufassen.
- Schnelleinstieg Schritt für Schritt ein lauffähiges Modul von Grund auf bauen: Verzeichnis, Manifest, ServiceProvider, Controller, Views, Migration und Übersetzungen — bis zum aktivierten Modul.
- Architektur Wie das Schneespur-Modulsystem aufgebaut ist: Tech-Stack, das Zwei-Marken-Modell, die Verzeichnisstruktur und das Registry-Prinzip, auf dem jede Erweiterung beruht.
- Lebenszyklus Wie Module gefunden, geladen, gebootet, aktiviert, deaktiviert, aktualisiert und entfernt werden — und worauf Sie bei Routen- und Config-Caching achten müssen.
- Manifest (module.json) Die module.json definiert Identität, Einstiegspunkt und Abhängigkeiten eines Moduls. Vollständiges Schema, alle Felder, Namenskonventionen und lokalisierte Namen.
- ServiceProvider Der ServiceProvider ist der einzige Einstiegspunkt eines Moduls. Register- gegen Boot-Phase, Views und Übersetzungen laden, Einstellungen registrieren — mit Beispielen.
- Registries Die vollständige Referenz aller Erweiterungs-Registries mit Methoden und Beispielen — von Navigation und Dashboard-Widgets über Benachrichtigungs-Kanäle bis zu Wetter, Speicher, PDF und geplanten Aufgaben.
- Interfaces Die Interfaces, über die ein Modul austauschbare Fähigkeiten bereitstellt — Dispatch, Benachrichtigungen, Wetter, PDF, Backup und mehr, jeweils mit Beispiel und Registrierung.
- Events Schneespur löst im Betrieb fachliche Events aus; Module hängen sich daran, um auf Zustandsänderungen zu reagieren, ohne Core-Dateien anzufassen.
- Filter-Hooks Die FilterRegistry erlaubt Modulen, Daten an festen Punkten im Core zu verändern — mit Prioritäten, Fehlerschutz und eigenen Hooks.
- Template-Slots Über Template-Slots fügt ein Modul Blade-Inhalte an festen Punkten der Layouts ein, ohne Core-Views zu verändern — mit append, replace und Berechtigungsprüfung.
- Navigation & Dashboard Wie ein Modul Menüpunkte in Admin- und Kundenportal sowie Widgets auf das Dashboard bringt — Übersetzungs-Schlüssel, Icon-Format und der routeCheck gegen 500er-Fehler.
- Berechtigungen & Rollen Wie Schneespur Zugriffe steuert: granulare Berechtigungen, benannte Rollen und der Admin-Bypass — und wie ein Modul eigene Berechtigungen registriert und prüft.
- Routen & APIs Wie ein Modul eigene Web-Routen, Portal- und Fahrer-Seiten sowie token-authentifizierte API-Endpunkte registriert — mit Namenskonventionen, Middleware und Beispielen.
- Datenbank & Migrationen Wie Module eigene Tabellen anlegen, warum jede Tabelle ein mod-Präfix trägt und wie Sie die 64-Zeichen-Grenze von MySQL umgehen, die in den Tests unsichtbar bleibt.
- Assets & Frontend Wie ein Modul eigenes CSS und JavaScript ausliefert: Manifest, Symlink, Blade-Direktive und der Weg über Tailwind ohne eigenes CSS.
- Übersetzungen Wie ein Modul Übersetzungsdateien anlegt, Schlüssel statt Texte an Registries übergibt, marken-neutrale Texte schreibt und eigene UI-Sprachen über die LocaleRegistry registriert.
- Benachrichtigungen Wie Schneespur abgeschlossene Einsätze über kanalbasierte Benachrichtigungen meldet und wie ein Modul einen eigenen Kanal wie Telegram oder SMS ergänzt.
- Speicher & Backup Wie Module über StorageBackendRegistry und BackupTargetRegistry zusätzliche Speicher- und Backup-Ziele anmelden — mit Fallback-Verhalten, Beispielen und Regeln für sicheren Dateizugriff.
- Wetter & Zeitplanung Wie Module eigene Wetter-Provider und zeitgesteuerte Aufgaben bereitstellen — austauschbare WeatherProvider, das WeatherData-Objekt und der ScheduledTask mit Cron-Ausdruck und Lauf-Protokoll.
- PDF & Berichte Wie Module PDFs erzeugen und eigene Berichtsformate beisteuern — über die PdfRendererRegistry und die ReportFormatRegistry, mit lauffähigen Beispielen.
- Diagnose & Logging Wie Module über den ModuleLogger nachvollziehbare Log-Einträge schreiben und über Diagnostic-Reporter Fehler an externe Dienste melden — mit Beispielen und Best Practices.
- Portal & Dashboards Das Kundenportal als Referenzmuster für rollenspezifische Dashboards — und wie ein Modul eigene, abgesicherte Bereiche mit Guard, Middleware, Layout und Routen aufbaut.
- Kern-Datenmodell Die Datenbank-Modelle des Kerns — Customer, Job, User, WorkShift und mehr — mit ihren Feldern, Beziehungen und dem direkten Zugriff aus einem Modul.
- Öffentliche Startseite & SEO Eine öffentliche Startseite unter / ausliefern und einzelne Seiten gezielt für Suchmaschinen freigeben — über die PublicHomepageRegistry, mit default-deny als Grundzustand.
- Signierung & Verteilung Wie Module als signierte Pakete über einen Katalog-Server verteilt, geprüft und installiert werden — Trust-Kette, Sync-Prozess und Hinweise für Modul-Herausgeber.
- Beispielmodul Das mitgelieferte Referenzmodul unter modules/example/ zeigt jeden Erweiterungspunkt an lauffähigem Code — dieser Leitfaden erklärt Aufbau und Hintergrund Abschnitt für Abschnitt.
Betrieb & Self-Hosting
Wie Sie Schneespur selbst betreiben: technische Voraussetzungen und der Weg zu einer laufenden Installation auf eigenem Webhosting.
- Systemvoraussetzungen Was ein Webhosting mitbringen muss, damit Schneespur darauf läuft: PHP-Version, Datenbank, PHP-Erweiterungen, Cron-Unterstützung — und was ausdrücklich nicht nötig ist.
- Installation Kompakte Operator-Referenz zur Installation von Schneespur auf eigenem Webhosting: Reihenfolge, das public-Folder-Prinzip, der Cron-Job und die Schritte nach der Ersteinrichtung.
- OwnTracks / GPS Wie die GPS-Erfassung technisch angebunden wird: die kostenlose OwnTracks-App, der HTTP-Endpunkt, fahrerspezifische Zugangsdaten per QR-Code und die Zuordnung von Fahrzeugen.
- Updates & Cron Wie Schneespur im laufenden Betrieb aktuell bleibt: das integrierte Auto-Update-System mit seinen kryptographischen Prüfungen und der eine Cron-Job, der alle Hintergrundaufgaben steuert.
- Datenhoheit & Umzug Was Self-Hosting für die Daten konkret bedeutet: offene MySQL-Datenbank, Export als CSV, PDF und Datenbankdump, Löschen und Anonymisieren, der unveränderliche Audit-Trail und der Umzug auf einen anderen Server.
Der vollständige Quellcode liegt offen auf GitHub (AGPLv3). Wer eine Funktion im Detail nachvollziehen will, findet dort die maßgebliche Referenz.