2026-01-22 01:11:37 +00:00
2025-01-08 10:09:13 -08:00
2026-01-21 13:53:38 -05:00
2026-01-21 13:53:38 -05:00
2026-01-21 13:53:38 -05:00
2026-01-21 13:53:38 -05:00

Jellyfin

The Free Software Media System

  • Category: Apps
  • Status: 3, Beta
  • Image: jellyfin/jellyfin, 4, upstream
  • Healthcheck: Yes
  • Backups: Yes

Jellyfin is a free and open-source media server that lets you collect, manage, and stream your media. This recipe deploys Jellyfin with Traefik integration, health monitoring, and optional automated backups.

Quick Start

# Create a new Jellyfin instance
abra app new jellyfin --secrets

# Configure your instance
abra app config <app-name>

# Deploy
abra app deploy <app-name>

Configuration

Media Volumes

Configure media access by editing EXTRA_VOLUME in your app configuration:

# Single media folder
EXTRA_VOLUME=/mnt/media:/media

# Multiple folders (use docker-compose syntax)
EXTRA_VOLUME=/mnt/movies:/movies

During Jellyfin's initial setup wizard, add your mounted paths as media libraries.

Backup Configuration

This recipe supports automated backups using backup-bot-two or abra backup commands.

Enabling Backups

Backups are enabled by default. To disable them, set:

ENABLE_BACKUPS=false

What Gets Backed Up

  • Config volume (/config): Jellyfin configuration, databases, metadata, and plugins
  • Cache volume: Excluded (transcoding cache, not needed in backups)

What's Not Backed Up

Media files are not included in backups. Back up your media library separately or ensure you can re-download content if needed.

Integration with Media Stack

Jellyfin works well with the *arr stack for automated media management:

Service Purpose
qBittorrent Torrent client for downloads
Prowlarr Indexer manager for all *arr apps
Sonarr TV show monitoring and download
Radarr Movie monitoring and download
Jellyseerr Request management and discovery UI

Shared Media Volumes

When integrating with Sonarr/Radarr, use compose.media_volumes.yml to share their media volumes:

COMPOSE_FILE="compose.yml:compose.media_volumes.yml"
movies_volume=radarr_media
shows_volume=sonarr_media

This mounts Radarr's movies and Sonarr's shows directly into Jellyfin at /movies and /shows.

Hardware Transcoding

For hardware-accelerated transcoding, you may need to pass through GPU devices. Create a custom compose overlay:

# compose.gpu.yml
services:
  app:
    devices:
      - /dev/dri:/dev/dri  # Intel QSV / VAAPI

Then add it to your configuration:

COMPOSE_FILE="compose.yml:compose.gpu.yml"

Troubleshooting

Health Check Failures

The health check uses Jellyfin's /health endpoint. If it fails:

  1. Check logs: abra app logs <app-name>
  2. Verify the container is running: abra app ps <app-name>
  3. Ensure port 8096 isn't blocked internally

Permission Issues

If Jellyfin can't access media files:

  1. Check volume mount permissions
  2. Ensure the container user has read access to media directories
  3. Verify SELinux/AppArmor policies if applicable

License

Jellyfin is licensed under GPL-2.0.

Description
The Free Software Media System
Readme 86 KiB