diff --git a/Tools/demo-medien.sh b/Tools/demo-medien.sh new file mode 100755 index 0000000..c848514 --- /dev/null +++ b/Tools/demo-medien.sh @@ -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 [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" diff --git a/server/docker-compose.local.yml b/server/docker-compose.local.yml new file mode 100644 index 0000000..4f166f9 --- /dev/null +++ b/server/docker-compose.local.yml @@ -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: