Files
GerbilManager/deploy
Gulum dada3af968 OPS-1: startup scripts, autostart task, backup task, ops README, production config
- 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>
2026-06-06 07:11:09 +02:00
..

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 Datenbankdump
  • photos_<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)

  1. Router-Oberfläche öffnen (meist http://192.168.2.1 oder http://fritz.box)
  2. Heimnetz → Netzwerk → IP-Adressen (bei FRITZ!Box)
  3. Den Eintrag für diesen Laptop suchen (Name: GULUM-... oder ähnlich)
  4. "Immer dieselbe IPv4-Adresse zuweisen" aktivieren
  5. 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