Home / Blog Center / Tips & Tutorials /

How to Install Jellyfin on UGREEN NAS

#NAS storage: Tips & Tutorials

How to Install Jellyfin on UGREEN NAS

12/11/2025

On a supported UGREEN NAS, you can install Jellyfin through the App Center or deploy the official Jellyfin image manually with Docker Compose. If you are still choosing a media platform, compare Plex and Jellyfin on UGREEN NAS before starting.

Using the UGREEN NAS DXP2800 to Install Jellyfin for Home Entertainment

Can Your UGREEN NAS Run Jellyfin?

UGREEN NAS Installation route Hardware acceleration
DH2300 Cannot host Jellyfin No container support
DH4300 Plus App Center or compatible ARM64 Docker image Rockchip RKMPP; App Center recommended
Intel DXP models App Center or Docker Intel Quick Sync or VA-API
DXP2800 GT and DXP4800 GT App Center or Docker AMD VA-API; no Intel Quick Sync

The DH2300 cannot host Jellyfin because it lacks Docker support, including the containerized Jellyfin package in the App Center.

If your NAS cannot host Jellyfin, you can browse and filter UGREEN NAS Storage models or run the Jellyfin server on another computer while keeping the media files on the NAS.

UGREEN NAS storage models

How to Install Jellyfin from the UGREEN App Center

The App Center package handles the container deployment and presents the required folder settings during installation.

  1. Sign in to UGOS Pro with an administrator account.
  2. Open App Center.
  3. Search for Jellyfin and select Install.
  4. Choose the storage space for the Jellyfin application data.
  5. Add at least one Resource Access Path containing your media.
  6. Select a Plugin Download Path for Jellyfin plugins.
  7. Review the configuration and complete the installation.
Install Jellyfin from the UGREEN App Center

The App Center package accepts up to five resource-access paths:

  • The first resource path appears inside Jellyfin as /data.
  • Paths two through five use the mounted folder name as their internal path.
  • One folder can be designated for plugin storage.

Using a dedicated plugin folder makes the application data easier to identify and back up, but the folder does not need to be empty unless the installation interface specifically rejects its contents.

If the first resource path contains your movie library, select /data when adding that library inside Jellyfin. The original UGOS Pro volume path is outside the container and will not work in Jellyfin.

After installation, open Jellyfin from its App Center icon or enter this address in a browser on the same network:

http://NAS-IP:8899

Replace NAS-IP with the local IP address of your UGREEN NAS. You can find it under Control Panel > Network > Network Connection.

The App Center package uses port 8899. Keep that WebUI port unchanged so the App Center shortcut continues to open Jellyfin correctly.

How to Install Jellyfin with Docker Compose

Install Docker from the UGOS Pro App Center, then open Docker > Project > Create. If Docker terminology is unfamiliar, our guide to Docker and Docker Compose on UGREEN NAS explains images, containers, ports, and persistent volumes.

1. Prepare the Jellyfin folders

Create three folders on the NAS:

  • docker/jellyfin/config for the Jellyfin database, users, settings, plugins, and metadata
  • docker/jellyfin/cache for temporary application and transcoding data
  • A media folder containing your movies, television programs, music, or photos

Such as:

/volume1/docker/jellyfin/config
/volume1/docker/jellyfin/cache
/volume1/Media

Replace /volume1 with the actual path used by your NAS.

If the NAS has a compatible SSD storage pool, placing config and cache on the SSD can improve artwork loading, metadata access, and interface responsiveness. Large media files can remain on the HDD pool.

2. Assign folder permissions

Run the container as a dedicated Standard User instead of an administrator account.

Give that user:

  • Read and write access to config
  • Read and write access to cache
  • Read-only access to the media library

3. Configure the Docker Compose File

open the Docker application, click on [Project] > [Create] to initiate the project creation wizard. When creating a project, you need to provide a Docker Compose configuration file:

services:
  jellyfin:
    image: nyanmisaka/jellyfin:latest
    container_name: jellyfin
    restart: always
    devices:
      - /dev/dri:/dev/dri  # Integrated graphics
    environment:
      PUID: 0
      PGID: 0
    volumes:
      - /volume1/docker/jellyfin/config:/config
      - - /volume1/docker/jellyfin/cache:/cache
      - - /volume1/Media:/media:ro
    ports:
      - 9096:8096/TCP
    network_mode: "bridge"

Parameters Explanation

  • image: nyanmisaka/jellyfin:latest specifies the latest version of the Jellyfin server image.
  • container_name: Sets a specified name for the container jellyfin for easy management.
  • restart: always means that the container always restarts, automatically if it stops unexpectedly.
  • devices: /dev/dri:/dev/drimounts the host’s /dev/dri device into the container for hardware acceleration, such as video transcoding.

environment:

