- appsettings.Production.json: Photos:RootPath -> C:\gerbil-data\photos so photo files land on a stable host path when ASPNETCORE_ENVIRONMENT=Production - Start-GerbilManager.ps1: creates data dirs, sets Production env, launches AppHost minimised; saves PID for Stop script - Stop-GerbilManager.ps1: kills AppHost + Vite node processes by PID / port - Register-AutoStart.ps1: Windows Scheduled Task on user logon (RunLevel Highest) - Register-BackupTask.ps1: daily 03:00 Scheduled Task for Backup script - deploy/README.md: Julian ops guide — start/stop commands, phone URL, DHCP reservation, firewall rule (Public-profile Wi-Fi), backup/restore procedures, prerequisites checklist, troubleshooting table (German) Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
5.1 KiB
GerbilManager — Betriebsanleitung (Ops Guide)
Für Julian und seine Frau. Alles Wichtige auf einer Seite.
Schnellstart
Erstmalige Einrichtung (einmalig, als Administrator)
# 1. Autostart bei Windows-Anmeldung registrieren
powershell -ExecutionPolicy Bypass -File deploy\scripts\Register-AutoStart.ps1
# 2. Taeliches Backup um 03:00 Uhr registrieren
powershell -ExecutionPolicy Bypass -File deploy\scripts\Register-BackupTask.ps1
Danach startet GerbilManager automatisch nach jedem Neustart. Fertig.
App manuell starten / stoppen
# Starten (minimiertes Fenster)
powershell -ExecutionPolicy Bypass -File deploy\scripts\Start-GerbilManager.ps1
# Stoppen
powershell -ExecutionPolicy Bypass -File deploy\scripts\Stop-GerbilManager.ps1
App im Browser öffnen
| Gerät | URL |
|---|---|
| Laptop (lokal) | http://localhost:5173 |
| Handy / anderes Gerät im WLAN | http://192.168.2.124:5173 |
Die IP-Adresse (192.168.2.124) ist die aktuelle DHCP-Adresse des Laptops. Für eine stabile Adresse → Abschnitt "Feste IP-Adresse" weiter unten.
Datensicherung (Backup)
Backups werden automatisch täglich um 03:00 Uhr nach C:\gerbil-data\backups\ gesichert.
Jedes Backup enthält:
gerbilmanager_<datum>.sql— kompletter Datenbankdumpphotos_<datum>.zip— alle Tierfotos
Die letzten 7 Tage werden aufbewahrt; ältere Backups werden automatisch gelöscht.
Backup manuell ausführen
powershell -ExecutionPolicy Bypass -File deploy\scripts\Backup-GerbilManager.ps1
Backup-Protokoll einsehen
C:\gerbil-data\backups\backup.log
Wiederherstellung aus Backup
Achtung: Alle aktuellen Daten werden überschrieben!
# Neuestes Backup wiederherstellen (fragt vorher nach Bestätigung)
powershell -ExecutionPolicy Bypass -File deploy\scripts\Restore-GerbilManager.ps1
# Bestimmtes Backup wiederherstellen
powershell -ExecutionPolicy Bypass -File deploy\scripts\Restore-GerbilManager.ps1 `
-BackupDir "C:\gerbil-data\backups\2026-06-05_03-00"
Feste IP-Adresse (empfohlen)
Damit das Handy immer dieselbe URL verwendet, sollte dem Laptop eine feste IP-Adresse im Heimnetzwerk zugewiesen werden.
Option A: DHCP-Reservierung im Router (empfohlen)
- Router-Oberfläche öffnen (meist
http://192.168.2.1oderhttp://fritz.box) - Heimnetz → Netzwerk → IP-Adressen (bei FRITZ!Box)
- Den Eintrag für diesen Laptop suchen (Name:
GULUM-...oder ähnlich) - "Immer dieselbe IPv4-Adresse zuweisen" aktivieren
- Speichern. Ab sofort hat der Laptop immer 192.168.2.124.
Option B: Statische IP direkt am Laptop setzen
# Netzwerkadaptername ermitteln
Get-NetAdapter
# Feste IP setzen (Beispiel fuer WLAN-Adapter "Wi-Fi")
New-NetIPAddress -InterfaceAlias "Wi-Fi" -IPAddress 192.168.2.124 -PrefixLength 24 -DefaultGateway 192.168.2.1
Set-DnsClientServerAddress -InterfaceAlias "Wi-Fi" -ServerAddresses 192.168.2.1
Firewall-Regel (für Handy-Zugriff)
Damit das Handy auf die App zugreifen kann, muss eine Firewall-Ausnahme eingerichtet sein. Das WLAN "Katzastrophe 4" ist als Public eingestuft, daher ist der Befehl nötig:
# Als Administrator ausführen:
New-NetFirewallRule `
-DisplayName "GerbilManager (Frontend + API)" `
-Direction Inbound `
-Action Allow `
-Protocol TCP `
-LocalPort 5173,5179 `
-Profile Any
Einmalig nötig. Prüfen ob die Regel bereits existiert:
Get-NetFirewallRule -DisplayName "GerbilManager*"
Datenspeicherorte
| Was | Pfad |
|---|---|
| Tierfotos | C:\gerbil-data\photos\ |
| Datenbank | Docker-Volume (automatisch, Aspire-verwaltet) |
| Backups | C:\gerbil-data\backups\ |
| App-Quellcode | C:\Users\gulum\dev\GerbilManager\ |
Voraussetzungen (für Betrieb)
| Software | Mindestversion | Status prüfen |
|---|---|---|
| Docker Desktop | Aktuell, läuft | docker ps |
| .NET SDK | 10.0+ | dotnet --version |
| Node.js | 18+ | node --version |
Docker Desktop muss beim Windows-Start automatisch starten. Einstellung: Docker Desktop → Settings → Start Docker Desktop when you sign in.
Problemlösung
| Problem | Lösung |
|---|---|
| Seite lädt nicht | Prüfen ob Docker läuft: docker ps. Dann Start-GerbilManager.ps1 |
| Handy erreicht App nicht | Firewall-Regel prüfen (oben). Beide Geräte im selben WLAN? |
| Daten verschwunden | Wiederherstellung: Restore-GerbilManager.ps1 |
| Datenbank-Fehler beim Start | docker ps → Postgres-Container läuft? Sonst neu starten |
| Port belegt (Fehler 5179/5173) | netstat -ano | findstr ":5179" → Prozess beenden |
Backup testen (einmalig empfohlen)
# 1. Backup erstellen
powershell -ExecutionPolicy Bypass -File deploy\scripts\Backup-GerbilManager.ps1
# 2. Prüfen ob Backup vorhanden
Get-ChildItem "C:\gerbil-data\backups\" -Directory | Select-Object -Last 3
# 3. Inhalt des neuesten Backups prüfen
$latest = (Get-ChildItem "C:\gerbil-data\backups\" -Directory | Sort-Object LastWriteTime -Desc | Select-Object -First 1).FullName
Get-ChildItem $latest