Jellyfin on NAS: Setup Guide

How to install Jellyfin on a NAS using Docker. Covering Synology and QNAP setup, library configuration, hardware transcoding via VAAPI, and client setup. The open-source Plex alternative.

Jellyfin is a fully open-source, subscription-free media server. It does everything Plex does for local streaming without a Plex Pass requirement, without a cloud account requirement, and without any data leaving your network. Hardware transcoding is free, multi-user support is built in, and the entire codebase is open source. This guide covers deploying Jellyfin on a NAS via Docker, configuring your media library, enabling hardware transcoding (Intel VAAPI for Celeron-based NAS), and connecting client apps on TVs, phones, and browsers.

In short: Deploy Jellyfin via Docker with your media folder mounted as a volume, enable Intel VAAPI hardware transcoding (if you have an Intel NAS), and install the Jellyfin app on your client devices. Unlike Plex, hardware transcoding is free. No subscription required. Remote access requires configuring a reverse proxy or opening a port.

Jellyfin vs Plex: When to Choose Jellyfin

Choose Jellyfin over Plex when:

  • You want hardware transcoding without paying for Plex Pass
  • You want no Plex account requirement. Jellyfin works fully offline and local with no cloud dependency
  • You want fully open-source software with no telemetry
  • You are running multiple NAS devices and want per-server control without a Plex Home subscription

Plex may still be preferable if:

  • You have existing Plex libraries and metadata you don't want to rebuild
  • You rely heavily on Plex's mobile sync / offline downloads (Jellyfin has this but it's less mature)
  • Your household uses Roku or older Fire TV devices that have better Plex app support than Jellyfin

For new deployments on Intel NAS hardware where hardware transcoding is a priority, Jellyfin is the better value proposition. Identical functionality to Plex for local streaming at zero ongoing cost.

Step 1: Deploy Jellyfin via Docker

Create a Docker Compose file for Jellyfin. On Synology, create it at /volume1/docker/jellyfin/docker-compose.yml; on QNAP at /share/docker/jellyfin/docker-compose.yml:

version: '3.8'
services:
  jellyfin:
    image: jellyfin/jellyfin:latest
    container_name: jellyfin
    network_mode: host
    environment:
      - JELLYFIN_PublishedServerUrl=http://[NAS-IP]:8096
    volumes:
      - ./config:/config
      - ./cache:/cache
      - /volume1/media:/media:ro   # adjust path to your media folder
    devices:
      - /dev/dri:/dev/dri           # required for VAAPI hardware transcoding
    restart: unless-stopped

The /dev/dri device mount enables Intel VAAPI hardware transcoding. This is the key difference from a basic Docker deployment. Replace /volume1/media with the path to your media folder on the NAS.

Deploy with docker compose up -d. Jellyfin is accessible at http://[NAS-IP]:8096 after approximately 30 seconds.

Synology note: On Synology, the /dev/dri device may not be accessible to Docker containers by default. If hardware transcoding fails, check that Intel GPU driver packages are installed in the Package Center and that the Docker user has permission to access the device. Some DSM versions require running the container in privileged mode as an alternative.

Step 2: Add Media Libraries

On first launch, Jellyfin's setup wizard walks through library creation:

  1. Choose a display language and create an admin account
  2. Click Add Media Library and select the type (Movies, TV Shows, Music, etc.)
  3. Click the + button to add a folder path. Navigate to /media/ (the container path mapped from your NAS media folder) and select the appropriate subfolder (e.g. /media/Movies, /media/TV)
  4. Choose your metadata language and preferred metadata sources (TheMovieDB, TheTVDB)
  5. Click OK then Next. Jellyfin begins scanning and downloading metadata

File naming conventions: Jellyfin follows the same conventions as Plex. Movies: Movie Title (Year)/Movie Title (Year).mkv. TV Shows: Show Name/Season 01/Show Name S01E01.mkv. Correctly named files match metadata automatically.

Step 3: Enable Hardware Transcoding (VAAPI)

Hardware transcoding converts video formats or resolutions on-the-fly when a client cannot play the file directly. On Intel NAS hardware, VAAPI (Video Acceleration API) enables this at no CPU cost via the Intel GPU:

  1. In Jellyfin, go to Administration → Playback
  2. Under Hardware Acceleration, select Video Acceleration API (VAAPI)
  3. The VAAPI device path should auto-detect as /dev/dri/renderD128
  4. Enable Allow hardware-accelerated H.264 encoding, H.265 encoding, and AV1 decoding (if supported by your GPU)
  5. Save settings

Verify hardware transcoding: start a stream that requires transcoding. In Administration → Dashboard → Active Sessions, the stream should show the codec with a hardware icon next to it. If it shows software transcode, check that the /dev/dri device mount is correctly configured in your Compose file.