Sets environment variables to configure services within the container.

  • PUID: 0:Sets the user ID inside the container, 0means running with root privileges.
  • PGID: 0:Sets the group ID inside the container, 0means running with the root group.

volumes:

  • Feature: Mount local folder paths to the container to ensure data persistence.
  • ./config:./ represents the directory where the current Docker Compose file is located. The config folder in this directory is mounted to the /config directory inside the container, which is used to store Jellyfin’s configuration files. This ensures that configuration data is not lost even if the container is restarted or recreated.
  • ./cache:The cache folder in the current directory is mounted to the /cache directory inside the container, which is used to store Jellyfin’s cache.

ports:

  • 8096:8096/TCPmaps the container’s 8096 port (TCP protocol) to the 9096 port on the UGREEN NAS. This is used for the Jellyfin web management interface for library management and playback operations.

network_mode:

  • bridge:Sets the container’s network mode to bridge mode.
  • Feature: Bridge mode allows the container to share the network with the host and be accessible via the host’s IP. That is, the container provides services through the mapped ports and can communicate with other devices on the same network.

Initial Jellyfin Configuration

Now that Jellyfin is running, it’s time to set it up.

  1. Open a new web browser tab and navigate to http://[YOUR-NAS-IP]:9096, replacing [YOUR-NAS-IP] with the IP address of your UGREEN NAS.
  2. The Jellyfin setup wizard will appear. Follow the on-screen prompts:
    • Choose your preferred language.
    • Create an administrator account with a secure username and password.
    • Add your media libraries. Click Add Media Library, select the content type (e.g., Movies), and for the folder, add the path from inside the container, which is /video from our setup.
    • Select your preferred language and country for fetching metadata.
    • Configure remote access settings if you plan to stream from outside your home network.
  3. Once the wizard is complete, sign in with your new credentials to confirm everything is working correctly.

Complete the Jellyfin Setup Wizard

Both installation methods now continue through the same Jellyfin setup wizard.

1. Select the display language

Choose the language Jellyfin should use for its interface.

select the display language

2. Create the administrator account

Create a unique administrator username and a strong password. Use a different password from the UGOS Pro administrator account.

This Jellyfin account controls users, libraries, plugins, playback, networking, and server settings. Create separate non-administrator Jellyfin accounts for regular viewers after setup.

3. Add the media libraries

Choose Add Media Library, select the content type, and enter the path visible inside Jellyfin:

Installation method Path visible inside Jellyfin
App Center, first resource path /data
App Center, paths two through five The mounted folder name
Manual Docker Compose /media or the path selected in Compose

If the Compose file contains:

- /volume1/Media:/media:ro

select /media inside Jellyfin. /volume1/Media is the NAS-side path and is not visible inside the container.

Keep movies and television programs in separate folders. A practical structure is:

Media/
├── Movies/
│   └── Movie Name (Year)/
│       └── Movie Name (Year).mkv
└── TV Shows/
    └── Series Name/
        └── Season 01/
            └── Series Name - S01E01.mkv

Choose the appropriate metadata language and country, then allow Jellyfin to scan the library.

A large first scan can keep the processor and storage pool busy while Jellyfin downloads metadata, analyzes media, and generates images. Evaluate playback performance after that initial workload has settled.

How to Enable Hardware Transcoding

Direct Play sends the original media to the client without converting the video. Transcoding begins when the client cannot play the source format, the selected bitrate is lower than the source, bandwidth is limited, or subtitles must be burned into the video.

Hardware acceleration moves supported decoding and encoding work from the CPU to the processor’s media engine. Jellyfin provides this feature without requiring a paid subscription.

Intel DXP models: Intel Quick Sync

For the App Center package:

  1. Open the Jellyfin administrator dashboard.
  2. Go to Playback > Transcoding.
  3. Set Hardware Acceleration to Intel QuickSync (QSV).
  4. Enter /dev/dri/renderD128 as the QSV device.
  5. Enable the decoding and encoding formats supported by the processor.
  6. Save the settings.
Enable Hardware Transcoding

For manual Docker, add the Intel render device and the appropriate groups to the Jellyfin service:

    devices:
      - /dev/dri/renderD128:/dev/dri/renderD128
    group_add:
      - "<render-group-id>"
      - "<video-group-id>"

Replace both placeholders with the numerical group IDs used by the NAS. Remove a group if it does not exist on the model, and replace every placeholder before deployment.

AMD GT models: VA-API

The DXP2800 GT and DXP4800 GT use AMD processors and therefore have no Intel Quick Sync path.

In Jellyfin:

  1. Open Playback > Transcoding.
  2. Select Video Acceleration API (VA-API).
  3. Use /dev/dri/renderD128 as the render device.
  4. Enable the codecs supported by the processor.
  5. Save the settings.

A manual AMD deployment also needs the render device and the correct render or video group permissions. Use the same /dev/dri/renderD128 device mapping shown above.

