Voraussetzungen
FeuerwehrHub läuft auf jedem Linux-Server mit Docker. Empfohlen wird Ubuntu 22.04 oder neuer — aber Debian, Rocky Linux und andere Distributionen funktionieren genauso.
Minimale Systemanforderungen
- Linux-Server (Ubuntu 22.04+ empfohlen)
- 1 CPU-Kern, 1 GB RAM (2 GB+ empfohlen)
- 10 GB freier Speicherplatz
- Internetzugang für den ersten Download
- SSH-Zugang oder direkter Konsolenzugang
Docker installieren
Falls Docker bereits installiert ist, kannst du diesen Schritt überspringen. Prüfen mit docker --version.
Docker & Docker Compose auf Ubuntu/Debian
Das offizielle Installationsskript von Docker ist der einfachste Weg:
# Docker-Installationsskript herunterladen und ausführen curl -fsSL https://get.docker.com | sh # Aktuellen Benutzer zur docker-Gruppe hinzufügen (kein sudo mehr nötig) sudo usermod -aG docker $USER # Neu einloggen damit die Gruppe aktiv wird, dann prüfen: docker --version docker compose version
docker-compose Paket wird nicht mehr benötigt.
Docker auf anderen Distributionen
Für Fedora, Rocky Linux, RHEL und weitere Distributionen: docs.docker.com/engine/install
FeuerwehrHub installieren
Repository klonen, Konfiguration anpassen und starten. Wähle den passenden Modus:
PostgreSQL startet automatisch als eigener Container — der einfachste Weg für Einsteiger.
# Repository klonen git clone https://github.com/xPatrick096/FeuerwehrHub.git cd FeuerwehrHub # Konfigurationsdatei aus Vorlage erstellen cp .env.example .env # Nur diese drei Werte in .env anpassen: DB_PASSWORD=sicheres-passwort JWT_SECRET=$(openssl rand -hex 64) FF_NAME=Freiwillige Feuerwehr Musterstadt # Starten (PostgreSQL + FeuerwehrHub) docker compose --profile standalone up -d
Konfiguration — alle Variablen
# ── Datenbank ────────────────────────────────────────── DB_HOST=localhost # bei Standalone: localhost DB_PORT=5432 DB_NAME=feuerwehrhub DB_USER=feuerwehrhub_user DB_PASSWORD=sicheres-passwort # ── Anwendung ────────────────────────────────────────── APP_PORT=8080 # Port unter dem die App erreichbar ist JWT_SECRET=... # openssl rand -hex 64 FF_NAME=Freiwillige Feuerwehr Musterstadt FRONTEND_URL=http://192.168.1.10:8080 # URL des Frontends (für CORS) # ── Sicherheit ───────────────────────────────────────── LOGIN_MAX_ATTEMPTS=5 # Fehlversuche bis Account-Sperre LOCKOUT_MINUTES=15 # Sperrdauer in Minuten
.env-Datei enthält sensible Daten (Passwörter, JWT-Secret). Niemals einchecken oder öffentlich zugänglich machen.
Erster Start & Setup
Nach dem Start ist FeuerwehrHub unter http://DEINE-IP:8080 erreichbar. Beim ersten Aufruf startet automatisch der Einrichtungsassistent.
Setup-Assistent
- Admin-Account anlegen (Benutzername + sicheres Passwort wählen)
- Feuerwehrname bestätigen (aus
.envvorausgefüllt) - Fertig — du landest im Dashboard
Erste Schritte nach dem Setup
- Im Admin-Panel gewünschte Module aktivieren (Lager, Personal, Fahrzeuge)
- Rollen prüfen und bei Bedarf anpassen
- Benutzer für die Kameraden anlegen und Rollen zuweisen
- Optional: 2-Faktor-Authentifizierung (TOTP) für den Admin-Account einrichten
Container-Status prüfen
# Status der laufenden Container docker compose ps # Logs anzeigen (live) docker compose logs -f feuerwehrhub
Reverse Proxy & HTTPS
Für den Zugriff über eine eigene Domain mit HTTPS empfehlen wir nginx Proxy Manager — eine grafische Oberfläche für nginx mit automatischen Let's Encrypt Zertifikaten.
Option A — nginx Proxy Manager (empfohlen)
- nginx Proxy Manager per Docker Compose installieren
- Im Web-UI: Proxy Host anlegen → Domain eintragen, Forward zu
feuerwehrhub:8080 - SSL-Tab: "Request a new SSL Certificate" + "Force SSL" aktivieren
- Let's Encrypt Zertifikat wird automatisch ausgestellt und erneuert
Option B — Caddy (minimalistisch)
Caddy übernimmt HTTPS vollautomatisch — keine Konfiguration für Zertifikate nötig:
feuerwehrhub.deine-domain.de {
reverse_proxy localhost:8080
}
FRONTEND_URL anpassen
Nach dem Einrichten eines Reverse Proxys muss FRONTEND_URL in der .env auf die neue Domain gesetzt werden:
FRONTEND_URL=https://feuerwehrhub.deine-domain.de
Danach Container neu starten: docker compose up -d
Updates einspielen
Neue Versionen werden als GitHub Releases veröffentlicht. Das Update ist in drei Befehlen erledigt:
# Im FeuerwehrHub-Verzeichnis: git pull docker compose pull docker compose up -d
Backup
Alle Daten liegen in der PostgreSQL-Datenbank. Ein regelmäßiges Backup mit pg_dump ist dringend empfohlen.
Manuelles Backup
# Standalone-Modus (PostgreSQL im Container): docker exec feuerwehrhub-postgres-1 \ pg_dump -U feuerwehrhub feuerwehrhub \ > backup_$(date +%F).sql # Externe Datenbank: pg_dump -h DB_HOST -U DB_USER DB_NAME > backup_$(date +%F).sql
Automatisches tägliches Backup per Cronjob
# crontab -e öffnen und folgende Zeile hinzufügen: # Täglich um 03:00 Uhr Backup erstellen (letzten 7 Tage behalten) 0 3 * * * docker exec feuerwehrhub-postgres-1 pg_dump -U feuerwehrhub feuerwehrhub > /backups/feuerwehrhub_$(date +\%F).sql && find /backups -name "feuerwehrhub_*.sql" -mtime +7 -delete