Die zentrale Einstellungs-Seite (/admin/config.php) bündelt alle
Laufzeit-Settings der Instanz. Links wählst Du eine Sektion, rechts
stehen die Felder mit einer kurzen Hilfe direkt darunter. Du brauchst
das Recht admin.config.
Die Sektionen sind zweigeteilt:
- Editierbar (DB) — hier änderst und speicherst Du Werte direkt.
- Read-only (.env) — Server-Geheimnisse aus
config/.env, nur zur Ansicht (Passwörter maskiert). Geändert werden sie im Setup-Wizard oder direkt in der Datei.
ℹ️ Änderungen greifen sofort — beim nächsten Seitenaufruf sind sie aktiv, es gibt keinen Cache. Ausnahme: Branding-Assets (Logo, Favicon) cachen Browser; ein Hard-Reload (Strg+F5) zeigt sie sofort.
Editierbare Sektionen (DB)
Alarmverarbeitung
Steuert den Cron-Mail-Abruf, das Anlegen von Einsätzen aus Leitstellen-Mails und die Parser-Patterns:
- Alarmpush aktiv — Master-Schalter. Aus:
cron.php& Co. liefern 503, die Aktions-Kachel „Alarmpush jetzt ausführen" verschwindet, alle übrigen Felder dieser Sektion sind wirkungslos. - ETB-Einträge erstellen für — bei welchen Mailtypen ein Einsatz angelegt wird (Alle / Nur AlarmMails / Nur Unwettermails).
- Tagalarm (Beginn, Ende Mo–Do, Ende Fr) — Zeitfenster, in dem das Tagalarm-Flag gesetzt wird (Mo–Fr).
- Auto-Reset (aktiv, Wochentag, Stunde, Minute) — leert einmal pro Woche alle Einsätze + Anhänge zur gesetzten Zeit.
- Mail-Subject: Alarm / Unwetter — Subject-Marker (case-sensitive), an denen Alarm- bzw. Unwetter-Mails erkannt werden.
- Parser: Segment-Straßen — komma-getrennte Straßen-Kennungen (z. B.
L158,K58), bei denen das Segment-Feld aus der Mail übernommen wird. - IuK: LG-Match / Stichwort-Keyword / Stichwort-Regex — Kriterien, ab denen ein Alarm als IuK-Alarm gilt (löst den Telegram-IuK-Push aus).
Unter dieser Sektion steht eine Anleitung zum Auslösen der Mail-Verarbeitung (manuell über die Aktions-Kachel oder per Server-Cron) inklusive fertiger Crontab-Beispiele. Mehr unter Cron & Mail-Verarbeitung.
Telegram
- Telegram aktiv — Master-Schalter. Aus: kein Versand, der Webhook liefert 503, und Selbsttest/Webhook-Status/Templates verschwinden im Admin-Menü.
- Debug-Modus — leitet alle Telegram-Nachrichten in den Debug-Chat um. Praktisch zum Testen, ohne den Alarmkanal zu spammen.
Bot-Token und Chat-IDs selbst stehen read-only unter Telegram (Bot) (siehe unten); die Nachrichten-Vorlagen pflegst Du in den Telegram-Templates.
Geocoding & Karte
- Adress-Suffix — wird an jede Nominatim-Anfrage angehängt (Format „PLZ Stadt"), damit unscharfe Adressen in Deiner Region landen. Einzelne Orte können dieses Standard-Suffix mit einem eigenen Adress-Suffix überschreiben — z. B. für Orte außerhalb der eigenen Gemeinde (siehe Orte).
- Land — Default-Land.
- Karte: Center Lat / Center Lng / Default-Zoom — Startpunkt und Zoom aller Karten (Lagekarte, Hydrantenplan, Vorschau). 13 ≈ Gemeinde-Übersicht, 16 ≈ einzelne Straße.
Features & Regionale Dienste
Optionale Bausteine, die Du je nach Region zu- oder abschaltest:
- TIM-Online (Kataster) + URL-Template — NRW-Kataster-Dienst; aus: der TIM-Link verschwindet aus Telegram-Nachrichten und Einsatz-Detail.
- Digitaler Zwilling NRW — schaltet den Karten-Link „DZ" zum Digitalen Zwilling NRW (dz.nrw.de) in der Einsatz-Detailseite (zwischen TIM und HYD) und in der Telegram-Nachricht. NRW-spezifisch; Feuerwehren außerhalb von NRW schalten ihn aus, dann verschwindet der DZ-Link überall. Die nötigen UTM-Koordinaten (EPSG:25832) berechnet das ETB automatisch aus den GPS-Daten — nichts einzutragen.
- OSM-Suche-Link — generischer OpenStreetMap-Suchlink.
- Hydrantenplan-Modul — schaltet den Hydrantenplan (aus eigener GeoJSON-Datei, gepflegt unter Hydrantenplan verwalten). Aus: das Sidebar-Menü „Hydrantenplan", die HYD-Buttons und der Telegram-Link verschwinden. (Die frühere Google-MyMaps-ID gibt es nicht mehr.)
Kurz-Standort (Plus Code / what3words)
Kompakte Standort-Kürzel je Einsatz, automatisch aus den GPS-Koordinaten abgeleitet — zusätzlich zur Adresse. Zwei Anbieter, einzeln zuschaltbar und beide standardmäßig aus:
- Plus Codes (Open Location Code) — Google Plus Codes, komplett offline
berechnet: kein API-Schlüssel, keine Kosten, kein externer Abruf. Aktiv
erscheint der Code in Einsatz-Übersicht und
-Detail (dort als Link auf
plus.codes) und lässt sich im Bearbeiten-Formular als Standort-Quelle eingeben. - what3words — schon ohne Schlüssel nutzbar: Du kannst die drei Wörter
(z. B. den vom Anrufer genannten Wert) von Hand eintragen; sie werden
angezeigt und als Link auf
what3words.comverlinkt — kostenlos, kein Abruf. Ein kostenpflichtiger API-Schlüssel (siehe Panel unten) schaltet zusätzlich die automatische Umwandlung aus den Koordinaten, den Live-Check, das Kontingent und den Pro-Einsatz-Deckel frei; dann zählt jeder automatische Abruf gegen Dein Kontingent. Ein von Hand eingetragener Wert bleibt bei einer Koordinaten-Änderung stehen (er wird ohne Schlüssel nicht automatisch neu berechnet) — der Plus Code bleibt das immer-aktuelle Gegenstück daneben. - Primär-Format (Übersicht) — welches der beiden Formate die Einsatz-Übersicht anzeigt (nur eines, damit die Zeile lesbar bleibt: Plus Code oder what3words). Die Detailseite zeigt immer beide aktiven Formate.
- what3words Monatslimit — Dein Plan-Kontingent pro Monat, nur zur
Anzeige und Warnung.
0= kein Limit hinterlegt. Ab 80 % Verbrauch warnen System-Status und Tages-Heartbeat. Es gibt keinen globalen Not-Aus — dieser Zähler informiert nur, er stoppt keine Abrufe. (Gegen das gezielte Leerlaufen an einem Einsatz schützt stattdessen der Pro-Einsatz-Deckel, siehe nächster Punkt.) - what3words Deckel pro Einsatz — wie oft what3words für einen Einsatz
aus (wechselnden) Koordinaten neu abgerufen werden darf, bevor der Wert
eingefroren wird — der Kostenschutz gegen wiederholtes Neusetzen der
Koordinaten (ob manuell oder automatisch). Danach bleibt der zuletzt
ermittelte what3words-Wert stehen; Plus Code und GPS laufen normal weiter.
In der Geocode-Liste erscheint dann ein „!" am Eintrag;
ein manuelles Überschreiben dort setzt den Zähler zurück.
0= kein Deckel, Empfehlung 5.
Unter den Feldern sitzt das Panel „what3words — API-Schlüssel & Kontingent":
- API-Schlüssel (
.env) — zeigt maskiert, ob ein Schlüssel hinterlegt ist. Ist what3words eingeschaltet, aber kein Schlüssel gesetzt, warnt ein Banner: Der Dienst braucht einen kostenpflichtigen Plan (developer.what3words.com). - Verbindungstest — der Knopf „Schlüssel jetzt prüfen" ruft die what3words-API einmal mit einer festen Prüf-Koordinate auf und meldet, ob der Schlüssel einsatzbereit ist, ungültig (HTTP 401) oder zwar gültig, aber der Plan keine Umwandlung erlaubt (HTTP 402 — der Gratis-Plan kann die Umwandlung seit dem 25.11.2024 nicht). Das ist 1 realer Aufruf bei what3words — er zählt aber nicht gegen den lokalen Monatszähler.
- Verbrauch — die Aufrufe des laufenden Monats (und, falls gesetzt, das Limit). Der Zähler beginnt bei jedem Monatswechsel neu.
⚠️ Der what3words-Schlüssel ist ein Secret und gehört — wie alle Zugangsdaten — ausschließlich als
W3W_API_KEYinconfig/.env, nie in die Datenbank. Über diese Seite wird er nur (maskiert) angezeigt, nicht gespeichert. Plus Codes brauchen keinen Schlüssel und funktionieren offline.
System
- Debug-Logging — schreibt zusätzlich DEBUG-Einträge ins System-Log.
- Log-Aufbewahrung — Logs älter als X Tage räumt der Heartbeat-Cron täglich auf (0 = nie; Empfehlung 30).
- Personenzählung — schaltet die gesamte Anzahl/Kontakt-Funktion. Aktiv: beim Zuweisen eines EM öffnet sich ein Dialog für Stärke (Zug- und Verbandführer / Gruppenführer / Mannschaft / Gesamt) und Kontakt, und das Einsatz-Detail zeigt diese Werte plus die Summenzeile.
- Max. Abschnitte pro Einsatz — Obergrenze im „Abschnitte bilden"-Modal (Default 5).
- Max. Schwerpunkte aktiv — Obergrenze gleichzeitig aktiver/ pausierter Schwerpunkte (Default 10).
- SP-Dispos beim Reset löschen — wenn aktiv (Default), entfernt der ETB-Reset alle Benutzer mit Rolle „Schwerpunkt-Dispo". Aus, wenn die SP-Dispos erhalten bleiben sollen.
Read-only-Sektionen (.env)
Diese Werte liegen in config/.env auf dem Server und lassen sich aus
Sicherheitsgründen nicht über die Oberfläche ändern — Passwörter
erscheinen maskiert. Die Seite zeigt sie nur, damit Du auf einen Blick
siehst, was hinterlegt ist:
- Datenbank (Server) — Host, Datenbank, Benutzer, Passwort, Tabellen-Präfix.
- IMAP-Postfach — Server, Postfach, Passwort für den Alarm-Mail-Abruf.
- Ausgehender Mailversand (SMTP) — Server, Port, Verschlüsselung,
Benutzer, Passwort, Absender-Adresse und -Name. Für App-Mails, die das
ETB selbst verschickt (aktuell die
„Passwort vergessen"-Mail). Leer = Mailversand
aus → „Passwort vergessen" zeigt dann nur einen Admin-Hinweis. Port
587 = STARTTLS (Verschlüsselung
tls), Port 465 = implizit (ssl). - Telegram (Bot) — Bot-Token, Webhook-Secret und die Chat-IDs.
- Cron-Token — Token, das jeder Cron-Aufruf mitschicken muss.
ℹ️ Damit der Link in der „Passwort vergessen"-Mail klickbar ist, braucht das ETB seine öffentliche Adresse. Setze
org_url(Organisation, gepflegt unter/admin/branding.php) auf die ETB-URL.⚠️ Die
.env-Werte gehören nie ins Repo und werden nicht im DB-Dump gesichert — die.envsicherst Du separat (siehe Backup & Updates).
Backup der Konfiguration
Alle DB-Konfigwerte landen in der Tabelle konfig_hilfsmittel und werden
beim DB-Dump automatisch mitgesichert. Die .env mit den DB-/Mail-/
Telegram-Zugängen ist nicht in der DB — sie sicherst Du separat und
verschlüsselt.
Was als nächstes?
- Stammdaten pflegen — Orte, EM, Löschgruppen
- Telegram — Bot, Webhook, Templates
- Diagnose & Werkzeuge — wenn etwas hakt