DH4300 Plus: Rockchip RKMPP

The DH4300 Plus uses a Rockchip processor with a VPU for media acceleration. The App Center package is the recommended route because it supplies the required Rockchip device access.

To enable RKMPP:

  1. Open Playback > Transcoding.
  2. Select Rockchip MPP (RKMPP).
  3. Enable the formats supported by the processor.
  4. Save the settings.
Enable Hardware Transcoding on DH

How to Reduce Unnecessary Transcoding

The most reliable way to improve playback is to let compatible clients Direct Play the original media.

  • Install a current Jellyfin client on televisions, phones, and streaming devices.
  • Keep an H.264 and AAC version for older clients that cannot play HEVC or newer audio formats.
  • Prefer text-based subtitles such as SRT.
  • Image-based subtitles can require video burn-in on clients that cannot render them directly.
  • Test the high-bitrate, HDR, audio, and subtitle combinations used in your household.
  • Use wired Ethernet for high-bitrate 4K playback where practical.

Two files with the same resolution can behave differently. Codec, bitrate, color depth, audio, subtitles, and client support determine whether Jellyfin Direct Plays or transcodes the file.

How to Update Jellyfin Without Losing Its Configuration

The update procedure depends on the installation method.

Update the App Center package

  1. Back up the Jellyfin application data.
  2. Open App Center.
  3. Review the available Jellyfin update.
  4. Stop active playback.
  5. Install the update.
  6. Open Jellyfin and verify the users, libraries, and playback.

Update a manual Docker installation

  1. Back up the folder mounted to /config.
  2. Stop the Jellyfin project.
  3. Pull the new image or change the image tag in the Compose file.
  4. Recreate the container without removing the mounted folders.
  5. Start Jellyfin.
  6. Confirm that users, libraries, metadata, and playback remain intact.
  7. Keep the previous configuration backup until the new release has been tested.

The /config directory contains the server database, user accounts, watch history, metadata, plugins, and settings. Recreating the container preserves that information when the directory remains mounted. Deleting it resets the server.

A newer Jellyfin release may upgrade its database. Returning to an older release can require the configuration backup created before the update.

Back up irreplaceable media separately. RAID maintains availability after supported drive failures; it cannot recover deleted, corrupted, or encrypted files.

Fix Common Jellyfin Problems

Problem Likely cause First action
Jellyfin does not appear in App Center The model lacks support for the containerized package The DH2300 cannot host Jellyfin
Jellyfin cannot see the media Wrong internal path or insufficient permission Check /data, /media, and folder access
The web page does not open Wrong port, stopped container, or port conflict Use 8899 for App Center or the configured Docker host port
The App Center shortcut no longer works The package WebUI port was changed Restore port 8899
Hardware acceleration remains inactive Wrong method, missing device access, or unsupported codec Check QSV, VA-API, or RKMPP and inspect the FFmpeg log
CPU use remains high Software transcoding, subtitle burn-in, audio conversion, or tone mapping Inspect the active playback session
Settings disappear after container recreation /config was not mounted persistently Correct the volume and restore the configuration backup
The first library scan is slow Metadata, artwork, or media analysis is still running Let the initial scan finish and review scheduled tasks
Other devices cannot discover the server UDP discovery is blocked or unmapped Check port 7359/UDP or connect with the NAS IP
An administrator password is forgotten Jellyfin account recovery is required Use Jellyfin’s recovery process while preserving /config

Frequently Asked Questions About Install Jellyfin

Can the UGREEN DH2300 run Jellyfin?

No. The DH2300 does not support Docker, and the Jellyfin application in the UGREEN App Center is container-based. The DH2300 can store media for a Jellyfin server running on another device, but it cannot host the server.

What port does Jellyfin use on UGREEN NAS?

The UGREEN App Center package uses port 8899, so local access is http://NAS-IP:8899. A manual Jellyfin Docker container uses port 8096 unless it is mapped to a different host port.

Is the App Center Jellyfin package different from Docker?

The App Center package is a managed containerized installation. UGREEN configures its application paths, port, and hardware access. Manual Docker Compose gives you direct control over the image, version, user permissions, paths, ports, network, and hardware devices.

How do I know whether Jellyfin hardware transcoding is working?

Force a video to a lower resolution or bitrate, confirm that the Jellyfin Dashboard reports transcoding, and inspect the current FFmpeg transcode log. The log should show qsv, vaapi, or rkmpp, depending on the processor and selected acceleration method.

Quick Navigation
Related Reads
How to Install Plex on UGREEN NAS
How to Install Plex on UGREEN NAS
25/12/2024
Best RAID for Home NAS: RAID 0, 1, 5, 6, or 10?
Best RAID for Home NAS: RAID 0, 1, 5, 6, or 10?
08/05/2025