- Tab-Leiste mit drei Tabs: User, Inventare, Backups - Aktiver Tab visuell hervorgehoben, nur aktiver Inhalt sichtbar - Default-Tab: User - Neuer GET /api/admin/backups Endpoint (JWT-geschützt) → listet .sql.gz-Dateien aus /backups (name, sizeBytes, createdAt) → absteigend nach Datum sortiert - Backups-Tab: Tabelle mit Dateiname, Größe (human-readable), Erstellt → Refresh-Button, Hinweis bei leerem Verzeichnis - docker-compose.yml: backup_data:/backups:ro Mount im Server-Container - 4 neue Tests (Admin-Backups: 200, 403, 401, Dateiliste sortiert)
47 lines
1.1 KiB
YAML
47 lines
1.1 KiB
YAML
services:
|
|
db:
|
|
image: postgres:17-alpine
|
|
container_name: krisenvorrat-db
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_DB: krisenvorrat
|
|
POSTGRES_USER: krisenvorrat
|
|
POSTGRES_PASSWORD: krisenvorrat
|
|
ports:
|
|
- "5432:5432"
|
|
volumes:
|
|
- pgdata:/var/lib/postgresql/data
|
|
|
|
krisenvorrat:
|
|
build: .
|
|
container_name: krisenvorrat-server
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8080:8080"
|
|
environment:
|
|
- KRISENVORRAT_JWT_SECRET=sRKnyOBAgwkoDYptqixc9I26SlUWFhGXL5jaTM1vPbe78Q0r
|
|
- KRISENVORRAT_DB_URL=jdbc:postgresql://db:5432/krisenvorrat
|
|
- KRISENVORRAT_DB_USER=krisenvorrat
|
|
- KRISENVORRAT_DB_PASSWORD=krisenvorrat
|
|
volumes:
|
|
- backup_data:/backups:ro
|
|
depends_on:
|
|
- db
|
|
|
|
backup:
|
|
build: ./backup
|
|
container_name: krisenvorrat-backup
|
|
restart: unless-stopped
|
|
environment:
|
|
- POSTGRES_HOST=db
|
|
- POSTGRES_DB=krisenvorrat
|
|
- POSTGRES_USER=krisenvorrat
|
|
- POSTGRES_PASSWORD=krisenvorrat
|
|
volumes:
|
|
- backup_data:/backups
|
|
depends_on:
|
|
- db
|
|
|
|
volumes:
|
|
pgdata:
|
|
backup_data:
|