### Start Jellyfin from CMD Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/installation/advanced/source.md Starts the Jellyfin executable from the default installation directory using CMD. ```cmd %APPDATA%\Jellyfin-Server\jellyfin.exe ``` -------------------------------- ### Portable Windows Install - Run Batch File Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/installation/advanced/manual.md Command to run the jellyfin.bat file to start the server. ```cmd jellyfin.bat ``` -------------------------------- ### Configure and Start systemd Service Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/installation/advanced/manual.md Applies correct permissions to the service file, reloads systemd, enables the service to start on boot, and starts the Jellyfin service. ```bash sudo chmod 644 jellyfin.service sudo systemctl daemon-reload sudo systemctl enable jellyfin.service sudo systemctl start jellyfin.service ``` -------------------------------- ### Start Jellyfin from PowerShell Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/installation/advanced/source.md Starts the Jellyfin executable from the default installation directory using PowerShell. ```powershell &"$env:AppData\Jellyfin-Server\jellyfin.exe" ``` -------------------------------- ### docker-compose.yml Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/installation/_container-docker-compose.md Example docker-compose.yml file for setting up Jellyfin. ```yaml services: jellyfin: image: jellyfin/jellyfin container_name: jellyfin # Optional - specify the uid and gid you would like Jellyfin to use instead of root user: uid:gid ports: - 8096:8096/tcp - 7359:7359/udp volumes: - /path/to/config:/config - /path/to/cache:/cache - type: bind source: /path/to/media target: /media - type: bind source: /path/to/media2 target: /media2 read_only: true # Optional - extra fonts to be used during transcoding with subtitle burn-in - type: bind source: /path/to/fonts target: /usr/local/share/fonts/custom read_only: true restart: 'unless-stopped' # Optional - alternative address used for autodiscovery environment: - JELLYFIN_PublishedServerUrl=http://example.com # Optional - may be necessary for docker healthcheck to pass if running in host network mode extra_hosts: - 'host.docker.internal:host-gateway' ``` -------------------------------- ### Install software-properties-common Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/installation/advanced/manual.md Installs the software-properties-common package if the add-apt-repository command fails. ```sh sudo apt-get install software-properties-common ``` -------------------------------- ### Installation Source: https://github.com/jellyfin/jellyfin.org/blob/master/README.md Installs the necessary dependencies for the project. ```console npm install ``` -------------------------------- ### Example Music Folder Structure Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/server/media/music.md This example shows how albums should be organized in folders for Jellyfin to recognize them. ```txt Music ├── Some Artist │ ├── Album A │ │ ├── Song 1.flac │ │ ├── Song 2.flac │ │ └── Song 3.flac │ └── Album B │ ├── Track 1.m4a │ ├── Track 2.m4a │ └── Track 3.m4a └── Album X ├── Whatever You.mp3 ├── Like To.mp3 ├── Name Your.mp3 └── Music Files.mp3 ``` -------------------------------- ### Download and install GPG signing key Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/installation/advanced/manual.md Downloads the Jellyfin Team's GPG signing key and installs it for APT repository verification. ```sh sudo mkdir -p /etc/apt/keyrings curl -fsSL https://repo.jellyfin.org/jellyfin_team.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/jellyfin.gpg ``` -------------------------------- ### Install curl and gnupg Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/installation/advanced/manual.md Installs the necessary tools for managing repositories and keys. ```sh sudo apt install curl gnupg ``` -------------------------------- ### Run Docker Compose Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/installation/_container-docker-compose.md Command to start the Jellyfin container using Docker Compose. ```sh docker compose up ``` -------------------------------- ### Podman Run Example Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/installation/_container-podman.md Example command to run Jellyfin as a container using Podman. ```sh podman run \ --detach \ --label "io.containers.autoupdate=registry" \ --name myjellyfin \ --publish 8096:8096/tcp \ --device /dev/dri/:/dev/dri/ \ # --security-opt label=disable # Only needed for older versions of container-selinux < 2.226 --rm \ --user $(id -u):$(id -g) \ --userns keep-id \ --volume jellyfin-cache:/cache:Z \ --volume jellyfin-config:/config:Z \ --mount type=bind,source=/path/to/media,destination=/media,ro=true,relabel=private \ docker.io/jellyfin/jellyfin:latest ``` -------------------------------- ### Install .deb packages with apt Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/installation/advanced/manual.md Installs downloaded Jellyfin .deb packages, ensuring dependency resolution. ```sh sudo apt install ./jellyfin-server_*.deb ./jellyfin-web_*.deb ./jellyfin-ffmpeg_*.deb ``` -------------------------------- ### Install Jellyfin sub-packages explicitly Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/installation/advanced/manual.md Installs the Jellyfin server and web interface packages individually. ```sh sudo apt install jellyfin-server jellyfin-web ``` -------------------------------- ### Execute the installation script Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/installation/linux.md This command executes the downloaded installation script with superuser privileges. ```bash sudo bash install-debuntu.sh ``` -------------------------------- ### Install Podman Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/installation/_container-podman.md Installs Podman on a system using DNF package manager. ```sh sudo dnf install -y podman ``` -------------------------------- ### File Name Example 2 Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/server/media/_video-external-extras.md Example of using a specific filename for a sample. ```txt Awesome TV Show (2024) ├── Season 1 │ ├── Awesome TV Show (2024) S01E01 episode name.mp4 └── sample.mp4 ``` -------------------------------- ### Configuration Directory Examples Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/contributing/branding.md Examples of casing for Jellyfin configuration directories based on operating system conventions. ```shell /var/lib/jellyfin AppData/Jellyfin ``` -------------------------------- ### Create Jellyfin Startup Script Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/installation/advanced/manual.md Creates a script to run Jellyfin with necessary command-line arguments, simplifying execution. ```bash #!/bin/bash JELLYFINDIR="/opt/jellyfin" FFMPEGDIR="/usr/share/jellyfin-ffmpeg" $JELLYFINDIR/jellyfin/jellyfin \ -d $JELLYFINDIR/data \ -C $JELLYFINDIR/cache \ -c $JELLYFINDIR/config \ -l $JELLYFINDIR/log \ --ffmpeg $FFMPEGDIR/ffmpeg ``` -------------------------------- ### Create Jellyfin Directory and Navigate Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/installation/advanced/manual.md Creates the directory for Jellyfin and its files in /opt and changes the current directory to it. ```bash sudo mkdir /opt/jellyfin cd /opt/jellyfin ``` -------------------------------- ### Custom values.yaml for Helm installation Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/installation/advanced/kubernetes.md Example values.yaml file for customizing Jellyfin installation via Helm. ```yaml # values.yaml replicaCount: 1 image: pullPolicy: IfNotPresent persistence: config: enabled: true size: 5Gi storageClass: '' media: enabled: true size: 100Gi storageClass: '' ingress: enabled: true className: 'traefik' hosts: - host: jellyfin.example.com paths: - path: / pathType: Prefix resources: limits: cpu: 2000m memory: 4Gi requests: cpu: 500m memory: 1Gi nodeSelector: {} tolerations: [] affinity: {} ``` -------------------------------- ### Systemd Example for Podman Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/installation/_container-podman.md Example systemd unit file for managing a Jellyfin Podman container. ```ini [Unit] Description=jellyfin [Container] Image=docker.io/jellyfin/jellyfin:latest AutoUpdate=registry PublishPort=8096:8096/tcp UserNS=keep-id #SecurityLabelDisable=true # Only needed for older versions of container-selinux < 2.226 AddDevice=/dev/dri/:/dev/dri/ Volume=jellyfin-config:/config:Z Volume=jellyfin-cache:/cache:Z Volume=jellyfin-media:/media:Z [Service] ``` -------------------------------- ### Docker Container Status Output Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/post-install/networking/9_advanced/letsencrypt.md This is an example of the output from the 'docker ps' command, verifying that the swag docker container has started. ```text CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 09346434b8ea linuxserver/swag "/init" 2 minutes ago Up 5 seconds 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp swag ``` -------------------------------- ### Local Development Source: https://github.com/jellyfin/jellyfin.org/blob/master/README.md Starts a local development server for live previewing changes. ```console npm start ``` -------------------------------- ### Bind Mount Multiple Media Libraries Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/installation/_container-docker-cli.md Example of how to bind mount multiple media directories into the Jellyfin container. ```sh --mount type=bind,source=/path/to/media1,target=/media1 --mount type=bind,source=/path/to/media2,target=/media2,readonly ``` -------------------------------- ### Manage Jellyfin system service Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/installation/advanced/manual.md Commands to start, stop, restart, or check the status of the Jellyfin system service using systemctl or service. ```sh sudo systemctl {action} jellyfin sudo service jellyfin {action} ``` -------------------------------- ### Run Jellyfin Manually Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/installation/advanced/manual.md Executes the Jellyfin startup script to run the server. ```bash ./jellyfin.sh ``` -------------------------------- ### Verify OpenCL Runtime Status in LXC Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/post-install/transcoding/hardware-acceleration/rockchip.md This command checks for installed packages related to Mali drivers, OpenCL, and Jellyfin within the LXC container, using Ubuntu Jammy as an example. ```shell dpkg -l | egrep "libmali|clinfo|jellyfin" ``` -------------------------------- ### Create Data Directories Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/installation/advanced/manual.md Creates sub-directories for Jellyfin data, cache, configuration, and logs. ```bash sudo mkdir data cache config log ``` -------------------------------- ### Install Jellyfin via extrepo (Debian) Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/installation/advanced/manual.md Installs Jellyfin using the extrepo package manager on Debian systems, providing a trusted installation method. ```bash sudo apt install extrepo sudo extrepo enable jellyfin ``` -------------------------------- ### Install Jellyfin metapackage Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/installation/advanced/manual.md Installs the main Jellyfin package, which includes all necessary sub-packages. ```sh sudo apt install jellyfin ``` -------------------------------- ### Manual Backup Example (Debian) Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/administration/backup-and-restore.md Example commands to create a manual backup of Jellyfin data and configuration directories on a Debian system. ```bash TIMESTAMP=$(date +%Y%m%d%H%M%S) VERSION=10.9.10 sudo mkdir -p /media/backups/jellyfin.${TIMESTAMP}_${VERSION} # Or change the path wherever in your system makes sense to you sudo cp -a /var/lib/jellyfin /media/backups/jellyfin.${TIMESTAMP}_${VERSION}/data sudo cp -a /etc/jellyfin /media/backups/jellyfin.${TIMESTAMP}_${VERSION}/config ``` -------------------------------- ### List build platforms Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/installation/advanced/source.md Lists the available platforms for building. ```shell ./build --list-platforms ``` -------------------------------- ### Enable and start jellyfin service Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/installation/advanced/community.md Enables the jellyfin service to start on boot and starts it immediately. ```sh sudo systemctl enable --now jellyfin ``` -------------------------------- ### Set Permissions for Jellyfin Files Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/installation/advanced/manual.md Changes ownership of Jellyfin files and directories to the current user and group, and makes the startup script executable. ```bash USER=$(id --name --user) GROUP=$(id --name --group) sudo chown -R $USER:$GROUP * sudo chmod u+x jellyfin.sh ``` -------------------------------- ### Install FFmpeg Dependencies (Debian/Derivatives) Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/installation/advanced/manual.md Installs FFmpeg and its dependencies if running Debian or a derivative, especially if Jellyfin-specific FFmpeg is needed. ```bash sudo apt install -f ``` -------------------------------- ### Build script help Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/installation/advanced/source.md Displays help information for the build script. ```shell ./build --help ``` -------------------------------- ### Run Jellyfin container with Podman Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/installation/advanced/source.md Runs the Jellyfin container using Podman. ```shell podman run -d -p 8096:8096 $USERNAME/jellyfin ``` -------------------------------- ### Install NVIDIA NVENC/NVDEC on Debian Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/post-install/transcoding/hardware-acceleration/nvidia.md Install the necessary NVIDIA libraries for NVENC (encoding) and NVDEC (decoding) support on Debian systems. Ensure the NVIDIA driver is already installed. ```shell sudo apt update && sudo apt install -y libnvcuvid1 libnvidia-encode1 ``` -------------------------------- ### Docker command line example Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/post-install/transcoding/hardware-acceleration/amd.md Example of running the Jellyfin Docker container with hardware acceleration enabled. ```shell docker run -d \ --name=jellyfin \ --volume /path/to/config:/config \ --volume /path/to/cache:/cache \ --volume /path/to/media:/media \ --user 1000:1000 \ --group-add="122" \# Change this to match your "render" host group id and remove this comment --net=host \ --restart=unless-stopped \ --device /dev/dri/renderD128:/dev/dri/renderD128 \ jellyfin/jellyfin ``` -------------------------------- ### Start Jellyfin Daemon Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/administration/migrate.md Command to start the Jellyfin server service. ```bash sudo service jellyfin start ``` -------------------------------- ### Clone the repository Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/installation/advanced/source.md Clones the jellyfin-packaging repository to start the build process. ```shell git clone https://github.com/jellyfin/jellyfin-packaging.git cd jellyfin-packaging ``` -------------------------------- ### Initialize submodules Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/installation/advanced/source.md Initializes the submodules required for building. ```shell git submodule update --init ``` -------------------------------- ### IPBan Configuration Example Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/post-install/networking/9_advanced/ipban.md Example configuration for IPBan to monitor Jellyfin logs. ```config Jellyfin C:/ProgramData/Jellyfin/Server/log/log_{year-local}{month-local}{day-local}.log [^\s]+)\S+\s+has\s+been\s+(?denied)\s+\(IP:\s+"(?[^,\"\s]+)"\) ]]> [^\s]+)\S+\s+has\s+succeeded ]]> Windows 10000 16777216 0 ``` -------------------------------- ### Portable macOS Install - Run Jellyfin Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/installation/advanced/manual.md Command to run Jellyfin from the terminal. ```shell ./jellyfin ``` -------------------------------- ### Local Development with Host Binding Source: https://github.com/jellyfin/jellyfin.org/blob/master/README.md Starts a local development server, instructing the host check to bind against all addresses, useful for dev containers. ```console npm run start -- --host 0.0.0.0 ``` -------------------------------- ### Movie File Naming Example Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/server/media/_video-multipart.md Example of how to name multiple parts of a movie. ```text Movie Name (2010) ├── Movie Name-cd1.mkv ├── Movie Name-cd2.mkv └── Movie Name-cd3.mkv ``` -------------------------------- ### Example Lyric File Naming Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/server/media/music.md This example shows how lyric files should be named to correspond with their respective music tracks. ```txt Music └── Some Artist └── Album A ├── Song 1.flac ├── Song 1.lrc ├── Song 2.flac ├── Song 2.lrc ├── Song 3.flac └── Song 3.lrc ``` -------------------------------- ### Add Jellyfin repository configuration Source: https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/installation/advanced/manual.md Creates a new APT repository source file for Jellyfin, dynamically setting OS, codename, and architecture. ```sh export VERSION_OS="$( awk -F'=' '/^ID=/{ print $NF }' /etc/os-release )" export VERSION_CODENAME="$( awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release )" export DPKG_ARCHITECTURE="$( dpkg --print-architecture )" cat <