Einsatzdokumentation für den ELW.
Offline. Robust. Open Source.
Lagebuch ist das digitale Einsatztagebuch für den Einsatzleitwagen: eine
Desktop-Anwendung, die auch ohne Netz, ohne Cloud und ohne Abo funktioniert.
Ein Einsatz ist eine Datei auf dem ELW-Laptop – mit Einsatztagebuch, Kräften,
Atemschutzüberwachung, Aufgaben, CO-Messprotokoll und PDF-Bericht.
Alles auf einer Seite: codeforfire.github.io –
Übersicht, Probefahrt, Download und Datenschutz, ohne GitHub-Konto und ohne
Markdown.
English speakers: the developer documentation starts at For developers.
Für wen ist Lagebuch?
- ELW-Besatzung und Führungsassistenten, die im Einsatz mitschreiben,
Kräfte führen und die ILS auf dem Laufenden halten – mit der Tastatur, ohne
Maus-Akrobatik.
- Atemschutzüberwachung, die verlässliche Zeiten, Druckabfragen und einen
Rückzugsalarm braucht, den man auch im lauten ELW hört.
- Kleine und mittlere Wehren, die keine Lizenzgebühren, keine Server und
keine IT-Abteilung haben – aber trotzdem sauber dokumentieren wollen.
Warum Lagebuch?
- Läuft offline – wirklich. Kein Internet, kein Konto, kein Server. Jeder
Einsatz ist eine einzelne
.fwincident-Datei, die euch gehört und die ihr
archivieren, kopieren oder weitergeben könnt.
- Keine Daten verlassen den ELW. Stammdaten, Namen und Handynummern
liegen nur auf euren Geräten. Die optionale Mehrgeräte-Verbindung läuft im
LAN oder über Tailscale, TLS-gesichert mit PIN – ohne Cloud, ohne Telemetrie.
Was genau wo gespeichert wird, steht in
Datenschutz und Sicherheit – die Seite
für die Kreisbrandinspektion und den Datenschutzbeauftragten.
- Open Source, MIT-Lizenz. Kein Abo, keine Sitzplatzlizenzen, kein
Vendor-Lock-in. Der Quellcode ist einsehbar, Änderungswünsche sind ein Issue
entfernt.
Was Lagebuch kann
| Modul | Was es tut |
|---|
| Einsatzdaten | Stichwort, bayerische Einsatznummer (B 1.2 JJMMTT lfd.Nr.) und Adresse – nachtragbar, sobald die ILS zurückruft |
| ETB | Einsatztagebuch mit Richtung (Eingang/Ausgang/intern), automatischen Systemeinträgen und nachträglicher Korrektur mit Historie |
| Kräfte | Fahrzeuge aus den Stammdaten, Stärke als ZF/GF/Mann, AGT-Zahl, Status und Bemerkung; Gesamtstärke immer im Blick |
| Aufgaben | Aufträge mit Wichtigkeit, Dringlichkeit, Zuständigem und Timer – mit Sprachansage, wenn sie fällig werden; direkt aus einem ETB-Eintrag anlegbar |
| Funktionen | EL, Abschnittsleiter und weitere Rollen mit von/bis, Übergabe und Handynummer; jede Rolle in den Stammdaten als einmal je Einsatz, einmal je Abschnitt oder beliebig oft einrichtbar |
| Beteiligte | Eigentümer, Fahrzeughalter, Polizei: Name, Telefon und Notiz je Person – synchronisiert, im PDF, bewusst ohne ETB-Eintrag |
| Atemschutzüberwachung | Trupps mit Einstiegsdruck, Einsatzzeit-Countdown, Druckabfrage-Intervall, Rückzugsdruck und Rückzugsalarm – mit Sprachansage und Sirene; Sicherheitstrupp je Trupp zugeordnet und im ETB protokolliert |
| Rückmeldung an ILS | Erinnerung nach konfigurierbarer Zeit, danach im Intervall, mit ERLEDIGT-Quittierung; überlebt Neustart und Absturz |
| CO-Messprotokoll | Haus, Stockwerk, Wohnung: Status (offen / durchsucht / betroffen), Messreihe je Wohnung mit Uhrzeit und ppm-Wert in Gefahrenfarbe, Bewohnername, Schlüssel vorhanden – wie die Türmarkierung vor Ort; der Verlauf steht im ETB und im PDF |
| Checklisten | Beliebig viele eigene Checklisten aus den Stammdaten – benannt, in frei wählbarer Reihenfolge in der Seitenleiste, Pflichtpunkte markiert, Abschluss im ETB protokolliert |
| Dateien & Links | Fotos und PDFs an den Einsatz hängen (landen im Bericht); Schnellzugriff auf Wetter, Karten, Hydrantenplan |
| PDF-Bericht | Ein Klick, Abschnitte wählbar, Anhänge eingebettet – fertig für Akte und Kreisbrandinspektion |
| Mehrere Geräte | Einsatz auf dem ELW-Laptop hosten, mit Tablet oder zweitem Laptop im LAN/Tailscale mitschreiben; Android-App als Begleitgerät |
Mit der Tastatur
Lagebuch lässt sich ohne Maus bedienen. F1 zeigt alle Tastenkürzel, ebenso
das ?-Symbol in der Kopfleiste (auf dem Telefon MEHR → TASTENKÜRZEL).
Die wichtigsten:
| Taste | Wirkung |
|---|
| Strg+1 … Strg+0 | Modul öffnen – fest je Modul, egal wie die Seitenleiste sortiert ist (Strg+1 ETB, Strg+4 Kräfte, Strg+6 Atemschutz) |
| Strg+Tab / Strg+Umschalt+Tab | nächstes / vorheriges Modul der Seitenleiste, auch Checklisten |
| Strg+N | neuer ETB-Eintrag, Cursor im Feld VON |
| F9 | zur dringendsten Meldung: Rückzugsalarm, dann Druckabfrage, fällige Aufgabe, Rückmeldung an die ILS |
Die Kürzel stehen auch in der Seitenleiste und an der Meldung, zu der F9
springt. Solange ein Dialog offen ist, wirkt keines.
Lagebuch im Vergleich
Alle Angaben laut Herstellerseiten, Stand September 2026. Fehler oder
Änderungen? Bitte ein Issue öffnen.
| Lagebuch | Papier | Fireboard | MissionBuddies | fireplan.elw |
|---|
| Ohne Internet voll nutzbar | ja | ja | Desktop-Suite ja; Stammdaten und Ticker über das Cloud-Portal (Quelle) | ja, Abgleich sobald wieder online (Quelle) | ja, als Browser-App (Quelle) |
| Daten bleiben im ELW, kein Cloud-Konto | ja, eine Datei pro Einsatz | ja | nein, „cloudbasierte Lösung“ mit Portal-Benutzerkonto (Quelle) | nein, Cloud mit Servern in Deutschland (Quelle) | k. A. |
| Mehrere Geräte im Einsatz | ja, LAN/Tailscale, TLS-gepinnt, ohne Server | nein | ja, über Portal (Quelle) | ja; gratis auf 2 Geräten, Premium unbegrenzt (Quelle) | ja, live nur mit Internet (Quelle) |
| Atemschutzüberwachung | ja, mit Sprachansage, Rückzugsalarm und Sicherheitstrupp | Überwachungstafel | ja, laut Produktseite (Quelle) | ja, Gratis-Stufe (Quelle) | k. A. |
| CO-Messprotokoll | ja, Messreihe je Wohnung | Zettel | k. A. | k. A. | k. A. |
| PDF-Einsatzbericht | ja, Abschnitte wählbar | nein | ja (Quelle) | ja, modulweise Export (Quelle) | k. A. |
| Kosten | 0 €, MIT-Lizenz | Papier | Grundsystem kostenfrei; Module wie Einsatzführung einmalig 600 € zzgl. 90 €/Jahr Wartung (Preisliste 02/2026) | Gratis-Stufe, sonst Abo (Quelle) | auf Anfrage |
| Quellcode einsehbar | ja | – | nein | nein | nein |
| Plattformen | Windows, Linux, macOS; Android als Begleit-App | – | Windows, Linux, macOS; Mobile App iOS/Android | Android, Windows, iOS | jeder Browser (PWA) |
Probefahrt in 5 Minuten
Alle Beispieldaten sind frei erfunden.
- Installieren – Paket für euer System aus den
Releases laden, siehe Installation.
- Stammdaten importieren –
demo-stammdaten.json
herunterladen (Direktlink),
in Lagebuch STAMMDATEN → IMPORTIEREN wählen, Datei öffnen, SPEICHERN.
Jetzt kennen die Dropdowns zwei Wachen, sieben Fahrzeuge, ein paar Namen,
Checklisten und Links.
- Übungseinsatz öffnen –
uebung.fwincident herunterladen
(Direktlink),
in Lagebuch ÖFFNEN wählen. Der Einsatz „B 3 – Zimmerbrand“ hat schon
ETB-Einträge, vier Fahrzeuge, einen Angriffstrupp unter Atemschutz mit
zugeordnetem Sicherheitstrupp, Aufgaben und ein CO-Messprotokoll, in dem
eine Wohnung schon dreimal gemessen wurde. Über WEITER BEARBEITEN könnt ihr selbst eingreifen.
- Ausprobieren – einen ETB-Eintrag schreiben, im Tab ATEMSCHUTZ einen
Trupp bereitstellen, einen Sicherheitstrupp zuordnen und starten, eine
Aufgabe mit Timer anlegen, in der CO-MESSUNG eine Wohnung markieren oder
einen weiteren Messwert eintragen.
- PDF EXPORTIEREN – der fertige Einsatzbericht liegt nach ein paar
Sekunden auf der Platte.
Wenn ihr danach mit euren eigenen Daten weitermachen wollt: Stammdaten
exportieren, masterdata.db löschen (Pfad siehe
docs/master-data.md), eigene Datei importieren.
Installation
Ein Paket pro Plattform liegt bei jedem Release:
| Plattform | Datei |
|---|
| Windows | lagebuch--x64.msi |
| Linux (Debian/Ubuntu) | lagebuch__amd64.deb |
| Android | lagebuch-.apk |
| macOS (Apple Silicon) | lagebuch--macos-arm64.dmg |
Alle Pakete bringen die .NET-Laufzeit mit; es muss nichts weiter installiert
werden.
Unter Windows geht es auch ohne Download über den Windows-Paket-Manager:
winget install CodeForFire.Lagebuch # aktualisieren: winget upgrade CodeForFire.Lagebuch
winget installiert dasselbe .msi aus dem Release, geprüft gegen die im
Paketkatalog hinterlegte SHA-256-Prüfsumme, für alle Benutzer (einmal
Administratorrechte) und ohne SmartScreen-Warnung. Neue Versionen erscheinen
dort erst Stunden bis Wochen nach dem Release.
Die Pakete sind noch nicht signiert, deshalb warnt das Betriebssystem beim
ersten Start einmal:
- Windows – am einfachsten mit winget (siehe oben), dann gibt es keine
Warnung. Sonst
.msi ausführen; erscheint SmartScreen, Weitere
Informationen → Trotzdem ausführen.
- macOS –
.dmg öffnen, Lagebuch nach Programme ziehen, dann einmalig
Rechtsklick → Öffnen (oder xattr -dr com.apple.quarantine /Applications/Lagebuch.app).
Das .dmg wird auf Anfrage gebaut und an das Release angehängt.
- Linux –
sudo apt install ./lagebuch_*.deb. Bitte apt, nicht
dpkg -i: das Paket deklariert seine Systemabhängigkeiten (ICU, fontconfig,
X11-Bibliotheken), die nur apt auflöst. Falls doch dpkg -i:
sudo apt-get -f install räumt auf.
- Android – ab Android 7.0 (API 24);
.apk öffnen und die Installation
aus unbekannten Quellen für diese App einmal erlauben. Die Android-App ist
ein Begleitgerät: sie verbindet sich mit einem Einsatz, der auf einem Laptop
gehostet wird.
Downloads prüfen
Jedem Release liegt SHA256SUMS.txt bei, und jede Installationsdatei trägt
einen Sigstore-Herkunftsnachweis aus dem Workflow-Lauf, der sie gebaut hat:
sha256sum -c SHA256SUMS.txt # Linux, im Download-Ordner
shasum -a 256 -c SHA256SUMS.txt # macOS
certutil -hashfile SHA256 # Windows, mit SHA256SUMS.txt vergleichen
gh attestation verify --repo CodeForFire/lagebuch
SHA256SUMS.txt deckt .msi, .deb und .apk ab. Das .dmg entsteht erst
nach dem Release und bringt deshalb seine eigene Prüfsumme mit:
shasum -a 256 -c lagebuch--macos-arm64.dmg.sha256 # macOS
sha256sum -c lagebuch--macos-arm64.dmg.sha256 # Linux
So lässt sich nachweisen, dass die Datei unverändert aus diesem Repository
stammt – auch solange die Pakete noch nicht signiert sind.
Status
Lagebuch ist in aktiver Entwicklung und noch vor Version 1.0; zwischen
Versionen kann sich das Dateiformat ändern. Das Format ist versioniert: eine
Datei aus einer neueren Version wird mit klarer Meldung abgelehnt statt
beschädigt, ältere Dateien werden beim Öffnen migriert. Alle Änderungen stehen
im CHANGELOG.
Für die Mehrgeräte-Verbindung zählt nicht die App-Version, sondern das
Übertragungsformat: Geräte verbinden sich auch dann, wenn auf ihnen
unterschiedliche Versionen laufen – etwa weil das Android-Update noch in der
Prüfung bei Google Play steckt. Passen die Formate wirklich nicht zusammen,
lehnt die App die Verbindung mit einer klaren Meldung ab und nennt das Gerät,
das aktualisiert werden muss.
Woran wir als Nächstes arbeiten und was Version 1.0 bedeutet, stehen in der
Roadmap – kurz gesagt: ab 1.0 bleibt eine Einsatzdatei dauerhaft
lesbar.
Screenshots
Alle Screenshots zeigen fiktive Daten.
Mitmachen & Kontakt
Lagebuch wird von CodeForFire entwickelt –
Feuerwehrleuten aus Bayern, die im Einsatz selbst damit arbeiten.
- Website mit allen Seiten für Anwender →
codeforfire.github.io.
- Fragen zur Bedienung, zur Installation oder zum ELW-Laptop →
Fragen & Antworten. Dafür
braucht ihr kein Bug-Ticket zu schreiben.
- Feedback aus der Praxis ist das Wertvollste: was fehlt im ELW, was
nervt, was macht Papier heute noch besser? → Ideen
oder direkt ein Issue öffnen.
- Testen auf eurem ELW-Laptop oder bei der nächsten Übung – auch ohne
Programmierkenntnisse. Erzählt davon unter
Aus der Praxis.
- Entwickeln, übersetzen, dokumentieren → CONTRIBUTING.md.
Einstiegsaufgaben mit Anleitung liegen unter
good first issue.
- Datenschutz – welche Daten wo liegen, was übertragen wird, was ihr selbst
regeln müsst und wie ihr alles wieder löscht →
Datenschutz und Sicherheit.
- Sicherheitslücken bitte nicht öffentlich melden → SECURITY.md.
For developers
Lagebuch is an offline-first incident documentation app for fire brigades:
.NET 10 + Avalonia (desktop and Android), SQLite storage (one .fwincident
file per incident), SignalR sync with TLS trust-on-first-use, and
QuestPDF reports. The code and its documentation
are in English, as are issues, pull requests and commit messages; the UI is
German. Conventions, commit rules and the PII policy are in
CONTRIBUTING.md.
Build & Test
The SDK version is pinned in global.json. Building the Android head
additionally needs the .NET Android workload and a JDK ≤ 21 (newer JDKs are
rejected with XA0030; use the Docker build in docker/):
dotnet workload install android # once per machine, Android head only
dotnet build # or: make build (desktop only, skips Android)
dotnet test # or: make test
Run
dotnet run --project src/LageBuch.App/LageBuch.App.csproj # or: make run
Common tasks
A Makefile wraps the commands above plus the Android, packaging and
documentation ones. Run make for the full list:
make build # everything except the Android head
make test # PROJECT=... and/or FILTER=... to narrow
make run # the desktop app
make apk # build an installable APK in Docker
make run-android # boot the emulator, install and launch
make package-linux # build a local .deb
make samples # regenerate docs/samples/uebung.fwincident
make screenshots # regenerate docs/screenshots/*.png (headless Skia harness)
make demo-gif # rebuild docs/demo/einsatz-flow.gif from the screenshots
Master data
Dropdown contents (roles, vehicles, personnel, checklists, links) are never
compiled into the app: a fresh install starts empty and is populated by
importing a JSON file in the Stammdaten editor. The full description, storage
paths, and the PII rules are in docs/master-data.md;
the schema is documented by docs/master-data.example.json.
Releasing
Pushing a version tag builds and publishes the packages; see
docs/releasing.md.
License
MIT