Cover-Bilder aus DB laden mit Fallback auf URL-Proxy

- API: neuer Endpunkt GET /api/records/{id}/cover liefert BYTEA direkt
  aus der DB; cover_mime_type in COLUMNS aufgenommen
- Frontend: CoverImage lädt primär aus DB (/api/records/{id}/cover),
  fällt bei 404 automatisch auf den URL-Proxy zurück
- types.ts: cover_mime_type zum MediaRecord-Interface hinzugefügt
- scripts/deploy.sh: einmaliges SSH-Passwort für alle scp-Transfers

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Housemann
2026-07-17 19:51:23 +02:00
co-authored by Claude Sonnet 4.6
parent 944ca9a308
commit b5366783b1
7 changed files with 104 additions and 8 deletions
+30
View File
@@ -0,0 +1,30 @@
#!/bin/bash
# Einmal Passwort eingeben, alle Dateien übertragen, dann neu bauen.
# Aufruf: bash scripts/deploy.sh
set -e
HOST="root@192.168.30.135"
REMOTE="/opt/nginx_filebot"
SOCKET="/tmp/ssh-filebot-$$"
echo "Verbinde mit $HOST"
ssh -MNf -o ControlPath="$SOCKET" -o ControlPersist=60 "$HOST"
scp_remote() {
scp -o ControlPath="$SOCKET" "$1" "$HOST:$REMOTE/$2"
}
echo "Übertrage Dateien …"
scp_remote "api/main.py" "api/main.py"
scp_remote "frontend/src/types.ts" "frontend/src/types.ts"
scp_remote "frontend/src/utils/coverUrl.ts" "frontend/src/utils/coverUrl.ts"
scp_remote "frontend/src/components/CoverImage.vue" "frontend/src/components/CoverImage.vue"
scp_remote "frontend/src/components/DataTable.vue" "frontend/src/components/DataTable.vue"
scp_remote "frontend/src/components/MobileCards.vue" "frontend/src/components/MobileCards.vue"
echo "Baue Docker-Container neu …"
ssh -o ControlPath="$SOCKET" "$HOST" "cd $REMOTE && docker compose up -d --build"
ssh -O exit -o ControlPath="$SOCKET" "$HOST" 2>/dev/null || true
echo "Fertig."