So bringst Du das ETB auf Deinen eigenen Server. Der Großteil läuft über den Setup-Wizard — vorher musst Du nur die Voraussetzungen schaffen.
Voraussetzungen
- PHP 8.1+ (getestet bis 8.4) mit den Extensions:
pdo_mysql(Datenbank)imap(Mail-Postfach für Alarm-Mails)mbstring,fileinfo,curl,dom,gd
- MySQL 5.7+ oder MariaDB 10.3+
- Webserver mit Document-Root auf
public/und Rewrite-Modul (Apachemod_rewriteoder Nginx) - Cron alle 1–5 Minuten, um neue Alarm-Mails abzufragen
- IMAP-Postfach für die eingehenden Alarm-Mails der Leitstelle
- Optional: SMTP-Postfach für ausgehende App-Mails (Passwort-vergessen). Getrennt vom IMAP-Postfach oben — siehe den SMTP-Block in Konfiguration. Ohne SMTP bleibt die „Passwort vergessen"-Selbsthilfe inaktiv (Admin setzt Passwörter dann selbst).
- Optional: Telegram-Bot-Token, falls Du die App-Push-Benachrichtigung nutzen willst
Schritt 1: Code auf den Server bringen
git clone https://github.com/BrunSoftNet/ffw-einsatztagebuch.git /var/www/etb
cd /var/www/etb
ℹ️ Tipp: Lege das Repo so an, dass
git pullfür spätere Updates funktioniert. Schreibrechte für den Webserver-User braucht nurstorage/— der Rest darf read-only sein.
Schritt 2: Webserver konfigurieren
Document-Root muss auf public/ zeigen, nicht auf das Repo-Root. Sonst
wären die src/-Dateien direkt aus dem Web erreichbar.
Apache (/etc/apache2/sites-available/etb.conf):
<VirtualHost *:443>
ServerName etb.example.de
DocumentRoot /var/www/etb/public
<Directory /var/www/etb/public>
AllowOverride All
Require all granted
</Directory>
# SSL-Konfiguration nach deinem Setup …
</VirtualHost>
Nginx:
server {
listen 443 ssl http2;
server_name etb.example.de;
root /var/www/etb/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Schritt 3: .env anlegen
Das ETB liest Zugangsdaten aus config/.env. Eine Vorlage liegt unter
config/.env.example:
cp config/.env.example config/.env
Diese Datei legst Du jetzt nicht selbst mit allen Werten an — der Setup-Wizard tut das gleich für Dich. Wichtig ist nur, dass die Datei existiert und die DB-Zugangsdaten eingetragen sind, damit der Wizard sich überhaupt erst mit der Datenbank verbinden kann:
DB_HOST=localhost
DB_NAME=etb
DB_USER=etb
DB_PASS=geheim
DB_TABLE_PREFIX=etb_
⚠️ Achtung: Den Tabellen-Präfix solltest Du vor dem ersten Setup festlegen. Wer den Präfix nachträglich ändern will, muss in der Datenbank Tabellen umbenennen — der Wizard tut das nicht.
Schritt 4: Im Browser öffnen
Rufe https://etb.example.de/ auf. Bei einer frischen Installation landest
Du automatisch auf dem Setup-Wizard. Folge der Anleitung in
Setup-Wizard.
Wenn etwas nicht klappt: Schau ins Webserver-Log und in logs/ im Repo.
Häufige Fehler sind in der FAQ zusammengefasst.
Was wird auf der Platte gespeichert?
config/.env— sensible Zugangsdaten (DB, Mail, Telegram). Niemals ins Repo committen.storage/uploads/— Bilder und Dokumente, die in Kommentaren hochgeladen werden.public/branding/— Dein hochgeladenes Logo und Favicon.logs/— Cron-Logs, Mail-Parser-Logs, Telegram-Webhook-Logs.
Diese drei Verzeichnisse sicherst Du regelmäßig (siehe Backup & Updates).
Was als nächstes?
- Setup-Wizard — die geführte Erst-Einrichtung
- Cron & Mail-Verarbeitung — die Automatisierung scharf schalten
- Backup & Updates — Daten sichern und Versionen einspielen