Jellyfin (Core Service)#
Jellyfin is an open-source media server for organizing and streaming your media library. It can be used as an alternative to Plex or Emby.
Service Relationships#
| Classification | Role |
|---|---|
| Core Service | Media server |
| Depends On | Content in /mnt/debrid |
| Optional | None |
| Exposes UI | Yes (Web UI) |
Configuration in dumb_config.json#
"jellyfin": {
"enabled": false,
"process_name": "Jellyfin Media Server",
"suppress_logging": false,
"auto_update": false,
"auto_update_interval": 24,
"auto_update_start_time": "04:00",
"pinned_version": "",
"port": 8096,
"config_dir": "/jellyfin",
"config_file": "/jellyfin/config/system.xml",
"log_file": "/jellyfin/log/jellyfin.log",
"command": [],
"env": {}
}
Key Configuration Fields#
pinned_version: Optional version pin for Jellyfin updates.port: Web UI port (default8096).config_dir,config_file,log_file: Paths for config and logs.command: DUMB rebuilds the data/config/cache/log arguments during setup. An explicit--ffmpegselection is preserved; otherwise DUMB selects/usr/lib/jellyfin-ffmpeg/ffmpegwhen installed.
Accessing the UI#
- Navigate to:
http://<host>:8096(default Jellyfin port) - With service UIs enabled in DUMB, open Embedded UI on the Jellyfin service page and sign in to Jellyfin there.
If existing libraries appear at the direct address but not in the iframe, see Jellyfin and Emby embedded libraries.
Fresh Jellyfin installs add the official Jellyfin APT source directly. They do
not require the add-apt-repository utility, which is intentionally absent from
the minimized DUMB runtime image.
Hardware acceleration#
DUMB launches Jellyfin as its configured puid/pgid. With /dev/dri present,
DUMB adds its service account to existing render and video groups at startup.
Managed processes receive those supplementary groups, including after a restart;
Docker group_add grants are retained as well. The device's numeric group must
still be accessible inside the container or LXC.
Jellyfin uses its packaged FFmpeg when available. Keep /usr/bin/ffmpeg owned by
the distribution package; replacing it with a symlink affects other services.
To use a custom build, supply --ffmpeg, followed by its absolute path, in
jellyfin.command.
For an Intel-only render-device setup with an installed iHD driver, DUMB defaults
LIBVA_DRIVER_NAME to iHD. An explicit value in jellyfin.env or the controller
environment takes precedence. AMD and mixed-vendor systems retain driver
autodetection. Select the acceleration method and supported codecs in Jellyfin's
Dashboard → Playback → Transcoding settings; device passthrough alone does
not enable transcoding.
See native Proxmox GPU setup and Jellyfin's Intel GPU guide.
Media Library Protection#
Protection is enabled by default, but Jellyfin requires a dedicated API key before DUMB can inspect sessions and temporarily control scan tasks/library real-time monitoring. DUMB does not create this key during Jellyfin's first-run administrator setup. Create it in Jellyfin's dashboard, then save it under Library Protection on the Jellyfin service page. Until then, safe unattended storage maintenance is deferred because activity is unknown.