Ein lokaler Server mit Beispielmedien, zum Ausprobieren
`Tools/demo-medien.sh` legt unter `~/.flaro-medien` einen kleinen Bestand an: Der Untergang, Matrix, Blade Runner 2049, Inception, Dark mit drei Folgen, Notruf Hafenkante. Echte Namen, damit TMDB etwas zu finden hat — aber jede Datei ist zwei Sekunden Testbild mit Ton und wiegt ein paar Kilobyte. **Eine davon hat zwei Tonspuren**, Deutsch und Audiodeskription, mit gesetzter Sprache und gesetztem Namen. Das ist der Fall, um dessentwillen der ganze Server existiert: Jellyfins Transcode-Endpunkt bildet eine Tonspur je Sitzung ab, und einmal hat die App dabei still die Audiodeskription gewählt — drei Gigabyte Mobilfunk für eine unbrauchbare Datei. Wer das nachstellen will, braucht eine Datei, die es kann. `docker-compose.local.yml` daneben: benannte Volumes statt NAS-Pfaden, Port 18080 statt 8080, Beiwerk eingeschaltet. **`user: "0:0"` ist eine Mac-Eigenheit und steht deshalb kommentiert da.** Colimas Dateifreigabe reicht die Besitzverhältnisse des Wirts nicht in die VM durch — eingehängte Ordner erscheinen im Container als root, und ein Server, der als 1000 läuft, kann dort keine NFO ablegen. Auf einem Linux-NAS gehört die Zeile weg. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
91eb934048
commit
705ec87416
Executable
+43
@@ -0,0 +1,43 @@
|
||||
#!/bin/bash
|
||||
# Erzeugt einen kleinen Bestand zum Ausprobieren: echte Dateinamen, winzige
|
||||
# Dateien. Jede ist eine Sekunde Testbild mit Ton — damit der Scan, die
|
||||
# Metadaten und das Umpacken etwas zu tun haben, ohne Gigabytes zu brauchen.
|
||||
set -euo pipefail
|
||||
ZIEL="${1:-$HOME/.flaro-medien}"
|
||||
command -v ffmpeg >/dev/null || { echo "ffmpeg fehlt."; exit 1; }
|
||||
|
||||
mach() { # mach <pfad> <schachtel> [zweite-tonspur]
|
||||
mkdir -p "$(dirname "$1")"
|
||||
if [ "${3:-}" = "zwei" ]; then
|
||||
ffmpeg -y -loglevel error \
|
||||
-f lavfi -i "testsrc=duration=2:size=320x240:rate=12" \
|
||||
-f lavfi -i "sine=frequency=440:duration=2" \
|
||||
-f lavfi -i "sine=frequency=880:duration=2" \
|
||||
-map 0:v -map 1:a -map 2:a \
|
||||
-metadata:s:a:0 language=deu -metadata:s:a:0 title=Deutsch \
|
||||
-metadata:s:a:1 language=deu -metadata:s:a:1 title=Audiodeskription \
|
||||
-c:v libx264 -preset ultrafast -c:a aac "$1"
|
||||
else
|
||||
ffmpeg -y -loglevel error \
|
||||
-f lavfi -i "testsrc=duration=2:size=320x240:rate=12" \
|
||||
-f lavfi -i "sine=frequency=440:duration=2" \
|
||||
-c:v libx264 -preset ultrafast -c:a aac "$1"
|
||||
fi
|
||||
echo " $(basename "$1")"
|
||||
}
|
||||
|
||||
echo "Filme:"
|
||||
mach "$ZIEL/Filme/Der Untergang (2004)/Der Untergang (2004).mkv" mkv zwei
|
||||
mach "$ZIEL/Filme/The Matrix (1999)/The Matrix (1999).mkv" mkv
|
||||
mach "$ZIEL/Filme/Blade Runner 2049 (2017)/Blade Runner 2049 (2017).mp4" mp4
|
||||
mach "$ZIEL/Filme/Inception (2010)/Inception (2010).mkv" mkv
|
||||
|
||||
echo "Serien:"
|
||||
mach "$ZIEL/Serien/Dark/Staffel 1/Dark - S01E01.mkv" mkv
|
||||
mach "$ZIEL/Serien/Dark/Staffel 1/Dark - S01E02.mkv" mkv
|
||||
mach "$ZIEL/Serien/Dark/Staffel 2/Dark - S02E01.mkv" mkv
|
||||
mach "$ZIEL/Serien/Notruf Hafenkante/Staffel 1/Notruf Hafenkante - S01E01.mkv" mkv zwei
|
||||
|
||||
chmod -R a+rwX "$ZIEL"
|
||||
echo
|
||||
echo "Fertig: $ZIEL"
|
||||
@@ -0,0 +1,45 @@
|
||||
# Zum Ausprobieren auf dem eigenen Rechner — nicht für den Betrieb.
|
||||
#
|
||||
# Unterschiede zur Beispieldatei:
|
||||
# * benannte Volumes statt Pfaden auf dem NAS
|
||||
# * Medien aus ~/.flaro-medien, erzeugt von Tools/demo-medien.sh
|
||||
# * Port 8080 bleibt frei, es läuft auf 18080
|
||||
#
|
||||
# docker compose -f docker-compose.local.yml up -d
|
||||
# docker compose -f docker-compose.local.yml logs -f
|
||||
# docker compose -f docker-compose.local.yml down -v (räumt auch die Daten weg)
|
||||
|
||||
services:
|
||||
flaro:
|
||||
image: flaro:local
|
||||
# Der Bauzusammenhang ist das Repo, nicht server/ — das Image braucht
|
||||
# auch web/ für die Oberfläche.
|
||||
build:
|
||||
context: ..
|
||||
dockerfile: server/Dockerfile
|
||||
container_name: flaro-local
|
||||
restart: unless-stopped
|
||||
|
||||
ports:
|
||||
- "18080:8080"
|
||||
|
||||
# **Nur auf dem Mac nötig.** Colimas Dateifreigabe reicht die
|
||||
# Besitzverhältnisse des Wirts nicht in die VM durch — eingehängte Ordner
|
||||
# erscheinen im Container als root. Auf einem Linux-NAS gehören sie dem
|
||||
# Benutzer 1000, und dann gehört diese Zeile weg.
|
||||
user: "0:0"
|
||||
|
||||
environment:
|
||||
- TZ=Europe/Zurich
|
||||
- FLARO_WRITE_SIDECARS=true
|
||||
|
||||
volumes:
|
||||
- config:/config
|
||||
- cache:/cache
|
||||
- transcode:/transcode
|
||||
- ${HOME}/.flaro-medien:/media
|
||||
|
||||
volumes:
|
||||
config:
|
||||
cache:
|
||||
transcode:
|
||||
Reference in New Issue
Block a user