First app to use the core-26.10-alpha `path` setting type. User picks their existing media folder (MEDIA_PATH=/mnt/media) in the install form; core installer validates the path server-side; compose mounts it read-only at /media. Docker-managed volumes hold /config and /cache; admin account is created from the first browser visit to :8096. No HW transcoding yet — that's a later schema extension. Also bumps the vendored manifest schema in scripts/vendor/ to match core 26.10-alpha — catches up both the missing `open_url` field (gap since 26.6-alpha) and the new `path` setting type. No changes needed to validate-catalog.py itself. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
38 lines
1.3 KiB
YAML
38 lines
1.3 KiB
YAML
# Furtka Jellyfin — media server.
|
|
#
|
|
# Two Docker-managed volumes (config, cache) for app state + one
|
|
# user-supplied host path (MEDIA_PATH) mounted read-only for the media
|
|
# library. Admin account bootstraps from the first browser visit to
|
|
# :8096 — that's why this app has no manifest.settings for admin creds.
|
|
#
|
|
# MEDIA_PATH is a `path`-type setting (furtka/manifest.py ≥ 26.10-alpha
|
|
# schema). The install form asks for it, the installer validates that
|
|
# the directory exists and isn't a system path, and docker-compose
|
|
# substitutes the value below at `docker compose up` time.
|
|
#
|
|
# TODO(image-pin): `:latest` is shaky for production — pin to a digest
|
|
# (`jellyfin/jellyfin@sha256:...`) or a stable tag once we've verified
|
|
# one against the upstream registry. MVP drift risk accepted.
|
|
#
|
|
# No HW transcoding yet — /dev/dri passthrough is a separate, later
|
|
# schema extension. 1080p software transcode + Direct Play over LAN
|
|
# are fine for the Medion-Haswell target.
|
|
|
|
services:
|
|
jellyfin:
|
|
image: jellyfin/jellyfin:latest
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8096:8096"
|
|
environment:
|
|
- TZ=Europe/Berlin
|
|
volumes:
|
|
- furtka_jellyfin_config:/config
|
|
- furtka_jellyfin_cache:/cache
|
|
- ${MEDIA_PATH}:/media:ro
|
|
|
|
volumes:
|
|
furtka_jellyfin_config:
|
|
external: true
|
|
furtka_jellyfin_cache:
|
|
external: true
|