DB Backup & Maintenance: Backup-Trigger und Wartungsfunktionen im Dashboard #62

Open
opened 2026-03-30 20:06:56 +00:00 by David · 0 comments
Collaborator

Beschreibung

Wartungsfunktionen im Dashboard: Datenbank-Backup manuell auslösen, Backup-History einsehen, Repos-Cache aufräumen, und grundlegende Maintenance-Operationen.

Hintergrund

Für den produktiven Betrieb braucht man die Möglichkeit, Backups zu erstellen und den Systemzustand zu warten — ohne SSH-Zugang zum Server. Besonders die PostgreSQL-Datenbank und der Repos-Cache (der bei vielen Repos mehrere GB groß werden kann) brauchen regelmäßige Wartung.

Abgeleitet aus Issue #13 (Betriebskonzept), Bereich 4: Backup-Strategie.

Akzeptanzkriterien

  • Button "Backup jetzt erstellen" → pg_dump auf dem Server auslösen, Backup-Datei speichern
  • Backup-History anzeigen: Datum, Größe, Download-Link
  • Automatisches Backup konfigurierbar (täglich/wöchentlich, Aufbewahrungsfrist)
  • Repos-Cache Übersicht: Größe pro Repo, "Cache leeren" Button pro Repo
  • Repos-Cache Gesamt: "Alle Caches leeren" mit Bestätigungsdialog
  • Alembic-Migrations-Status anzeigen: Aktuelle Revision, Pending Migrations
  • Nur Admin-Rolle hat Zugriff auf Maintenance-Funktionen

Technische Hinweise

  • Neuer Endpoint: backend/api/maintenance.pyPOST /api/maintenance/backup, GET /api/maintenance/backups, POST /api/maintenance/clear-cache/{repo}
  • Backup: subprocess.run(['pg_dump', ...]) oder asyncio.create_subprocess_exec
  • Erweitern: backend/config.pyBACKUP_DIR, BACKUP_RETENTION_DAYS, AUTO_BACKUP_ENABLED
  • Neue Frontend-Seite: frontend/src/pages/Maintenance.tsx oder Tab in Settings
  • Migration nötig: nein

Aufwand: M

Abgeleitet aus #13

## Beschreibung Wartungsfunktionen im Dashboard: Datenbank-Backup manuell auslösen, Backup-History einsehen, Repos-Cache aufräumen, und grundlegende Maintenance-Operationen. ## Hintergrund Für den produktiven Betrieb braucht man die Möglichkeit, Backups zu erstellen und den Systemzustand zu warten — ohne SSH-Zugang zum Server. Besonders die PostgreSQL-Datenbank und der Repos-Cache (der bei vielen Repos mehrere GB groß werden kann) brauchen regelmäßige Wartung. Abgeleitet aus Issue #13 (Betriebskonzept), Bereich 4: Backup-Strategie. ## Akzeptanzkriterien - [ ] Button "Backup jetzt erstellen" → `pg_dump` auf dem Server auslösen, Backup-Datei speichern - [ ] Backup-History anzeigen: Datum, Größe, Download-Link - [ ] Automatisches Backup konfigurierbar (täglich/wöchentlich, Aufbewahrungsfrist) - [ ] Repos-Cache Übersicht: Größe pro Repo, "Cache leeren" Button pro Repo - [ ] Repos-Cache Gesamt: "Alle Caches leeren" mit Bestätigungsdialog - [ ] Alembic-Migrations-Status anzeigen: Aktuelle Revision, Pending Migrations - [ ] Nur Admin-Rolle hat Zugriff auf Maintenance-Funktionen ## Technische Hinweise - Neuer Endpoint: `backend/api/maintenance.py` — `POST /api/maintenance/backup`, `GET /api/maintenance/backups`, `POST /api/maintenance/clear-cache/{repo}` - Backup: `subprocess.run(['pg_dump', ...])` oder `asyncio.create_subprocess_exec` - Erweitern: `backend/config.py` — `BACKUP_DIR`, `BACKUP_RETENTION_DAYS`, `AUTO_BACKUP_ENABLED` - Neue Frontend-Seite: `frontend/src/pages/Maintenance.tsx` oder Tab in Settings - Migration nötig: nein ## Aufwand: M _Abgeleitet aus #13_
Sign in to join this conversation.
No description provided.