The Jellyfin sidecar takes its library from a folder on the host where .env names one (JELLYFIN_MEDIA, read-only), else from deploy/jellyfin/media as before. On halkyon.li that is /data/media: the library moves out of the developer's home, which Jellyfin's own user can't enter. The sidecar README says how the home end's configuration, accounts and libraries move in, with its network settings corrected for Caddy before it starts. BREAKING CHANGE: compose.jellyfin-home.yaml, deploy/home-jellyfin/ and jellyfin.caddy's JELLYFIN_UPSTREAM are gone with ADR 0032, whose server end retires with learn.halkyon.eu's server; it was never brought up. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
46 lines
2 KiB
YAML
46 lines
2 KiB
YAML
# The Jellyfin sidecar (decided 2026-10-14): a Jellyfin server beside the instance, which
|
|
# people watch and listen to learn from (Halkyon Learn's Watch screen), suggested to them
|
|
# by the instance. Switched on in .env, with the domain it answers at:
|
|
#
|
|
# COMPOSE_FILE=compose.learn.yaml:compose.jellyfin.yaml
|
|
# JELLYFIN_DOMAIN=jellyfin.example.org
|
|
#
|
|
# Its files are the server's, in ./jellyfin (config, cache, media), owned by a user ID
|
|
# of its own; or the media in a folder elsewhere on the host that .env names
|
|
# (JELLYFIN_MEDIA, readable by all: halkyon.li's /data/media, ADR 0039, D15). The user ID
|
|
# is one no person, no other container and not the CI runner uses: processes
|
|
# of one user ID can read each other's environment and files. Setting it up, and the
|
|
# demo account: sidecars/README.md.
|
|
|
|
services:
|
|
jellyfin:
|
|
# v12.2, the version Halkyon Learn's Jellyfin feature is checked with.
|
|
image: jellyfin/jellyfin@sha256:357724bf0ae27a672c7cbaa899db2d9abeb13dbd8657ccce750258a4c059d037
|
|
restart: unless-stopped
|
|
user: "61096:61096"
|
|
environment:
|
|
JELLYFIN_PublishedServerUrl: https://${JELLYFIN_DOMAIN:?set JELLYFIN_DOMAIN in deploy/.env}
|
|
volumes:
|
|
- ./jellyfin/config:/config
|
|
- ./jellyfin/cache:/cache
|
|
- ${JELLYFIN_MEDIA:-./jellyfin/media}:/media:ro
|
|
# On `edge` alone, beside Caddy and the server's public API, never beside Postgres;
|
|
# no published port. A fixed address, for the admin's SSH tunnel (sidecars/README.md).
|
|
networks:
|
|
edge:
|
|
ipv4_address: 172.30.80.10
|
|
# Videos stream as stored (the app asks for static=true): nothing is transcoded.
|
|
mem_limit: 768m
|
|
logging:
|
|
driver: journald
|
|
|
|
caddy:
|
|
environment:
|
|
JELLYFIN_DOMAIN: ${JELLYFIN_DOMAIN:?set JELLYFIN_DOMAIN in deploy/.env}
|
|
volumes:
|
|
- ./sidecars/jellyfin.caddy:/etc/caddy/sidecars/jellyfin.caddy:ro
|
|
|
|
server:
|
|
environment:
|
|
# The instance suggests this Jellyfin, rather than looking for one.
|
|
JELLYFIN_URL: https://${JELLYFIN_DOMAIN:?set JELLYFIN_DOMAIN in deploy/.env}/
|