docs: Jellyfin Infrastruktur vollständig dokumentiert
- SSH-Zugang (michael@192.168.178.149 via lokalem Netz) - NAS-Struktur: 192.168.178.170/Medien mit allen Mount-Punkten - Save.TV → Jellyfin Workflow - Synology NAS Shares und Zugang - Staging-Ordner Filme zum nachbearbeiten erklaert - Duplikat-Check Prozess dokumentiert
This commit is contained in:
parent
634a7e8277
commit
c4454e1c4d
1 changed files with 114 additions and 27 deletions
|
|
@ -7,49 +7,136 @@
|
|||
| Host | `192.168.178.149` (lokal) / `100.77.105.3` (Tailscale) |
|
||||
| Port | `8096` |
|
||||
| Hostname | `debian-jellyfin-homeassistent` |
|
||||
| OS-User | `michael` / PW: `astral66` |
|
||||
| Version | 10.9.11 |
|
||||
| API-Key | `7285b4a8793541648bf156599ae05b43` (App: `homelab-ai`) |
|
||||
| Admin-User | `admin` |
|
||||
| Admin-PW | `astral66` |
|
||||
|
||||
**SSH-Zugang** (nur aus dem lokalen 192.168.178.x Netz, z.B. via pve3):
|
||||
```bash
|
||||
sshpass -p 'astral66' ssh -o StrictHostKeyChecking=no michael@192.168.178.149
|
||||
```
|
||||
Von außen via Tailscale nur HTTP API erreichbar (Tailscale SSH erfordert Browser-Authentifizierung).
|
||||
|
||||
## Netzwerk / Infrastruktur
|
||||
|
||||
```
|
||||
Internet
|
||||
└── Fritz!Box (192.168.178.1)
|
||||
├── Jellyfin-Server 192.168.178.149 (debian-jellyfin-homeassistent)
|
||||
├── NAS/Windows 192.168.178.170 (Share: "Medien")
|
||||
├── Synology NAS 192.168.178.94 (Share: "Filme" = Jellyfin Quelle, Share: "Michael")
|
||||
└── pve3 192.168.178.250 (= pve-mu-3, Tailscale: 100.109.101.12)
|
||||
```
|
||||
|
||||
### NAS-Zugriff auf dem Jellyfin-Server
|
||||
|
||||
Der Jellyfin-Server mountet den Share `Medien` von **192.168.178.170** (Windows-Maschine) an drei Stellen:
|
||||
|
||||
| Mount-Punkt | Zweck |
|
||||
|-------------|-------|
|
||||
| `/mnt/nas/` | Haupt-NAS-Zugriff (user michael) |
|
||||
| `/mnt/nas_filme/` | Gleicher Share, als root gemountet (automount) |
|
||||
| `/srv/media/` | Gleicher Share, als root gemountet |
|
||||
|
||||
**Wichtige Ordner auf dem NAS (192.168.178.170/Medien):**
|
||||
|
||||
| Pfad | Inhalt |
|
||||
|------|--------|
|
||||
| `/mnt/nas/Recorded TV/` | ~700+ Jellyfin-Quelldateien (`.mp4`) |
|
||||
| `/mnt/nas/Filme zum nachbearbeiten/` | Staging-Ordner: neue SaveTV-Filme warten hier auf Umbenennung/Einpflege |
|
||||
| `/mnt/nas/Filme umbenennen Eigangsordner/` | Eingangs-Ordner für Batch-Umbenennung |
|
||||
| `/mnt/nas/Heimatfilme/` | Private Heimvideos |
|
||||
|
||||
### Synology NAS (192.168.178.94)
|
||||
|
||||
Auf pve3 (192.168.178.250 / Tailscale 100.109.101.12) gemountet:
|
||||
```bash
|
||||
# Zugriff von pve3 (100.109.101.12):
|
||||
ls /mnt/synology/ # Michael-Share (Michas Datenspeicher)
|
||||
# enthält u.a.: Filme/, Heimatfilme/, Backups/, Musik/, ...
|
||||
```
|
||||
|
||||
SMB-Shares auf der Synology:
|
||||
- `Filme` – Jellyfin Quelle (benötigt eigene Credentials)
|
||||
- `Michael` – Michas Datenspeicher (User: Orbitalo, PW: astral66)
|
||||
- `Mila` – Milas Datenspeicher
|
||||
|
||||
## Bibliotheken
|
||||
|
||||
| Name | Typ | Pfad |
|
||||
|------|-----|------|
|
||||
| Filme | movies | `/media/Recorded TV` |
|
||||
| Name | Typ | Quellpfad (auf Jellyfin-Server) |
|
||||
|------|-----|-------------------------------|
|
||||
| Filme | movies | `/srv/media/Recorded TV/` |
|
||||
|
||||
Aktuell **732 Filme** im Bestand.
|
||||
Aktuell ~718 Filme im Bestand.
|
||||
|
||||
## API-Nutzung
|
||||
|
||||
```bash
|
||||
# Schnelltest
|
||||
curl "http://192.168.178.149:8096/Items/Counts?api_key=7285b4a8793541648bf156599ae05b43"
|
||||
API_KEY="7285b4a8793541648bf156599ae05b43"
|
||||
JF="http://100.77.105.3:8096" # via Tailscale (von pve-hetzner aus)
|
||||
# oder: JF="http://192.168.178.149:8096" # lokal
|
||||
|
||||
# Filme auflisten
|
||||
curl "http://192.168.178.149:8096/Items?api_key=API_KEY&IncludeItemTypes=Movie&Recursive=true&Fields=Overview,Genres,People&Limit=20"
|
||||
# Anzahl Filme
|
||||
curl -s "$JF/Items/Counts?api_key=$API_KEY"
|
||||
|
||||
# Alle Filme (Name + Pfad)
|
||||
curl -s "$JF/Items?api_key=$API_KEY&IncludeItemTypes=Movie&Recursive=true&Fields=Name,Path&Limit=1000"
|
||||
|
||||
# Film suchen
|
||||
curl "http://192.168.178.149:8096/Items?api_key=API_KEY&SearchTerm=Matrix&IncludeItemTypes=Movie&Recursive=true"
|
||||
curl -s "$JF/Items?api_key=$API_KEY&SearchTerm=Matrix&IncludeItemTypes=Movie&Recursive=true"
|
||||
```
|
||||
|
||||
**Erreichbarkeit:** Tailscale-IP `100.77.105.3` ist von pve-hetzner aus direkt nutzbar (kein Hop nötig).
|
||||
|
||||
## Save.TV → Jellyfin Workflow
|
||||
|
||||
```
|
||||
Save.TV (Cloud-Recorder)
|
||||
└── CT 116 auf pve-hetzner
|
||||
└── savetv_auto_download.py (Cron */30 * * * *)
|
||||
→ lädt Kinofilme nach /mnt/savetv/ (auf pve-hetzner)
|
||||
→ 1 Film gleichzeitig, 48h + TID-Jitter nach Aufnahme
|
||||
└── savetv_sync.py
|
||||
→ kopiert Dateien von Hetzner via HTTP-API
|
||||
→ Ziel: /mnt/nas/Filme zum nachbearbeiten/ (auf NAS 192.168.178.170)
|
||||
→ Wartezeit: 24h nach Download
|
||||
└── Manuell: Umbenennen + in "Recorded TV" verschieben
|
||||
→ Jellyfin scannt automatisch und nimmt Film auf
|
||||
```
|
||||
|
||||
## Staging-Ordner „Filme zum nachbearbeiten"
|
||||
|
||||
**Zugriff:**
|
||||
```bash
|
||||
# Von pve3 (100.109.101.12) via pve-hetzner:
|
||||
sshpass -p 'astral66' ssh michael@192.168.178.149 'ls "/mnt/nas/Filme zum nachbearbeiten/"'
|
||||
|
||||
# Vergleich mit Jellyfin (Duplikat-Check):
|
||||
# 1. JF-Filme holen:
|
||||
curl -s "http://100.77.105.3:8096/Items?api_key=7285b4a8793541648bf156599ae05b43&IncludeItemTypes=Movie&Recursive=true&Fields=Name&Limit=1000"
|
||||
# 2. Liste "Filme zum nachbearbeiten" holen (via michael@192.168.178.149)
|
||||
# 3. Titelnamen normieren (Jahreszahl entfernen, Kleinschreibung) und vergleichen
|
||||
```
|
||||
|
||||
**Stand 06.04.2026:** 53 Filme im Staging-Ordner, davon **17 bereits in Jellyfin** (Duplikate):
|
||||
- 12 Monkeys, Angel Has Fallen, Bullet Train, Children of Men, Der mit dem Wolf tanzt,
|
||||
Die Frau in Blau (2023+2025), Die Spezialistin, Kill the Boss, Mile 22,
|
||||
No Turning Back, No Way Up, On the Line, Parker, Salt,
|
||||
Stirb langsam, Stirb langsam 2
|
||||
|
||||
## Benutzer
|
||||
|
||||
| Name | Admin | Notiz |
|
||||
|------|-------|-------|
|
||||
| admin | ja | Hauptadmin |
|
||||
| Hans | ja | Alter Admin |
|
||||
| karsten | nein | |
|
||||
| Holger | nein | |
|
||||
| Peter | nein | |
|
||||
| Klemens | nein | |
|
||||
| michael ec | nein | |
|
||||
| Ralf | nein | |
|
||||
| rolf | nein | |
|
||||
| wilfrid | nein | |
|
||||
|
||||
## Netzwerk
|
||||
|
||||
- Erreichbar vom Hetzner-Server über Fritz!Box-Netz (192.168.178.x)
|
||||
- Tailscale-IP: 100.77.105.3
|
||||
- Kein SSH-Zugang (nur HTTP API)
|
||||
| Name | Admin |
|
||||
|------|-------|
|
||||
| admin | ja |
|
||||
| Hans | ja (alt) |
|
||||
| karsten | nein |
|
||||
| Holger | nein |
|
||||
| Peter | nein |
|
||||
| Klemens | nein |
|
||||
| michael ec | nein |
|
||||
| Ralf | nein |
|
||||
| rolf | nein |
|
||||
| wilfrid | nein |
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue