jellyfin

jellyfin

Docker app from hotio's Repository

Overview

WireGuard VPN, Privoxy and Unbound built-in! Basically like Plex, but more buggy.

GitHub
ghcr.io

Upstream Project

Tags Description Commit Last Updated
nightly
nightly-fe4be19
nightly-2026101212
UnstableModified: meta.json2026-10-15 00:15:14
latest
release
release-dce52c0
release-12.2
StableModified: meta.json2026-10-15 00:15:05

Starting the container

cli

docker run --rm \
    --name="jellyfin" \
    -p 8096:8096 \
    -e PUID=1000 \
    -e PGID=1000 \
    -e UMASK=002 \
    -e TZ="Etc/UTC" \
    -e WEBUI_PORTS="8096/tcp" \ #(3)!
    -v /<host_folder_config>:/config \
    -v /<host_folder_data>:/data \
    ghcr.io/hotio/jellyfin

compose

services:
  jellyfin:
    container_name: jellyfin
    image: ghcr.io/hotio/jellyfin
    ports:
      - "8096:8096"
    environment:
      - PUID=1000
      - PGID=1000
      - UMASK=002
      - TZ=Etc/UTC
      - WEBUI_PORTS=8096/tcp #(3)!
    volumes:
      - /<host_folder_config>:/config
      - /<host_folder_data>:/data

Configuration

The following jellyfin path locations are used by default.

JELLYFIN_CONFIG_DIR="/config"
JELLYFIN_DATA_DIR="/config/data"
JELLYFIN_LOG_DIR="/config/log"
JELLYFIN_CACHE_DIR="/config/cache"

You can override these locations by setting them to a different value with a docker environment variable.

Requirements

Don't forget to click **Show more settings...** for all **Variables**! If you do not use the VPN feature, you can remove all VPN related **Variables** and **Extra Parameters** (turn on **ADVANCED VIEW**).

Related apps

Details

Repository
ghcr.io/hotio/jellyfin:latest
Last Updated2026-10-16
First Seen2023-08-20

Runtime arguments

Web UI
http://[IP]:[PORT:8096]
Network
bridge
Shell
bash
Privileged
false
Extra Params
--hostname=jellyfin.internal --cap-add=NET_ADMIN

Template configuration

Host Port for 8096Porttcp

Container Port: 8096

Target
8096
Default
8096
Host Path for /configPathrw

Container Path: /config

Target
/config
Host Path for /dataPathrw

Container Path: /data

Target
/data
PRIVOXY_ENABLEDVariable

Container Variable: PRIVOXY_ENABLED

Default
false|true
UNBOUND_ENABLEDVariable

Container Variable: UNBOUND_ENABLED

Default
false|true
UNBOUND_NAMESERVERSVariable

Container Variable: UNBOUND_NAMESERVERS

VPN_ENABLEDVariable

Container Variable: VPN_ENABLED

Default
false|true
VPN_CONFVariable

Container Variable: VPN_CONF

Default
wg0
VPN_PROVIDERVariable

Container Variable: VPN_PROVIDER

Default
generic|proton|pia
VPN_LAN_NETWORKVariable

Container Variable: VPN_LAN_NETWORK

VPN_LAN_LEAK_ENABLEDVariable

Container Variable: VPN_LAN_LEAK_ENABLED

Default
false|true
VPN_EXPOSE_PORTS_ON_LANVariable

Container Variable: VPN_EXPOSE_PORTS_ON_LAN

VPN_AUTO_PORT_FORWARDVariable

Container Variable: VPN_AUTO_PORT_FORWARD

Default
false
VPN_PORT_REDIRECTSVariable

Container Variable: VPN_PORT_REDIRECTS

VPN_HEALTHCHECK_ENABLEDVariable

Container Variable: VPN_HEALTHCHECK_ENABLED

Default
false|true
VPN_NAMESERVERSVariable

Container Variable: VPN_NAMESERVERS

VPN_PIA_USERVariable

Container Variable: VPN_PIA_USER

VPN_PIA_PASSVariable

Container Variable: VPN_PIA_PASS

VPN_PIA_PREFERRED_REGIONVariable

Container Variable: VPN_PIA_PREFERRED_REGION

VPN_PIA_DIP_TOKENVariable

Container Variable: VPN_PIA_DIP_TOKEN

VPN_PIA_PORT_FORWARD_PERSISTVariable

Container Variable: VPN_PIA_PORT_FORWARD_PERSIST

Default
false|true
PUIDVariable

Container Variable: PUID

Default
99
PGIDVariable

Container Variable: PGID

Default
100
UMASKVariable

Container Variable: UMASK

Default
002