diff --git a/README.md b/README.md new file mode 100644 index 0000000..a2aa39a --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# Jellyfin Theme – Aurora Noir + +Custom Cinematic Theme für Jellyfin ([stream.free-warez.win](https://stream.free-warez.win)). + +--- + +## 📁 Struktur +- `web-assets/aurora_noir.css`: Quelldatei für das vollständige CSS-Theme (MUI Overrides, Glows, Glassmorphism). +- `web-assets/custom_bg.webp`: Hintergrundgrafik (1920x1080). +- `web-assets/custom_favicon.ico`: Benutzerdefiniertes Favicon. +- `branding.xml`: Jellyfin Server-Konfiguration mit eingebettetem XML-escaped CSS. +- `THEME-README.md`: Detaillierte Architektur & Historie (Traefik rewritebody Injection etc.). +- `deploy.sh`: Synchronisiert die Assets zum VPS, konvertiert CSS -> XML und startet den Jellyfin Container neu. + +## 🚀 Deployment +```bash +./deploy.sh +``` diff --git a/deploy.sh b/deploy.sh new file mode 100755 index 0000000..fce7c77 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,45 @@ +#!/usr/bin/env bash +# deploy.sh - Deploy Jellyfin Custom Theme (Aurora Noir) +# Domain: stream.free-warez.win +# Target Host: free-warez.win -> /opt/containers/jellyfin + +set -euo pipefail + +TARGET_HOST="free-warez.win" +TARGET_DIR="/opt/containers/jellyfin" +LOCAL_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +echo "🚀 Deploying Jellyfin Theme (Aurora Noir)" +echo " Target: $TARGET_HOST:$TARGET_DIR" +echo "===============================================" + +# 1. Check SSH connection +echo "📡 Checking SSH connection to $TARGET_HOST..." +if ! ssh -q -o BatchMode=yes -o ConnectTimeout=5 "$TARGET_HOST" exit; then + echo "❌ Cannot connect to $TARGET_HOST via SSH." + exit 1 +fi + +# 2. Sync web-assets +echo "🔄 Syncing theme assets to VPS..." +rsync -avz \ + "$LOCAL_DIR/web-assets/" "$TARGET_HOST:$TARGET_DIR/web-assets/" + +# 3. Regenerate branding.xml & restart container +echo "🔄 Regenerating branding.xml from aurora_noir.css..." +ssh "$TARGET_HOST" "python3 - <<'PYEOF' +import xml.sax.saxutils as sx +css = open('/opt/containers/jellyfin/web-assets/aurora_noir.css').read() +out = ('\n\n' + ' Private media cloud. Authorized access only.\n' + ' %s\n' + ' false\n' + '\n') % sx.escape(css) +open('/opt/containers/jellyfin/library/branding.xml', 'w').write(out) +print('branding.xml updated with', len(out), 'bytes') +PYEOF +docker restart jellyfin +" + +echo "✅ Jellyfin container restarted with updated theme!" +echo "✨ Deployment complete!" diff --git a/web-assets/custom_bg.webp b/web-assets/custom_bg.webp index 42fc2c4..da06fcb 100644 Binary files a/web-assets/custom_bg.webp and b/web-assets/custom_bg.webp differ