So sicherst Du Deine Daten und spielst neue ETB-Versionen ein.
Was Du sichern musst
Drei Sachen, alle drei zusammen — sonst sind die Daten nicht wiederherstellbar:
- Datenbank — alle Einsätze, Schwerpunkte, User, Konfiguration.
storage/uploads/— Anhänge in Kommentaren (Bilder, PDFs, Sprachnachrichten).public/branding/— Dein hochgeladenes Logo und Favicon.
config/.env mit den DB-/Mail-/Telegram-Zugangsdaten ist
sicherheitskritisch. Sichere die separat und verschlüsselt — am besten in
Deinem Passwort-Manager, nicht im selben Backup wie der DB-Dump.
DB-Dump
mysqldump --single-transaction \
--quick \
--routines \
-u etb_user -p etb_db \
| gzip > etb-$(date +%Y%m%d-%H%M).sql.gz
--single-transaction sorgt dafür, dass das Backup einen konsistenten
Snapshot kriegt, ohne die Tabellen zu locken — der Live-Betrieb läuft weiter.
Storage-Backup
tar czf etb-uploads-$(date +%Y%m%d-%H%M).tar.gz \
/var/www/etb/storage/uploads \
/var/www/etb/public/branding
Backup-Frequenz
Empfehlung:
- DB-Dump: täglich nachts, 7 Tage rotieren
- Storage-Backup: täglich oder wöchentlich, je nach Anhang-Volumen
.env: einmal nach jedem Setting-Change in den Passwort-Manager
Für Profis: ein wöchentlicher Vollbackup + tägliche inkrementelle Backups via
rsnapshot o. ä.
Restore — der Ernstfall
- Frische DB anlegen, dann:
zcat etb-20260524-0300.sql.gz | mysql -u etb_user -p etb_neu storage/-Backup zurückspielen:tar xzf etb-uploads-20260524-0300.tar.gz -C /config/.envaus dem Passwort-Manager wiederherstellen, ggf. DB-Name anpassen.- Webserver konfigurieren, Cron neu setzen.
- Test-Login, Test-Mail, alles okay.
⚠️ Achtung: Nach dem Restore unbedingt einmal als Admin einloggen und
/admin/system-status.phpchecken. Wenn etwas nicht passt, siehst Du es dort sofort.
Updates einspielen
Updates kommen über git pull auf das Repo. Vor jedem Update:
- Backup machen (DB + Storage).
- Release-Notes lesen auf der CHANGELOG / Releases auf GitHub — gibt es Breaking Changes? Manuelle Migrationen?
- Update einspielen:
cd /var/www/etb git fetch --tags git checkout v2.0.0 # gewünschter Release-Tag - Schema-Migration: Beim nächsten Browser-Aufruf einer beliebigen
Admin-Seite zeigt das ETB einen Schema-Banner, wenn neue Tabellen anzulegen
sind. Klick auf „→ Jetzt anlegen" — fertig. Oder gehe direkt auf
/admin/schema-check.php. - System-Status prüfen:
/admin/system-status.php— alles grün? - Test-Lauf: Test-Mail schicken, prüfen ob ein Einsatz daraus wird.
⚠️ Ein Update kann alle Nutzer einmalig abmelden. Mit der Entmandantisierungs-Etappe wurde der interne Sitzungs-Cookie umbenannt (
FFWAC_SID→FFETB_SID). Beim ersten Update über diesen Stand hinweg werden deshalb alle laufenden Sitzungen ungültig — jeder muss sich danach einmal neu anmelden. Das ist gewollt und kein Defekt; passwortlos wird niemand ausgesperrt, nur einmal neu eingeloggt. Plane das Update entsprechend (nicht mitten in einer Lage).ℹ️ Schema-Check nach jedem Update ausführen. Updates bringen oft neue Tabellen und Spalten mit, die der Schema-Check anlegt. Dieses Release z. B. bringt u. a. den Stichwort-Katalog, temporäre Einsatz-Rollen, die manuelle Alarm-Auslösung und den Alarm-Knopf mit — der Schema-Check legt die zugehörigen Tabellen (
stichwort_katalog,alarm_einsatz_trigger,alarm_trigger_throttle,alarm_role_offer) und Spalten (aneinsaetzez. B.erledigt_by/erledigt_at/stichwort_katalog_id, anusersdietemp_role…-Spalten, analarm_rulemanual_address_mode/manual_strasse/manual_ortsowietemp_role_offer/temp_role_offer_hours) an und rüstet die neuen Default-Rechte nach (user.assign_temp_role,alarm.trigger_manual). Bis das migriert ist, läuft die App grundsätzlich weiter — die neuen Funktionen greifen aber erst danach, und der Schema-Banner bleibt sichtbar, bis Du auf „Reparieren" geklickt hast.ℹ️ Tipp: Spiele Updates immer außerhalb der Stoßzeiten ein — sonntags morgens ist meist ruhig. Bei einer aktiven Lage nicht upgraden.
Rolling Back
Falls ein Update Probleme macht:
cd /var/www/etb
git checkout v1.5.0 # vorheriger Release-Tag
Bei DB-Schema-Änderungen (selten, aber möglich): DB-Dump von vor dem Upgrade einspielen. Deshalb der nachdrückliche Hinweis oben: Backup vor Upgrade.
Sicherheits-Updates
PHP, MySQL, OS-Updates: ganz normal regelmäßig einspielen. Das ETB hat keine harten Versions-Anforderungen außer „PHP 8.1+" — wenn Dein PHP zu alt wird, kriegst Du beim Browser-Aufruf eine entsprechende Fehlermeldung.
Was als nächstes?
- Cron & Mail-Verarbeitung — was im Hintergrund läuft
- Diagnose — Werkzeuge zum Prüfen