Step 4: Client Setup

Jellyfin clients are available on all major platforms:

  • Web browser: Access directly at http://[NAS-IP]:8096. No client install required for local streaming. For remote access via browser, configure HTTPS
  • Apple TV / tvOS: Jellyfin app available on the App Store
  • Android TV: Official Jellyfin app on Google Play
  • iOS / Android mobile: Official Jellyfin app on both stores
  • Infuse (iOS/tvOS/macOS): Third-party client with excellent Apple TV integration. Many users prefer Infuse's interface for Apple TV Jellyfin playback
  • Swiftfin (iOS): Native SwiftUI Jellyfin client, polished and actively maintained
  • Kodi plugin: JellyCon plugin for Kodi integration

On first launch of any client, enter your Jellyfin server URL. On the local network, use http://[NAS-IP]:8096. For remote access, set up HTTPS via NGINX Proxy Manager or a Cloudflare Tunnel.

🇦🇺 Australian Buyers: Hardware and Hosting Notes

Best NAS for Jellyfin in Australia (March 2026):

  • QNAP TS-464 (~$989): Intel Celeron N5095 with VAAPI. Hardware transcoding works well, handles 2-3 simultaneous 1080p transcode streams or 1-2 4K streams. PCIe slot for 10GbE if streaming to multiple devices on fast storage
  • Synology DS423+ (~$980): Intel Celeron J4125. VAAPI hardware transcoding available. Note: stock RAM is 2GB, upgrade to 8GB for running Docker containers alongside Jellyfin

Both models handle Jellyfin for a household of 3-5 users direct-playing common formats. Hardware transcoding is free on Jellyfin. No Plex Pass equivalent required. This makes an Intel NAS significantly more valuable for Jellyfin than for Plex where the same hardware requires a Plex Pass subscription for hardware transcoding.

Remote access and NBN: Jellyfin remote streaming requires your NBN upload bandwidth. For 1080p streaming remotely, 10-15Mbps sustained is needed. On NBN 100 (typical 20Mbps upload), one 1080p remote stream is comfortable. 4K remote streaming requires 25-40Mbps upload. Typically only NBN 1000 or FTTP on higher tiers.

Related reading: our NAS buyer's guide and our NAS explainer.

Free tools: Plex Media Planner and NAS Sizing Wizard. No signup required.

Is Jellyfin really free?

Yes, completely. Jellyfin is open-source (GNU GPL v2) with no paid tiers, no subscription, and no feature locked behind payment. Hardware transcoding, multi-user access, mobile sync, and live TV support are all free. There are no telemetry data sales or ad models. The project is funded by donations and volunteer development. The only cost is your NAS hardware and electricity.

Does Jellyfin have hardware transcoding on a QNAP TS-464?

Yes. The TS-464 uses an Intel Celeron N5095 with Intel UHD Graphics, which supports VAAPI hardware transcoding. Mount /dev/dri in the Docker Compose file and configure VAAPI in Jellyfin's playback settings. Hardware transcoding on the TS-464 handles H.264, H.265/HEVC, and VP9 decode. The same capability is free in Jellyfin. On Plex it requires Plex Pass.

Can Jellyfin and Plex run on the same NAS?

Yes. Both Jellyfin and Plex can run simultaneously on the same NAS. Either as native packages or Docker containers using different ports (Plex uses 32400, Jellyfin uses 8096). They can point to the same media folders (use read-only mounts). Running both allows you to evaluate them side-by-side and transition gradually. The combined resource usage is modest for direct-play workloads on 8GB RAM.

Does Jellyfin work on Synology NAS?

Yes, via Container Manager (DSM 7.2+). The setup is the same as described in this guide. Deploy the Docker Compose stack through Container Manager's Projects tab. VAAPI hardware transcoding requires additional steps on Synology to expose the GPU device to Docker: install the Intel GPU driver from the Package Center and ensure the Docker container has access to /dev/dri. DSM 7.2+ on modern Intel-based Synology models (DS423+, DS923+) supports this.

How is Jellyfin different from Plex vs Emby?

Jellyfin is a fork of Emby from before Emby went closed-source. Emby Premier ($7.99/month or $119 lifetime) is required for hardware transcoding. Similar model to Plex. Jellyfin has all the same features for free and has been more actively developed than Emby in recent years. Plex has a larger user base, more polished mobile apps, and a longer track record. Jellyfin is the best choice for users who want free hardware transcoding and open-source software. Plex is better if you value ecosystem breadth and polished client apps over cost.

Planning how much storage your media library needs? The Plex Storage Planner estimates total NAS storage based on library size, video quality, and growth rate. The same estimates apply to Jellyfin.

Media Storage Planner →