Merge branch 'master' into rework-video-content-docs

This commit is contained in:
felix920506
2025-04-27 16:02:54 -04:00
committed by GitHub
101 changed files with 825 additions and 1007 deletions
+10 -3
View File
@@ -1,11 +1,18 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["github>jellyfin/.github//renovate-presets/nodejs", ":semanticCommitsDisabled"],
"extends": [
"github>jellyfin/.github//renovate-presets/nodejs",
":semanticCommitsDisabled"
],
"packageRules": [
{
"description": "Disable major updates for React",
"matchPackagePrefixes": ["react"],
"matchPackageNames": ["@types/react", "@types/react-helmet", "@types/react-router-dom"],
"matchPackageNames": [
"@types/react",
"@types/react-helmet",
"@types/react-router-dom",
"react{/,}**"
],
"matchUpdateTypes": "major",
"enabled": false
}
+1 -1
View File
@@ -80,7 +80,7 @@ jobs:
comment-tag: CFPages-deployment
mode: recreate
- name: Download workflow artifact
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
with:
name: jellyfin-org__build
path: build
@@ -44,7 +44,7 @@ The downside of this is, though, that we might not be able to cleanly implement
1. This blog post starts the process to provide the warning to all unstable users that this is coming. Note that as of posting, unstable builds are disabled due to the recent 10.10.0 release, and will remain off for a little while.
2. About 1-2 weeks after this blog post, we will merge the Library EFCore migration into our `master` branch and begin preliminary testing. If you want to help here, you will have to [build Jellyfin from source](/docs/general/installation/source), and the more people who can help here the better!
2. About 1-2 weeks after this blog post, we will merge the Library EFCore migration into our `master` branch and begin preliminary testing. If you want to help here, you will have to [build Jellyfin from source](/docs/general/installation/advanced/source), and the more people who can help here the better!
3. About 2 weeks after merging, assuming everything looks generally OK, we will **re-enable unstable builds for the general public**. At this point, all unstable builds will apply the initial migrations on startup. That will bring us to about 4 weeks (give or take a week) from the 10.10.0 release.
@@ -60,4 +60,4 @@ Third, **ensure you disable automatic upgrades**. We generally recommend this an
Fourth, **if you run into trouble, please ensure you report the bug with a title containing `[EFCore Library]`**. This will help us find and fix the bugs.
Fifth and finally, **if you have a failing migration, restore an older database version first and try to re-run it**. If it still fails, try your oldest (ideally, 10.9.11 or 10.10.0 stable) backup as well. If *that* one doesn't work, it's a new bug to report.
Fifth and finally, **if you have a failing migration, restore an older database version first and try to re-run it**. If it still fails, try your oldest (ideally, 10.9.11 or 10.10.0 stable) backup as well. If _that_ one doesn't work, it's a new bug to report.
@@ -56,6 +56,12 @@ If you are planning to use a dedicated graphics card (including upgrading an old
Intel Drivers are much easier to install on Linux, with many distributions including them by default. If you do not need CUDA for other applications, it is highly recommended that you stick with Intel Graphics on Linux.
:::caution
Intel ARC B series cards require ReBar to be enabled. This means you must use it on a platform with Intel 10th gen, AMD Ryzen 3000 series or newer.
:::
### Servers without GPUs
Not having a GPU is **NOT** recommended for Jellyfin, as video transcoding on the CPU is very performance demanding. HDR
@@ -154,7 +160,7 @@ Please refer to [this table](https://en.wikipedia.org/wiki/Intel_Quick_Sync_Vide
Intel CPUs with a model description that ends with F don't have integrated graphics. These are intended to be used with a dedicated graphics card. Please beware if you intend to use Intel integrated graphics.
If you are planning to use Linux with Intel 12/13th Gen integrated graphics or ARC, these GPUs only work on Linux Kernel 6.2 or newer. Please check your distribution to make sure it has a supported Linux Kernel version. Please read [Known Intel limitations on Linux](/docs/general/administration/hardware-acceleration/known-issues#intel-on-linux) for more info.
If you are planning to use Linux with Intel 12/13th Gen integrated graphics or ARC, these GPUs only work on Linux Kernel 6.2 or newer. Please check your distribution to make sure it has a supported Linux Kernel version. Please read [Known Intel limitations on Linux](/docs/general/post-install/transcoding/hardware-acceleration/known-issues#intel-on-linux) for more info.
:::caution
+1 -1
View File
@@ -20,7 +20,7 @@ To solve this, you have the following options:
## Docker or VMs
For storage, a moderate size library database can grow anywhere from 10 to 100 GB. The [transcoding](/docs/general/server/transcoding) folder needs roughly the same size as the original media if it's being transcoded at the same bitrate. A single 50GB Blu-Ray Remux by itself can take up to approximately 60GB or as little as 15GB, depending on the quality selected. If the transcoding folder is held on the same storage as the database, this must be taken into consideration.
For storage, a moderate size library database can grow anywhere from 10 to 100 GB. The [transcoding](/docs/general/post-install/transcoding) folder needs roughly the same size as the original media if it's being transcoded at the same bitrate. A single 50GB Blu-Ray Remux by itself can take up to approximately 60GB or as little as 15GB, depending on the quality selected. If the transcoding folder is held on the same storage as the database, this must be taken into consideration.
## Cloud
+10 -10
View File
@@ -13,16 +13,16 @@ The goal is to Direct Play all media. This means the container, video, audio and
[Test your browser's compatibility for any codec profile.](https://cconcolato.github.io/media-mime-support/)
| Sorted by efficency (excluding bit depth) | Chrome | Edge | Firefox | Safari | Android | Android TV | iOS | SwiftFin (iOS) | [Roku](https://developer.roku.com/docs/specs/media/streaming-specifications.md) | Kodi | [Desktop](/docs/general/clients/index.html#jellyfin-desktop) |
| ------------------------------------------------------------------------------------------------------------------ | -------------- | -------------- | ------- | --------------- | -------------- | -------------- | -------------- | --------------- | ------------------------------------------------------------------------------- | ---- | ------------------------------------------------------------ |
| [MPEG-4 Part 2/SP](https://en.wikipedia.org/wiki/DivX) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
| [MPEG-4 Part 2/ASP](<https://en.wikipedia.org/wiki/MPEG-4_Part_2#Advanced_Simple_Profile_(ASP)>) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | | ✅ | ✅ |
| [H.264 8Bit](https://caniuse.com/#feat=mpeg4 'H264 Browser Support Reference') | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| [H.264 10Bit](https://caniuse.com/#feat=mpeg4 'H264 Browser Support Reference') | ✅ | ✅ | ❌ | 🔶<sup>12</sup> | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ |
| [H.265 8Bit](https://caniuse.com/#feat=hevc 'HEVC Browser Support Reference') | 🔶<sup>8</sup> | ✅<sup>7</sup> | ❌ | 🔶<sup>1</sup> | 🔶<sup>2</sup> | ✅<sup>5</sup> | 🔶<sup>1</sup> | ✅<sup>6</sup> | 🔶<sup>9</sup> | ✅ | ✅ |
| [H.265 10Bit](https://caniuse.com/#feat=hevc 'HEVC Browser Support Reference') | 🔶<sup>8</sup> | ✅<sup>7</sup> | ❌ | 🔶<sup>1</sup> | 🔶<sup>2</sup> | 🔶<sup>5</sup> | 🔶<sup>1</sup> | ✅<sup>6</sup> | 🔶<sup>9</sup> | ✅ | ✅ |
| [VP9](https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Video_codecs#VP9 'V9 Browser Support Reference') | ✅ | ✅ | ✅ | ✅<sup>10</sup> | ✅<sup>3</sup> | 🔶<sup>3</sup> | ❌ | ✅<sup>13</sup> | ✅ | ✅ | ✅ |
| [AV1](https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Video_codecs#AV1 'AV1 Browser Support Reference') | ✅ | ✅ | ✅ | 🔶<sup>11</sup> | ✅ | 🔶<sup>4</sup> | ❌ | 🔶<sup>14</sup> | ✅ | ✅ | ✅ |
| Sorted by efficency (excluding bit depth) | Chrome | Edge | Firefox | Safari | Android | Android TV | iOS | SwiftFin (iOS) | [Roku](https://developer.roku.com/docs/specs/media/streaming-specifications.md) | Kodi | Jellyfin Media Player |
| ------------------------------------------------------------------------------------------------------------------ | -------------- | -------------- | ------- | --------------- | -------------- | -------------- | -------------- | --------------- | ------------------------------------------------------------------------------- | ---- | --------------------- |
| [MPEG-4 Part 2/SP](https://en.wikipedia.org/wiki/DivX) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
| [MPEG-4 Part 2/ASP](<https://en.wikipedia.org/wiki/MPEG-4_Part_2#Advanced_Simple_Profile_(ASP)>) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | | ✅ | ✅ |
| [H.264 8Bit](https://caniuse.com/#feat=mpeg4 'H264 Browser Support Reference') | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| [H.264 10Bit](https://caniuse.com/#feat=mpeg4 'H264 Browser Support Reference') | ✅ | ✅ | ❌ | 🔶<sup>12</sup> | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ |
| [H.265 8Bit](https://caniuse.com/#feat=hevc 'HEVC Browser Support Reference') | 🔶<sup>8</sup> | ✅<sup>7</sup> | ❌ | 🔶<sup>1</sup> | 🔶<sup>2</sup> | ✅<sup>5</sup> | 🔶<sup>1</sup> | ✅<sup>6</sup> | 🔶<sup>9</sup> | ✅ | ✅ |
| [H.265 10Bit](https://caniuse.com/#feat=hevc 'HEVC Browser Support Reference') | 🔶<sup>8</sup> | ✅<sup>7</sup> | ❌ | 🔶<sup>1</sup> | 🔶<sup>2</sup> | 🔶<sup>5</sup> | 🔶<sup>1</sup> | ✅<sup>6</sup> | 🔶<sup>9</sup> | ✅ | ✅ |
| [VP9](https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Video_codecs#VP9 'V9 Browser Support Reference') | ✅ | ✅ | ✅ | ✅<sup>10</sup> | ✅<sup>3</sup> | 🔶<sup>3</sup> | ❌ | ✅<sup>13</sup> | ✅ | ✅ | ✅ |
| [AV1](https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Video_codecs#AV1 'AV1 Browser Support Reference') | ✅ | ✅ | ✅ | 🔶<sup>11</sup> | ✅ | 🔶<sup>4</sup> | ❌ | 🔶<sup>14</sup> | ✅ | ✅ | ✅ |
<sup>1</sup>HEVC is only supported in MP4, M4V, and MOV containers.
<br />
+3 -2
View File
@@ -2,6 +2,7 @@
uid: jellyfin-vue
title: Jellyfin Vue
---
import Link from '@docusaurus/Link';
# Jellyfin Vue
@@ -66,7 +67,7 @@ services:
restart: on-failure
```
<span id="why-updates-needed"></span>
<Link id="why-updates-needed"/>
:::success
Getting things up and running is as easy as doing `docker compose up -d` with your terminal
@@ -113,7 +114,7 @@ to further customize Jellyfin Vue to your liking at Jellyfin Vue's wiki.
Since Jellyfin Vue is an SPA web application, you can use any web server to serve it:
Apache, nginx (the one used in Jellyfin's Vue docker image), Traefik, etc...
If you already have a [reverse proxy](../networking/index.md) set up, do you want to do more complex stuff
If you already have a [reverse proxy](/docs/general/post-install/networking/index.md) set up, do you want to do more complex stuff
that it's out of the scope of this documentation like serving at a subpath, in another subdomain, etc...,
you might want to have Jellyfin Vue served by your own webserver instead of the nginx instance shipped with
the Docker image.
+2 -2
View File
@@ -1,7 +1,7 @@
---
uid: faq
title: FAQ
sidebar_position: 2
sidebar_position: 1
---
# Frequently Asked Questions
@@ -33,7 +33,7 @@ This normally comes down to one of the following issues:
1. [File permissions](https://wikipedia.org/wiki/File-system_permissions) are not properly configured on your media.
2. Your media does not follow the organizational requirements for Jellyfin's scanner to properly identify media. (Valid organization schemes can be found in the documentation for [Movies](/docs/general/server/media/movies), [Shows](/docs/general/server/media/shows), [Music](/docs/general/server/media/music), and others.)
If it's not one of these, please consider asking for help as it might be a bug.
If it's not one of these, please consider asking for help as it might be a bug.
## How can I contribute to this project?
+1 -1
View File
@@ -1,7 +1,7 @@
---
uid: getting-help
title: Getting Help
sidebar_position: 1
sidebar_position: 0
---
# Getting Help
+1 -1
View File
@@ -1,2 +1,2 @@
label: 'Installation'
position: 3
position: 2
@@ -0,0 +1,2 @@
label: 'Advanced Installation'
position: 6
@@ -0,0 +1,139 @@
---
uid: installation-advanced-community
title: Community Maintained Packages
description: Community maintained packages.
sidebar_position: 1
---
# Community Maintained Packages
These packages are maintained by community packagers independent of Jellyfin for distributions not officially supported by Jellyfin. We can't always support problems with community-maintained packages. If you encounter trouble with them, please contact their maintainers first. If you're not sure, we recommend using [container images](/docs/general/installation/container) on these systems instead.
## Alpine Linux
Jellyfin can be found in the `community` repository as
[`jellyfin`](https://pkgs.alpinelinux.org/package/edge/community/x86_64/jellyfin) and
[`jellyfin-web`](https://pkgs.alpinelinux.org/package/edge/community/x86_64/jellyfin-web).
To enable the web UI after installing `jellyfin-web`, make sure to remove the `--nowebclient` option from
`/etc/conf.d/jellyfin`.
## Arch Linux
The `Extra` repository contains builds for both [`jellyfin-server`](https://archlinux.org/packages/?name=jellyfin-server) and [`jellyfin-web`](https://archlinux.org/packages/?name=jellyfin-web).
`jellyfin-server` includes a hard dependency on [`jellyfin-ffmpeg`](https://archlinux.org/packages/?name=jellyfin-ffmpeg).
Both packages, server and web, can also be built from source at the tip of the master branch using [`jellyfin-git`](https://aur.archlinux.org/packages/jellyfin-git/).
The AUR also offers each separately at [`jellyfin-server-git`](https://aur.archlinux.org/packages/jellyfin-server-git/) and [`jellyfin-web-git`](https://aur.archlinux.org/packages/jellyfin-web-git/).
## Fedora, CentOS and other RPM distributions
Builds in RPM package format are provided by RPM Fusion. Official packages are no longer provided starting with 10.9.
### RPM Fusion
1. `rpmfusion` must be enabled first
```sh
sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
```
2. Install the `jellyfin` package, which will automatically install `jellyfin-server`, `jellyfin-web` and `jellyfin-firewalld`
```sh
sudo dnf install jellyfin
```
3. Enable and start the Jellyfin service:
```sh
sudo systemctl enable --now jellyfin
```
### Manual installation via the .rpm packages
1. You will need to enable `rpmfusion`, as `ffmpeg` is a dependency of the `jellyfin` server package
```sh
sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
```
:::note
You do not need to manually install `ffmpeg`; it will be installed by the Jellyfin server package as a dependency.
:::
2. Install the Jellyfin server
```sh
sudo dnf install <link to server `.rpm` file URL>
```
3. Install the Jellyfin web interface
```sh
sudo dnf install <link to web `.rpm` file URL>
```
4. Enable and start the Jellyfin service:
```sh
sudo systemctl enable --now jellyfin
```
5. Allow Jellyfin through the firewall:
```sh
sudo firewall-cmd --permanent --add-service=jellyfin
```
:::note
This will open the following ports:
- `8096 TCP`, used by default for HTTP traffic; you can change this in the dashboard
- `8920 TCP`, used by default for HTTPS traffic; you can change this in the dashboard
- `1900 UDP`, used for service auto-discovery; this is not configurable
- `7359 UDP`, used for auto-discovery; this is not configurable
:::
6. Reload the firewall to apply the new rules:
```sh
sudo firewall-cmd --reload
```
7. Go to `localhost:8096` or `ip-address-of-jellyfin-server:8096` to finish setup in the web UI.
## Gentoo
The Gentoo ebuild repository includes the Jellyfin package which can be installed like other software:
```sh
emerge www-apps/jellyfin
```
## NixOS
NixOS has a [module for Jellyfin](https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/misc/jellyfin.nix),
it can be enabled as follows:
```nix
{
services.jellyfin.enable = true;
}
```
For more information, refer to the [NixOS wiki](https://wiki.nixos.org/wiki/Jellyfin).
## Flatpak
The Jellyfin Server package is available on [Flathub](https://flathub.org/apps/org.jellyfin.JellyfinServer).
This package is provided for convenience only, and may be deprecated at any time. It is not recommended as [Flatpak themselves don't recommend the use of Flatpak for server applications](https://flatpak.org/faq/#Can_Flatpak_be_used_on_servers_too_). Please use [container images](/docs/general/installation/container) instead.
## FreeBSD
A [Third-party Jellyfin build for FreeBSD](https://github.com/Thefrank/jellyfin-server-freebsd) is available. This is not supported by Jellyfin. Please report any issues to them. Issues reported to Jellyfin about this package will be closed without further investigation.
@@ -0,0 +1,392 @@
---
uid: installation-advanced-manual
title: Manual Installation
description: Install Jellyfin Manually.
sidebar_position: 3
---
<!-- markdownlint-disable MD036 no-emphasis-as-heading -->
## Portable Windows Package
### Portable Windows Install
1. Download and extract the latest version.
2. Create a folder `jellyfin` at your preferred install location.
3. Copy the extracted folder into the `jellyfin` folder and rename it to `system`.
4. Create `jellyfin.bat` within your `jellyfin` folder containing:
- To use the default library/data location at `%localappdata%`:
```cmd
<--Your install path-->\jellyfin\system\jellyfin.exe
```
- To use a custom library/data location (Path after the -d parameter):
```cmd
<--Your install path-->\jellyfin\system\jellyfin.exe -d <--Your install path-->\jellyfin\data
```
- To use a custom library/data location (Path after the -d parameter) and disable the auto-start of the webapp:
```cmd
<--Your install path-->\jellyfin\system\jellyfin.exe -d <--Your install path-->\jellyfin\data -noautorunwebapp
```
5. Run
```cmd
jellyfin.bat
```
6. Open your browser at `http://<--Server-IP-->:8096`.
### Portable Windows Update
1. Stop Jellyfin
2. Rename the Jellyfin `system` folder to `system-bak`
3. Download and extract the latest Jellyfin version
4. Copy the extracted folder into the `jellyfin` folder and rename it to `system`
5. Run `jellyfin.bat` to start the server again
### Portable Windows Rollback
1. Stop Jellyfin.
2. Delete the `system` folder.
3. Rename `system-bak` to `system`.
4. Run `jellyfin.bat` to start the server again.
## Portable macOS package
### Installing the Portable macOS Version
1. Download the latest version of Jellyfin.
2. Extract it into the Applications folder.
3. Open Terminal and type `cd` followed with a space then drag the jellyfin folder into the terminal.
4. Type `xattr -rd com.apple.quarantine .` to remove the quarantine flag.
5. Type `codesign -fs - --deep jellyfin` to create an ad-hoc signature for the server.
6. Type `./jellyfin` to run jellyfin.
7. Open your browser at [http://localhost:8096](http://localhost:8096).
Closing the terminal window will end Jellyfin. Running Jellyfin in screen or tmux can prevent this from happening.
### Updating the Portable macOS Version
1. Download the latest version.
2. Stop the currently running server either via the dashboard or using `CTRL+C` in the terminal window.
3. Extract the latest version into Applications
4. Open Terminal and type `cd` followed with a space then drag the jellyfin folder into the terminal.
5. Type `xattr -rd com.apple.quarantine .` to remove the quarantine flag.
6. Type `codesign -fs - --deep jellyfin` to create an ad-hoc signature for the server.
7. Type `./jellyfin` to run jellyfin.
8. Open your browser at [http://localhost:8096](http://localhost:8096)
### Uninstalling the Portable macOS Version
1. Stop the currently running server either via the dashboard or using `CTRL+C` in the terminal window.
2. Move `/Application/jellyfin-version` folder to the Trash. Replace version with the actual version number you are trying to delete.
3. Delete the folder `~/.config/jellyfin/`
4. Delete the folder `~/.local/share/jellyfin/`
### Using FFmpeg with the Portable macOS Version
The portable version doesn't come with FFmpeg by default. There are a few options for installing FFmpeg:
- download jellyfin-ffmpeg from the [Jellyfin repo](https://repo.jellyfin.org/?path=/ffmpeg/macos) (recommended)
- use the package manager homebrew by typing `brew install ffmpeg` into your Terminal ([here's how to install homebrew if you don't have it already](https://treehouse.github.io/installation-guides/mac/homebrew)
- download the most recent [static build](https://evermeet.cx/ffmpeg/get/zip) (compiled by a third party see [evermeet.cx](https://evermeet.cx/ffmpeg/) for options and information) (Apple Silicon builds are not available from this source)
- compile from source available from the official [website](https://ffmpeg.org/download.html)
Once downloaded, remove the quarantine flag for the `ffmpeg` and `ffprobe`.
Ensure that both `ffmpeg` and `ffprobe` are located at the same path, then execute the following command:
```shell
cd /path/to/ffmpeg/folder
xattr -rd com.apple.quarantine .
```
## Portable Linux install
Generic `amd64`, `arm64`, and `armhf` Linux builds in TAR archive format are available [in the main download repository](https://repo.jellyfin.org/?path=/server/).
### Base Installation Process
Create a directory in `/opt` for jellyfin and its files, and enter that directory.
```sh
sudo mkdir /opt/jellyfin
cd /opt/jellyfin
```
Download the latest generic Linux build for your architecture.
The rest of these instructions assume version 10.8.13 is being installed (i.e. `jellyfin_10.8.13_amd64.tar.gz`).
Download the generic build, then extract the archive:
```sh
sudo wget https://repo.jellyfin.org/?path=/server/linux/stable/combined/jellyfin_10.8.13_amd64.tar.gz
sudo tar xvzf jellyfin_10.8.13_amd64.tar.gz
```
Create a symbolic link to the Jellyfin 10.8.13 directory.
This allows an upgrade by repeating the above steps and enabling it by simply re-creating the symbolic link to the new version.
```sh
sudo ln -s jellyfin_10.8.13 jellyfin
```
Create four sub-directories for Jellyfin data.
```sh
sudo mkdir data cache config log
```
### `FFmpeg` Installation
If you are not running a Debian derivative, install `ffmpeg` through your OS's package manager, and skip this section.
:::caution
Not being able to use `jellyfin-ffmpeg` will most likely break hardware acceleration and tonemapping.
:::
If you are running Debian or a derivative, you should [download](https://repo.jellyfin.org/?path=/ffmpeg/debian/) and install an `ffmpeg` `.deb` package built specifically for Jellyfin.
If you run into any dependency errors, run this and it will install them and `jellyfin-ffmpeg`.
```sh
sudo apt install -f
```
### Running Jellyfin
Due to the number of command line options that must be passed on to the Jellyfin binary, it is easiest to create a small script to run Jellyfin.
```sh
sudoedit jellyfin.sh
```
Then paste the following commands and modify as needed.
```sh
#!/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
```
Assuming you desire Jellyfin to run as a non-root user, `chmod` all files and directories to your normal login user and group.
Also make the startup script above executable.
```sh
sudo chown -R user:group *
sudo chmod u+x jellyfin.sh
```
Finally, you can run it.
You will see lots of log information when run, this is normal.
Setup is as usual in the web browser.
```sh
./jellyfin.sh
```
#### Starting Jellyfin on boot (optional)
Create a `systemd` unit file.
```sh
cd /etc/systemd/system
sudo nano jellyfin.service
```
Then paste the following contents, replacing `youruser` with your username.
```ini
[Unit]
Description=Jellyfin
After=network.target
[Service]
Type=simple
User=youruser
Restart=always
ExecStart=/opt/jellyfin/jellyfin.sh
[Install]
WantedBy=multi-user.target
```
Apply the correct permissions to the file, enable the service to start on boot, then start it.
```sh
sudo chmod 644 jellyfin.service
sudo systemctl daemon-reload
sudo systemctl enable jellyfin.service
sudo systemctl start jellyfin.service
```
## Portable .NET DLL
Platform-agnostic .NET Core DLL builds in TAR archive format are available from the [portable downloads section](/downloads/dotnet).
These builds use the binary `jellyfin.dll` and must be loaded with `dotnet`.
## Debian (using extrepo)
extrepo is only supported on Debian currently. The advantage of extrepo is that it is packaged in Debian. So you dont have to execute the `curl | sudo bash` combo from the previous Automatic section. The risk with that command is that it relies on the security of the webserver. extrepo avoids this by having the Jellyfin repo information including the GPG key in its [extrepo-data](https://salsa.debian.org/extrepo-team/extrepo-data/-/blob/master/repos/debian/jellyfin.yaml?ref_type=heads). extrepo-data is verified with GPG by the extrepo tool. So there is a chain of trust from Debian all the way to the Jellyfin repo information.
```sh
sudo apt install extrepo
sudo extrepo enable jellyfin
```
Now you can continue at step 5. of the [Repository (Manual) section](#official-linux-repository-manual).
## Official Linux Repository (Manual)
If you would prefer to install everything manually, the full steps are as follows:
1. Install `curl` and `gnupg` if you haven't already:
```sh
sudo apt install curl gnupg
```
2. On Ubuntu (and derivatives) only, enable the Universe repository to obtain all the FFmpeg dependencies:
```sh
sudo add-apt-repository universe
```
:::note
If the above command fails you will need to install the following package `software-properties-common`.
This can be achieved with the following command `sudo apt-get install software-properties-common`
:::
On Debian, you can also enable the `non-free` components of your base repositories for additional FFmpeg dependencies, but this is optional.
3. Download the GPG signing key (signed by the Jellyfin Team) and install it:
```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
```
4. Add a repository configuration at `/etc/apt/sources.list.d/jellyfin.sources`:
```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 <<EOF | sudo tee /etc/apt/sources.list.d/jellyfin.sources
Types: deb
URIs: https://repo.jellyfin.org/${VERSION_OS}
Suites: ${VERSION_CODENAME}
Components: main
Architectures: ${DPKG_ARCHITECTURE}
Signed-By: /etc/apt/keyrings/jellyfin.gpg
EOF
```
:::note
The supported values for the above variables are:
- `${VERSION_OS}`: One of `debian` or `ubuntu`; if it is not, use the closest one for your distribution.
- `${VERSION_CODENAME}`: One of our supported [Debian](https://github.com/jellyfin/jellyfin-repo-helper-scripts/blob/master/install-debuntu.sh#L7) or [Ubuntu](https://github.com/jellyfin/jellyfin-repo-helper-scripts/blob/master/install-debuntu.sh#L8) release codenames. These can change as new releases come out and old releases are dropped, so check the script to be sure yours is supported.
- `${DPKG_ARCHITECTURE}`: One of our [supported architectures](https://github.com/jellyfin/jellyfin-repo-helper-scripts/blob/master/install-debuntu.sh#L6). Microsoft does not provide a .NET for 32-bit x86 Linux systems, and hence Jellyfin is **not** supported on the `i386` architecture.
:::
5. Update your APT repositories:
```sh
sudo apt update
```
6. Install the Jellyfin metapackage, which will automatically fetch the various sub-packages:
```sh
sudo apt install jellyfin
```
:::note
If you want to be explicit, instead of the metapackage, you can install the sub-packages individually:
```sh
sudo apt install jellyfin-server jellyfin-web
```
The `jellyfin-server` package will automatically select the right `jellyfin-ffmpeg` package for you as well.
:::
7. Manage the Jellyfin system service:
```sh
sudo systemctl {action} jellyfin
sudo service jellyfin {action}
```
## `.deb` Packages (Very Manual)
Raw `.deb` packages, including old versions, source packages, and `dpkg` meta files, are available [in the main download repository](https://repo.jellyfin.org/?path=/server/).
:::note
The repository is the preferred way to obtain Jellyfin on Debian and Ubuntu systems, as this ensures you get automatic updates and that all dependencies are properly resolved. Use these steps only if you really know what you're doing.
:::
1. On Ubuntu (and derivatives) only, enable the Universe repository to obtain all the FFmpeg dependencies:
```sh
sudo add-apt-repository universe
```
:::note
If the above command fails you will need to install the following package `software-properties-common`.
This can be achieved with the following command `sudo apt-get install software-properties-common`
:::
On Debian, you can also enable the `non-free` components of your base repositories for additional FFmpeg dependencies, but this is optional.
2. Download the desired `jellyfin-server`, `jellyfin-web`, and `jellyfin-ffmpeg` `.deb` packages from the repository; `jellyfin` is a metapackage and is not required.
3. Install the downloaded `.deb` packages:
```sh
sudo dpkg -i jellyfin_*.deb jellyfin-ffmpeg_*.deb
```
:::note
This step may throw errors; continue to the next step to resolve them.
:::
4. Use `apt` to install any missing dependencies:
```sh
sudo apt -f install
```
5. Manage the Jellyfin system service:
```sh
sudo systemctl {action} jellyfin
sudo service jellyfin {action}
```
@@ -1,8 +1,8 @@
---
uid: installation-source
uid: installation-advanced-source
title: Building from source
description: Compile and run Jellyfin yourself.
sidebar_position: 7
sidebar_position: 4
---
<!-- markdownlint-disable MD029 ol-prefix -->
@@ -48,7 +48,7 @@ All package builds begin with these two steps:
Replace "auto" with your own Jellyfin version tag if you want to.
3. Run Jellyfin in a new container using Docker or Podman from the built container image.
2. Run Jellyfin in a new container using Docker or Podman from the built container image.
```sh
docker run -d -p 8096:8096 $USERNAME/jellyfin
@@ -2,7 +2,7 @@
uid: installation-synology
title: Synology
description: Install on Synology NAS.
sidebar_position: 5
sidebar_position: 2
---
For [Synology](https://www.synology.com/en-us/dsm), Jellyfin is installed using Docker.
@@ -128,12 +128,12 @@ services:
- Make sure your spacing is correct for each option. Compose files use spacing to parse the options correctly.
- You can determine the time zone identifier for you region [on Wikipedia](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
- Note that lines with `#` in front indicate a comment. They will not apply until you remove it.
- Uncomment the `group_add` and `devices` options if you have a GPU and want to use [hardware acceleration](/docs/general/administration/hardware-acceleration/).
- Uncomment the `group_add` and `devices` options if you have a GPU and want to use [hardware acceleration](/docs/general/post-install/transcoding/hardware-acceleration/).
- If you have an NVIDIA GPU, [please read this](#nvidia-gpus-on-scale-v2410).
- Unless you set the container to run as root, you need to add the render group ID to the container with `group_add`.
- In case the render group's ID is not `107` on all SCALE servers by default, go to your system shell and run the following command to get your render group's ID: `cat /etc/group | grep render`
- Jellyfin's auto discovery ports should also be configured if possible.
- [See more info here](/docs/general/networking/#static-ports)
- [See more info here](/docs/general/post-install/networking/#static-ports)
<details>
<summary>Docker Compose Options</summary>
@@ -325,7 +325,7 @@ Create an admin user in the Jellyfin initial setup wizard to access the UI.
### Networking Settings
Select **Host Network** under **Network Configuration** if using [DLNA](/docs/general/networking/dlna/), to bind network configuration to the host network settings.
Select **Host Network** under **Network Configuration** if using [DLNA](/docs/general/post-install/networking/dlna/), to bind network configuration to the host network settings.
Otherwise, leave **Host Network** unselected.
![Networking](/images/docs/install-truenas-12.png)
+1 -1
View File
@@ -2,7 +2,7 @@
uid: installation-container
title: Container
description: Install as a container using Docker, Podman and others.
sidebar_position: 1
sidebar_position: 4
---
<!-- markdownlint-disable MD036 no-emphasis-as-heading -->
+9 -3
View File
@@ -16,6 +16,12 @@ Even though there are builds available online for these platforms, they are unof
For info on selecting hardware for a Jellyfin server, please refer to the [Hardware Selection Guide](/docs/general/administration/hardware-selection)
import DocCardList from '@theme/DocCardList';
<DocCardList />
- [Windows](/docs/general/installation/windows)
- [macOS](/docs/general/installation/macos)
- [Debian / Ubuntu](/docs/general/installation/linux#debian--ubuntu-and-derivatives)
- [Other Linux Distributions](/docs/general/installation/linux#other-distributions)
- [Docker / Kubernetes / Podman](/docs/general/installation/container)
- [Synology](/docs/general/installation/advanced/synology)
- [TrueNAS SCALE](/docs/general/installation/advanced/truenas)
- [Generic Linux](/docs/general/installation/advanced/manual#portable-linux-install)
- [Building from source](/docs/general/installation/advanced/source).
+7 -426
View File
@@ -1,19 +1,13 @@
---
uid: installation-linux
title: Linux
description: Install on Linux.
sidebar_position: 2
description: Installing on Linux.
sidebar_position: 3
---
## Official packages and methods
## Debian / Ubuntu and derivatives
### Debuntu (Debian, Ubuntu, and derivatives using `apt`) with official repository
The Jellyfin team provides 3rd-party Debian and Ubuntu repositories, to help ensure your Jellyfin install is always kept up-to-date. For Ubuntu, only LTS distributions from the past 5 years are supported.
#### Repository (Automatic)
To simplify deployment and help automate this for as many users as possible, we provide a BASH script to handle repo installation as well as installing Jellyfin.
To simplify deployment and help automate this for as many users as possible, we provide a BASH script to handle repo installation as well as installing Jellyfin on Debian / Ubuntu and derivatives.
All you need to do is run this command on your system (requires `curl`, or subsitute `curl` with `wget -O-`):
```sh
@@ -39,423 +33,10 @@ sudo bash install-debuntu.sh
:::note
The script tries to handle as many common derivatives as possible, including, at least, Linux Mint (Ubuntu and Debian editions), Raspbian/Raspberry Pi OS, and KDE Neon. We welcome PRs [to the script](https://github.com/jellyfin/jellyfin-repo-helper-scripts/blob/master/install-debuntu.sh) for any other common derivatives, or you can use the steps below instead.
The script tries to handle as many common derivatives as possible, including, at least, Linux Mint (Ubuntu and Debian editions), Raspbian/Raspberry Pi OS, and KDE Neon. We welcome PRs [to the script](https://github.com/jellyfin/jellyfin-repo-helper-scripts/blob/master/install-debuntu.sh) for any other common derivatives.
:::
#### Repository (Using extrepo)
## Other Distributions
extrepo is only supported on Debian currently. The advantage of extrepo is that it is packaged in Debian. So you dont have to execute the `curl | sudo bash` combo from the previous Automatic section. The risk with that command is that it relies on the security of the webserver. extrepo avoids this by having the Jellyfin repo information including the GPG key in its [extrepo-data](https://salsa.debian.org/extrepo-team/extrepo-data/-/blob/master/repos/debian/jellyfin.yaml?ref_type=heads). extrepo-data is verified with GPG by the extrepo tool. So there is a chain of trust from Debian all the way to the Jellyfin repo information.
```sh
sudo apt install extrepo
sudo extrepo enable jellyfin
```
Now you can continue at step 5. of the [Repository (Manual) section](#repository-manual).
### Containers
For non-Debian/Ubuntu systems, containers are the recommended way to install Jellyfin. Please follow the [container installation instructions](/docs/general/installation/container).
## Community maintained packages
### Alpine Linux
Jellyfin can be found in the `community` repository as
[`jellyfin`](https://pkgs.alpinelinux.org/package/edge/community/x86_64/jellyfin) and
[`jellyfin-web`](https://pkgs.alpinelinux.org/package/edge/community/x86_64/jellyfin-web).
To enable the web UI after installing `jellyfin-web`, make sure to remove the `--nowebclient` option from
`/etc/conf.d/jellyfin`.
### Arch Linux
The `Extra` repository contains builds for both [`jellyfin-server`](https://archlinux.org/packages/?name=jellyfin-server) and [`jellyfin-web`](https://archlinux.org/packages/?name=jellyfin-web).
`jellyfin-server` includes a hard dependency on [`jellyfin-ffmpeg`](https://archlinux.org/packages/?name=jellyfin-ffmpeg).
Both packages, server and web, can also be built from source at the tip of the master branch using [`jellyfin-git`](https://aur.archlinux.org/packages/jellyfin-git/).
The AUR also offers each separately at [`jellyfin-server-git`](https://aur.archlinux.org/packages/jellyfin-server-git/) and [`jellyfin-web-git`](https://aur.archlinux.org/packages/jellyfin-web-git/).
### Fedora, CentOS and other RPM distributions
Builds in RPM package format are provided by RPM Fusion. Official packages are no longer provided starting with 10.9.
#### RPM Fusion
1. `rpmfusion` must be enabled first
```sh
sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
```
2. Install the `jellyfin` package, which will automatically install `jellyfin-server`, `jellyfin-web` and `jellyfin-firewalld`
```sh
sudo dnf install jellyfin
```
3. Enable and start the Jellyfin service:
```sh
sudo systemctl enable --now jellyfin
```
#### Manual installation via the .rpm packages
1. You will need to enable `rpmfusion`, as `ffmpeg` is a dependency of the `jellyfin` server package
```sh
sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
```
:::note
You do not need to manually install `ffmpeg`; it will be installed by the Jellyfin server package as a dependency.
:::
2. Install the Jellyfin server
```sh
sudo dnf install <link to server `.rpm` file URL>
```
3. Install the Jellyfin web interface
```sh
sudo dnf install <link to web `.rpm` file URL>
```
4. Enable and start the Jellyfin service:
```sh
sudo systemctl enable --now jellyfin
```
5. Allow Jellyfin through the firewall:
```sh
sudo firewall-cmd --permanent --add-service=jellyfin
```
:::note
This will open the following ports:
- `8096 TCP`, used by default for HTTP traffic; you can change this in the dashboard
- `8920 TCP`, used by default for HTTPS traffic; you can change this in the dashboard
- `1900 UDP`, used for service auto-discovery; this is not configurable
- `7359 UDP`, used for auto-discovery; this is not configurable
:::
6. Reload the firewall to apply the new rules:
```sh
sudo firewall-cmd --reload
```
7. Go to `localhost:8096` or `ip-address-of-jellyfin-server:8096` to finish setup in the web UI.
### Gentoo
The Gentoo ebuild repository includes the Jellyfin package which can be installed like other software:
```sh
emerge www-apps/jellyfin
```
### NixOS
NixOS has a [module for Jellyfin](https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/misc/jellyfin.nix),
it can be enabled as follows:
```nix
{
services.jellyfin.enable = true;
}
```
For more information, refer to the [NixOS wiki](https://wiki.nixos.org/wiki/Jellyfin).
## Advanced
### Manual installation on Debian, Ubuntu and derivatives
#### Repository (Manual)
If you would prefer to install everything manually, the full steps are as follows:
1. Install `curl` and `gnupg` if you haven't already:
```sh
sudo apt install curl gnupg
```
2. On Ubuntu (and derivatives) only, enable the Universe repository to obtain all the FFmpeg dependencies:
```sh
sudo add-apt-repository universe
```
:::note
If the above command fails you will need to install the following package `software-properties-common`.
This can be achieved with the following command `sudo apt-get install software-properties-common`
:::
On Debian, you can also enable the `non-free` components of your base repositories for additional FFmpeg dependencies, but this is optional.
3. Download the GPG signing key (signed by the Jellyfin Team) and install it:
```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
```
4. Add a repository configuration at `/etc/apt/sources.list.d/jellyfin.sources`:
```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 <<EOF | sudo tee /etc/apt/sources.list.d/jellyfin.sources
Types: deb
URIs: https://repo.jellyfin.org/${VERSION_OS}
Suites: ${VERSION_CODENAME}
Components: main
Architectures: ${DPKG_ARCHITECTURE}
Signed-By: /etc/apt/keyrings/jellyfin.gpg
EOF
```
:::note
The supported values for the above variables are:
- `${VERSION_OS}`: One of `debian` or `ubuntu`; if it is not, use the closest one for your distribution.
- `${VERSION_CODENAME}`: One of our supported [Debian](https://github.com/jellyfin/jellyfin-repo-helper-scripts/blob/master/install-debuntu.sh#L7) or [Ubuntu](https://github.com/jellyfin/jellyfin-repo-helper-scripts/blob/master/install-debuntu.sh#L8) release codenames. These can change as new releases come out and old releases are dropped, so check the script to be sure yours is supported.
- `${DPKG_ARCHITECTURE}`: One of our [supported architectures](https://github.com/jellyfin/jellyfin-repo-helper-scripts/blob/master/install-debuntu.sh#L6). Microsoft does not provide a .NET for 32-bit x86 Linux systems, and hence Jellyfin is **not** supported on the `i386` architecture.
:::
5. Update your APT repositories:
```sh
sudo apt update
```
6. Install the Jellyfin metapackage, which will automatically fetch the various sub-packages:
```sh
sudo apt install jellyfin
```
:::note
If you want to be explicit, instead of the metapackage, you can install the sub-packages individually:
```sh
sudo apt install jellyfin-server jellyfin-web
```
The `jellyfin-server` package will automatically select the right `jellyfin-ffmpeg` package for you as well.
:::
7. Manage the Jellyfin system service:
```sh
sudo systemctl {action} jellyfin
sudo service jellyfin {action}
```
#### `.deb` Packages (Very Manual)
Raw `.deb` packages, including old versions, source packages, and `dpkg` meta files, are available [in the main download repository](https://repo.jellyfin.org/?path=/server/).
:::note
The repository is the preferred way to obtain Jellyfin on Debian and Ubuntu systems, as this ensures you get automatic updates and that all dependencies are properly resolved. Use these steps only if you really know what you're doing.
:::
1. On Ubuntu (and derivatives) only, enable the Universe repository to obtain all the FFmpeg dependencies:
```sh
sudo add-apt-repository universe
```
:::note
If the above command fails you will need to install the following package `software-properties-common`.
This can be achieved with the following command `sudo apt-get install software-properties-common`
:::
On Debian, you can also enable the `non-free` components of your base repositories for additional FFmpeg dependencies, but this is optional.
2. Download the desired `jellyfin-server`, `jellyfin-web`, and `jellyfin-ffmpeg` `.deb` packages from the repository; `jellyfin` is a metapackage and is not required.
3. Install the downloaded `.deb` packages:
```sh
sudo dpkg -i jellyfin_*.deb jellyfin-ffmpeg_*.deb
```
:::note
This step may throw errors; continue to the next step to resolve them.
:::
4. Use `apt` to install any missing dependencies:
```sh
sudo apt -f install
```
5. Manage the Jellyfin system service:
```sh
sudo systemctl {action} jellyfin
sudo service jellyfin {action}
```
### Linux (generic amd64)
Generic `amd64`, `arm64`, and `armhf` Linux builds in TAR archive format are available [in the main download repository](https://repo.jellyfin.org/?path=/server/).
#### Base Installation Process
Create a directory in `/opt` for jellyfin and its files, and enter that directory.
```sh
sudo mkdir /opt/jellyfin
cd /opt/jellyfin
```
Download the latest generic Linux build for your architecture.
The rest of these instructions assume version 10.8.13 is being installed (i.e. `jellyfin_10.8.13_amd64.tar.gz`).
Download the generic build, then extract the archive:
```sh
sudo wget https://repo.jellyfin.org/?path=/server/linux/stable/combined/jellyfin_10.8.13_amd64.tar.gz
sudo tar xvzf jellyfin_10.8.13_amd64.tar.gz
```
Create a symbolic link to the Jellyfin 10.8.13 directory.
This allows an upgrade by repeating the above steps and enabling it by simply re-creating the symbolic link to the new version.
```sh
sudo ln -s jellyfin_10.8.13 jellyfin
```
Create four sub-directories for Jellyfin data.
```sh
sudo mkdir data cache config log
```
#### `FFmpeg` Installation
If you are not running a Debian derivative, install `ffmpeg` through your OS's package manager, and skip this section.
:::caution
Not being able to use `jellyfin-ffmpeg` will most likely break hardware acceleration and tonemapping.
:::
If you are running Debian or a derivative, you should [download](https://repo.jellyfin.org/?path=/ffmpeg/debian/) and install an `ffmpeg` `.deb` package built specifically for Jellyfin.
If you run into any dependency errors, run this and it will install them and `jellyfin-ffmpeg`.
```sh
sudo apt install -f
```
#### Running Jellyfin
Due to the number of command line options that must be passed on to the Jellyfin binary, it is easiest to create a small script to run Jellyfin.
```sh
sudoedit jellyfin.sh
```
Then paste the following commands and modify as needed.
```sh
#!/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
```
Assuming you desire Jellyfin to run as a non-root user, `chmod` all files and directories to your normal login user and group.
Also make the startup script above executable.
```sh
sudo chown -R user:group *
sudo chmod u+x jellyfin.sh
```
Finally you can run it.
You will see lots of log information when run, this is normal.
Setup is as usual in the web browser.
```sh
./jellyfin.sh
```
##### Starting Jellyfin on boot (optional)
Create a `systemd` unit file.
```sh
cd /etc/systemd/system
sudo nano jellyfin.service
```
Then paste the following contents, replacing `youruser` with your username.
```ini
[Unit]
Description=Jellyfin
After=network.target
[Service]
Type=simple
User=youruser
Restart=always
ExecStart=/opt/jellyfin/jellyfin.sh
[Install]
WantedBy=multi-user.target
```
Apply the correct permissions to the file, enable the service to start on boot, then start it.
```sh
sudo chmod 644 jellyfin.service
sudo systemctl daemon-reload
sudo systemctl enable jellyfin.service
sudo systemctl start jellyfin.service
```
### Portable DLL
Platform-agnostic .NET Core DLL builds in TAR archive format are available from the [portable downloads section](/downloads#portable).
These builds use the binary `jellyfin.dll` and must be loaded with `dotnet`.
### Building from source
Jellyfin can be built from source directly. Please read [Building from source](/docs/general/installation/source) for more info.
For other distributions, [containers](/docs/general/installation/container) are the recommended way to install Jellyfin. There are also [community-maintained packages](/docs/general/installation/advanced/community) provided by 3rd parties if you would like to use them instead.
+8 -82
View File
@@ -1,99 +1,25 @@
---
uid: installation-macos
title: macOS
description: Install on macOS.
sidebar_position: 6
description: Installing on macOS.
sidebar_position: 2
---
<!-- markdownlint-disable MD036 no-emphasis-as-heading -->
## Installing on macOS
# Install on macOS
macOS application packages and portable TAR archive builds are available from the [macOS downloads page](/downloads/macos).
Jellyfin requires macOS 12 or newer to run.
Jellyfin 10.9 or newer is required for Apple Silicon native support.
## Packaged Version(dmg)
### Install
1. Download the latest version.
1. Download the latest version DMG image from [the downloads page](/downloads/macos). For Apple Silicon Macs below macOS 14, please update to a newer version of macOS or download the x86 release.
2. Drag the `.app` package into the Applications folder.
3. Start the application.
4. Click the icon in the menu bar and select "Launch Web UI".
4. Click the icon in the menu bar and select "Launch".
### Upgrade
## Updating on macOS
1. Download the latest version.
1. Download the latest version DMG image from [the downloads page](/downloads/macos).
2. Stop the currently running server either via the dashboard or using the menu bar icon.
3. Drag the new `.app` package into the Applications folder and click yes to replace the files.
4. Start the application.
### Uninstall
## Uninstalling on macOS
1. Stop the currently running server either via the dashboard or using the application icon.
2. Move the `.app` package to the trash.
### Deleting Configuration
This will delete all settings and user information. This applies for the .app package and the portable version.
1. Delete the folder `~/.config/jellyfin/`
2. Delete the folder `~/.local/share/jellyfin/`
## Portable Version
The portable version is intended for advanced users who want more customization options.
For average users, the packaged version is strongly recommended.
If you are not comfortable with command line, then this is not the version for you.
### Installing the Portable Version
1. Download the latest version of Jellyfin.
2. Extract it into the Applications folder.
3. Open Terminal and type `cd` followed with a space then drag the jellyfin folder into the terminal.
4. Type `xattr -rd com.apple.quarantine .` to remove the quarantine flag.
5. Type `codesign -fs - --deep jellyfin` to create an ad-hoc signature for the server.
6. Type `./jellyfin` to run jellyfin.
7. Open your browser at [http://localhost:8096](http://localhost:8096).
Closing the terminal window will end Jellyfin. Running Jellyfin in screen or tmux can prevent this from happening.
### Upgrading the Portable Version
1. Download the latest version.
2. Stop the currently running server either via the dashboard or using `CTRL+C` in the terminal window.
3. Extract the latest version into Applications
4. Open Terminal and type `cd` followed with a space then drag the jellyfin folder into the terminal.
5. Type `xattr -rd com.apple.quarantine .` to remove the quarantine flag.
6. Type `codesign -fs - --deep jellyfin` to create an ad-hoc signature for the server.
7. Type `./jellyfin` to run jellyfin.
8. Open your browser at [http://localhost:8096](http://localhost:8096)
### Uninstalling the Portable Version
1. Stop the currently running server either via the dashboard or using `CTRL+C` in the terminal window.
2. Move `/Application/jellyfin-version` folder to the Trash. Replace version with the actual version number you are trying to delete.
3. Delete the folder `~/.config/jellyfin/`
4. Delete the folder `~/.local/share/jellyfin/`
### Using FFmpeg with the Portable Version
The portable version doesn't come with FFmpeg by default. There are a few options for installing FFmpeg:
- download jellyfin-ffmpeg from the [Jellyfin repo](https://repo.jellyfin.org/?path=/ffmpeg/macos) (recommended)
- use the package manager homebrew by typing `brew install ffmpeg` into your Terminal ([here's how to install homebrew if you don't have it already](https://treehouse.github.io/installation-guides/mac/homebrew)
- download the most recent [static build](https://evermeet.cx/ffmpeg/get/zip) (compiled by a third party see [evermeet.cx](https://evermeet.cx/ffmpeg/) for options and information) (Apple Silicon builds are not available from this source)
- compile from source available from the official [website](https://ffmpeg.org/download.html)
Once downloaded, remove the quarantine flag for the `ffmpeg` and `ffprobe`.
Ensure that both `ffmpeg` and `ffprobe` are located at the same path, then execute the following command:
```shell
cd /path/to/ffmpeg/folder
xattr -rd com.apple.quarantine .
```
+9 -77
View File
@@ -1,97 +1,29 @@
---
uid: installation-windows
title: Windows
description: Install on Windows.
sidebar_position: 3
description: Installing on Windows.
sidebar_position: 1
---
<!-- markdownlint-disable MD036 no-emphasis-as-heading -->
Windows installers and portable ZIP archive builds are available from the [Windows downloads page](/downloads/windows).
## Installing on Windows
:::caution
If you installed a version prior to 10.4.0 using a PowerShell script, you will need to manually remove the service using the command `nssm remove Jellyfin` and uninstall the server by remove all the files manually.
Also one might need to move the data files to the correct location, or point the installer at the old location.
:::
:::caution
The Basic Install is the recommended way to run the Jellyfin Server.
Using the Advanced/Service mode may experience FFmpeg hardware acceleration issues and is only for advanced users.
:::
## Install using installer
**Install**
1. Download the latest version.
1. Download the latest version installer from [the downloads page](/downloads/windows).
2. Run the installer.
3. (Optional) When installing as a service (not recommended), pick the service account type.
4. If everything was completed successfully, Jellyfin is now running.
5. Open your browser at [http://your_local_IP_address:8096](http://your_local_IP_address:8096) to finish setting up Jellyfin.
**Update**
## Updating on Windows
1. Download the latest version.
2. Close or Stop Jellyfin if it is running.
1. Download the latest version installer from [the downloads page](/downloads/windows).
2. Close or Stop Jellyfin from the tray app if it is running.
3. Run the installer.
4. If everything was completed successfully, the new version is installed.
**Uninstall**
## Uninstalling on Windows
1. Go to `Add or remove programs` in Windows.
1. Go to [Add or remove programs](https://support.microsoft.com/en-us/windows/uninstall-or-remove-apps-and-programs-in-windows-4b55f974-2cc6-2d2b-d092-5905080eaf98) in Windows settings.
2. Search for Jellyfin.
3. Click Uninstall.
## Install manually (portable)
**Install**
1. Download and extract the latest version.
2. Create a folder `jellyfin` at your preferred install location.
3. Copy the extracted folder into the `jellyfin` folder and rename it to `system`.
4. Create `jellyfin.bat` within your `jellyfin` folder containing:
- To use the default library/data location at `%localappdata%`:
```cmd
<--Your install path-->\jellyfin\system\jellyfin.exe
```
- To use a custom library/data location (Path after the -d parameter):
```cmd
<--Your install path-->\jellyfin\system\jellyfin.exe -d <--Your install path-->\jellyfin\data
```
- To use a custom library/data location (Path after the -d parameter) and disable the auto-start of the webapp:
```cmd
<--Your install path-->\jellyfin\system\jellyfin.exe -d <--Your install path-->\jellyfin\data -noautorunwebapp
```
5. Run
```cmd
jellyfin.bat
```
6. Open your browser at `http://<--Server-IP-->:8096`.
**Update**
1. Stop Jellyfin
2. Rename the Jellyfin `system` folder to `system-bak`
3. Download and extract the latest Jellyfin version
4. Copy the extracted folder into the `jellyfin` folder and rename it to `system`
5. Run `jellyfin.bat` to start the server again
**Rollback**
1. Stop Jellyfin.
2. Delete the `system` folder.
3. Rename `system-bak` to `system`.
4. Run `jellyfin.bat` to start the server again.
-1
View File
@@ -1 +0,0 @@
position: 5
+2
View File
@@ -0,0 +1,2 @@
position: 3
label: 'Post-Install Setup'
@@ -1,6 +1,7 @@
---
uid: network-reverse-proxy-caddy
title: Caddy
sidebar-position: 1
---
# Caddy
@@ -1,6 +1,7 @@
---
uid: network-dlna
title: DLNA
sidebar-position: 2
---
## DLNA
@@ -0,0 +1,2 @@
label: 'Advanced Networking'
position: 3.5
@@ -70,7 +70,7 @@ sudo a2enmod proxy proxy_http ssl proxy_wstunnel remoteip http2 headers
When connecting to server from a client application, enter `http(s)://DOMAIN_NAME/jellyfin` in the address field.
Set the [base URL](/docs/general/networking#base-url) field in the Jellyfin server. This can be done by navigating to the Admin Dashboard -> Networking -> Base URL in the web client. Fill in this box with `/jellyfin` and click Save. The server will need to be restarted before this change takes effect.
Set the [base URL](../#base-url) field in the Jellyfin server. This can be done by navigating to the Admin Dashboard -> Networking -> Base URL in the web client. Fill in this box with `/jellyfin` and click Save. The server will need to be restarted before this change takes effect.
:::caution
@@ -49,6 +49,10 @@ Run the certbot command as root:
sudo certbot certonly --webroot -w /var/www/html --agree-tos --email YOUR_EMAIL -d DOMAIN_NAME
```
### Caddy
Caddy automatically handles obtaining an SSL certificate from Let's Encrypt when provided with a domain name. No manual action is required.
### HAProxy
HAProxy doesn't currently have a Certbot plugin. To get around this, run Certbot in standalone mode and proxy traffic through your network.
@@ -25,4 +25,4 @@ Jellyfin can make [Prometheus](https://prometheus.io/) metrics available at `/me
<EnableMetrics>false</EnableMetrics>
```
If you have a [reverse proxy](/docs/general/networking#running-jellyfin-behind-a-reverse-proxy) configured, you can configure it to block access to the `/metrics` endpoint except for your internal network.
If you have a [reverse proxy](..#running-jellyfin-behind-a-reverse-proxy) configured, you can configure it to block access to the `/metrics` endpoint except for your internal network.
@@ -0,0 +1 @@
position: 2
@@ -11,7 +11,7 @@ This section describes how to get basic connectivity to a Jellyfin server, and a
Many clients will automatically discover servers running on the same LAN and display them on login. If you are outside the network when you connect you can type in the complete IP address or domain name in the server field with the correct port to continue to the login page. You can find the default ports below to access the web frontend.
HTTP and HTTPS are the primary means of connecting to the server. When using HTTPS, self-signed certs are not recommended. Please use a trusted certificate authority such as [Let's Encrypt](/docs/general/networking/letsencrypt).
HTTP and HTTPS are the primary means of connecting to the server. When using HTTPS, self-signed certs are not recommended. Please use a trusted certificate authority such as [Let's Encrypt](./advanced/letsencrypt).
:::caution
@@ -56,7 +56,7 @@ Live TV devices will often use a random UDP port for HDHomeRun devices. The serv
### Monitoring Endpoints
See [monitoring](/docs/general/networking/monitoring) for details on the monitoring endpoints that Jellyfin provides.
See [monitoring](./advanced/monitoring) for details on the monitoring endpoints that Jellyfin provides.
## Running Jellyfin Behind a Reverse Proxy
@@ -81,15 +81,15 @@ The nginx documentation below includes an example how to censor sensitive inform
Some popular options for reverse proxy systems are [Apache](https://httpd.apache.org), [Caddy](https://caddyserver.com), [Haproxy](https://www.haproxy.com), [Nginx](https://www.nginx.com) and [Traefik](https://traefik.io).
- [Apache](/docs/general/networking/apache)
- [Caddy](/docs/general/networking/caddy)
- [HAProxy](/docs/general/networking/haproxy)
- [Nginx](/docs/general/networking/nginx)
- [Traefik](/docs/general/networking/traefik)
- [Apache](./advanced/apache)
- [Caddy](./caddy)
- [HAProxy](./advanced/haproxy)
- [Nginx](./advanced/nginx)
- [Traefik](./advanced/traefik)
While not a reverse proxy, Let's Encrypt can be used independently or with a reverse proxy to provide SSL certificates.
- [Let's Encrypt](/docs/general/networking/letsencrypt)
- [Let's Encrypt](./advanced/letsencrypt)
When following this guide, be sure to replace the following variables with your information.
+47
View File
@@ -0,0 +1,47 @@
---
uid: postinstall-setup-wizard
title: Setup Wizard Walkthrough
sidebar_position: 1
---
# Setup Wizard Walkthrough
This page will guide you through each step of the setup wizard.
## Select Language
Select your preferred language for the rest of the setup. This setting only affects the client you are using. Server-wide language settings will be configured later.
![Setup Wizard Language Prompt](/images/docs/post-install/setup-wizard/setup-wizard-1-language.png)
## Setup Administrator Account
Set up an administrator account for managing the server. Choose a strong password for better security. You are able to create more user and administrator accounts once you finish the setup wizard.
![Setup Wizard Admin Account Page](/images/docs/post-install/setup-wizard/setup-wizard-2-admin-account.png)
## Add Media Libraries
Add media libraries at this page. Click on the + to add a library. Alternatively, click on "Next" without adding anything to skip this step and add media later.
![Setup Wizard Add Media Library Page](/images/docs/post-install/setup-wizard/setup-wizard-3-media-main.png)
In the popup, chose a type on the "Content Type" dropdown, and set a display name in the "Display Name" field. Then, add some folders using the + button. If you don't see your media folders listed, you might have permission issues. You can get help on our [forum](https://forum.jellyfin.org/) or [chat rooms](/contact)
Read more about media libraries at the [media libraries' documentation](/docs/general/server/libraries/)
![Setup Wizard Add Media Library Popup](/images/docs/post-install/setup-wizard/setup-wizard-4-media-popup.png)
## Set a Preferred Metadata Language
Select a preferred language and region for metadata fetching as the server-wide default. Metadata from other language / regions may be fetched if metadata is not available with your preferred settings. This can be further customized on a per-library basis.
![Setup Wizard Metadata Language Page](/images/docs/post-install/setup-wizard/setup-wizard-5-metadata-lang.png)
## Networking Settings
Some basic options for networking can be set on this page. For most users, it is recommended to **enable** the "Allow remote access to this server" option, and **disable** the "Enable automatic port mapping" option.
![Setup Wizard Networking Page](/images/docs/post-install/setup-wizard/setup-wizard-6-networking.png)
## Next Steps
You have finished the setup wizard. Below is a list of items you should configure in order to get the best experience:
- [Setup remote access to use Jellyfin when you are not at home](./networking)
- [Setup hardware acceleration to improve performance and/or save power](./transcoding/hardware-acceleration/)
![Setup Wizard Completion Page](/images/docs/post-install/setup-wizard/setup-wizard-7-complete.png)
@@ -0,0 +1 @@
position: 3
@@ -0,0 +1 @@
position: 4
@@ -5,7 +5,7 @@ title: AMD GPU
# HWA Tutorial On AMD GPU
This tutorial guides you on setting up full video hardware acceleration on AMD integrated GPU and discrete GPU via AMF or VA-API. If you are on macOS, please use [VideoToolbox](/docs/general/administration/hardware-acceleration/apple) instead.
This tutorial guides you on setting up full video hardware acceleration on AMD integrated GPU and discrete GPU via AMF or VA-API. If you are on macOS, please use [VideoToolbox](./apple) instead.
## Acceleration Methods
@@ -117,7 +117,7 @@ Windows 10 64-bit and newer is recommeded. **AMF is not available in Windows Doc
### Known Issues And Limitations On Windows
Please refer to [this section](/docs/general/administration/hardware-acceleration/known-issues#amd-on-windows) for known issues and limitations.
Please refer to [this section](./known-issues#amd-on-windows) for known issues and limitations.
### Configure On Windows Host
@@ -175,7 +175,7 @@ A 64-bit Linux distribution is required. **The supported GPU varies by kernel an
### Known Issues And Limitations On Linux
Please refer to [this section](/docs/general/administration/hardware-acceleration/known-issues#amd-on-linux) for known issues and limitations.
Please refer to [this section](./known-issues#amd-on-linux) for known issues and limitations.
### Configure On Linux Host
@@ -294,7 +294,7 @@ Root permission is required.
Linux Mint uses Ubuntu as its package base.
You can follow the configuration steps of [Debian And Ubuntu Linux](/docs/general/administration/hardware-acceleration/amd#debian-and-ubuntu-linux) but install all Jellyfin packages `jellyfin-server`, `jellyfin-web` and `jellyfin-ffmpeg7` manually from the [Jellyfin Server Releases Page](https://repo.jellyfin.org/releases/server/). Also make sure you choose the correct codename by following the [official version maps](https://linuxmint.com/download_all.php).
You can follow the configuration steps of [Debian And Ubuntu Linux](./amd#debian-and-ubuntu-linux) but install all Jellyfin packages `jellyfin-server`, `jellyfin-web` and `jellyfin-ffmpeg7` manually from the [Jellyfin Server Releases Page](https://repo.jellyfin.org/releases/server/). Also make sure you choose the correct codename by following the [official version maps](https://linuxmint.com/download_all.php).
#### Arch Linux
@@ -333,7 +333,7 @@ Root permission is required.
sudo /usr/lib/jellyfin-ffmpeg/ffmpeg -v debug -init_hw_device drm=dr:/dev/dri/renderD128 -init_hw_device vulkan@dr
```
5. Check to the remaining parts of [Debian And Ubuntu Linux](/docs/general/administration/hardware-acceleration/amd#debian-and-ubuntu-linux).
5. Check to the remaining parts of [Debian And Ubuntu Linux](./amd#debian-and-ubuntu-linux).
#### Other Distros
@@ -429,7 +429,7 @@ Root permission is required.
image: jellyfin/jellyfin
user: 1000:1000
group_add:
- "122" # Change this to match your "render" host group id and remove this comment
- '122' # Change this to match your "render" host group id and remove this comment
network_mode: 'host'
volumes:
- /path/to/config:/config
@@ -471,7 +471,7 @@ The paths of Jellyfin config and data folders in the official and LSIO Docker im
Other Virtualizations are not verified and may or may not work on AMD GPU.
Refer to the [HWA Tutorial On Intel GPU - Configure With Linux Virtualization](/docs/general/administration/hardware-acceleration/intel#configure-with-linux-virtualization) for more information.
Refer to the [HWA Tutorial On Intel GPU - Configure With Linux Virtualization](./intel#configure-with-linux-virtualization) for more information.
### Verify On Linux
@@ -9,7 +9,7 @@ This tutorial guides you on setting up full video hardware acceleration on Apple
## Acceleration Methods
[VideoToolbox](https://developer.apple.com/documentation/videotoolbox) is the only available method on macOS.
[VideoToolbox](https://developer.apple.com/documentation/videotoolbox) is the only available method on macOS. Please look at our guides for [Intel](./intel) or [AMD](./amd) if you have installed Windows or Linux on your Intel Mac.
To achieve full acceleration, [Metal](https://developer.apple.com/metal/) is required.
@@ -35,7 +35,7 @@ When both methods are enabled, VideoToolbox Native will be used for most videos,
## Select System Hardware
Hardware accelerated transcoding is supported on all Macs that support [VideoToolbox](https://developer.apple.com/documentation/videotoolbox). This includes most 2011 and later Macs.<sup>*</sup>
Hardware accelerated transcoding is supported on all Macs that support [VideoToolbox](https://developer.apple.com/documentation/videotoolbox). This includes most 2011 and later Macs.<sup>\*</sup>
Full acceleration is available on most Macs from 2017 and later, with the exception of the MacBook Air (13-inch, 2017).
@@ -45,7 +45,7 @@ While hardware acceleration via VideoToolbox might work on older series Macs, it
If your Mac does not have an internal display, you may need to connect it to a monitor or use a dummy plug to prevent the GPU from being throttled.
<sup>*</sup> VideoToolbox may fallback to software decoding/encoding or stop working when the task exceeds its hardware capability. The older your Mac, the more this will occur. Macs from 2017 and later, especially Apple Silicon Macs are strongly recommended.
<sup>\*</sup> VideoToolbox may fallback to software decoding/encoding or stop working when the task exceeds its hardware capability. The older your Mac, the more this will occur. Macs from 2017 and later, especially Apple Silicon Macs are strongly recommended.
### Transcode H.264
@@ -99,23 +99,23 @@ lshw -C display
### Intel QSV & VA-API
Click [Intel GPU](/docs/general/administration/hardware-acceleration/intel).
Click [Intel GPU](./intel).
### AMD AMF & VA-API
Click [AMD GPU](/docs/general/administration/hardware-acceleration/amd).
Click [AMD GPU](./amd).
### NVIDIA NVENC
Click [NVIDIA GPU](/docs/general/administration/hardware-acceleration/nvidia).
Click [NVIDIA GPU](./nvidia).
### Apple VideoToolbox
Click [Apple Mac](/docs/general/administration/hardware-acceleration/apple).
Click [Apple Mac](./apple).
### Rockchip RKMPP
Click [Rockchip VPU](/docs/general/administration/hardware-acceleration/rockchip).
Click [Rockchip VPU](./rockchip).
## Enable Hardware Acceleration
@@ -5,7 +5,7 @@ title: Intel GPU
# HWA Tutorial On Intel GPU
This tutorial guides you on setting up full video hardware acceleration on Intel integrated GPUs and ARC discrete GPUs via QSV and VA-API. If you are on macOS, please use [VideoToolbox](/docs/general/administration/hardware-acceleration/apple) instead.
This tutorial guides you on setting up full video hardware acceleration on Intel integrated GPUs and ARC discrete GPUs via QSV and VA-API. If you are on macOS, please use [VideoToolbox](./apple) instead.
## Acceleration Methods
@@ -121,6 +121,12 @@ Note that Jasper Lake and Elkhart Lake processors are 10th Gen Pentium/Celeron/A
:::
:::warning
Intel ARC B series cards require ReBar to be enabled.
:::
### Transcode Other Codecs
Please refer to these links:
@@ -187,7 +193,7 @@ Intel supports OneVPL on Gen 12+ graphics (11th Gen Core and newer processor, na
Jellyfin server support Intel ARC **Alchemist/A-series** discrete GPU on both Windows and Linux **6.2+**. For using ARC **Battlemage/B-series** discrete GPU on Linux, kernel version **6.12+** is required. Windows is also supported, just install the GPU driver.
You only need to follow the [Windows Setups](/docs/general/administration/hardware-acceleration/intel#windows-setups) and [Linux Setups](/docs/general/administration/hardware-acceleration/intel#linux-setups) to configure and verify it.
You only need to follow the [Windows Setups](./intel#windows-setups) and [Linux Setups](./intel#linux-setups) to configure and verify it.
:::tip
@@ -209,7 +215,7 @@ Windows 10 64-bit and newer is recommeded. **QSV is not available on Windows Doc
### Known Issues And Limitations On Windows
Please refer to [this section](/docs/general/administration/hardware-acceleration/known-issues#intel-on-windows) for known issues and limitations
Please refer to [this section](./known-issues#intel-on-windows) for known issues and limitations
### Configure On Windows Host
@@ -265,7 +271,7 @@ A 64-bit Linux distribution is required. **The supported GPU varies by kernel an
### Known Issues And Limitations On Linux
Please refer to [this section](/docs/general/administration/hardware-acceleration/known-issues#intel-on-linux) for known issues and limitations
Please refer to [this section](./known-issues#intel-on-linux) for known issues and limitations
### Configure On Linux Host
@@ -384,7 +390,7 @@ Root permission is required.
Linux Mint uses Ubuntu as its package base.
You can follow the configuration steps of [Debian And Ubuntu Linux](/docs/general/administration/hardware-acceleration/intel#debian-and-ubuntu-linux) but install all Jellyfin packages `jellyfin-server`, `jellyfin-web` and `jellyfin-ffmpeg7` manually from the [Jellyfin Server Releases Page](https://repo.jellyfin.org/releases/server/). Also make sure you choose the correct codename by following the [official version maps](https://linuxmint.com/download_all.php).
You can follow the configuration steps of [Debian And Ubuntu Linux](./intel#debian-and-ubuntu-linux) but install all Jellyfin packages `jellyfin-server`, `jellyfin-web` and `jellyfin-ffmpeg7` manually from the [Jellyfin Server Releases Page](https://repo.jellyfin.org/releases/server/). Also make sure you choose the correct codename by following the [official version maps](https://linuxmint.com/download_all.php).
#### Arch Linux
@@ -420,7 +426,7 @@ Root permission is required.
sudo /usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=va:/dev/dri/renderD128 -init_hw_device opencl@va
```
4. Check to the remaining parts of [Debian And Ubuntu Linux](/docs/general/administration/hardware-acceleration/intel#debian-and-ubuntu-linux).
4. Check to the remaining parts of [Debian And Ubuntu Linux](./intel#debian-and-ubuntu-linux).
#### Other Distros
@@ -515,7 +521,7 @@ What you need to do is pass the host's `render` group id to Docker and modify th
image: jellyfin/jellyfin
user: 1000:1000
group_add:
- "122" # Change this to match your "render" host group id and remove this comment
- '122' # Change this to match your "render" host group id and remove this comment
network_mode: 'host'
volumes:
- /path/to/config:/config
@@ -576,19 +582,19 @@ The devices in Kubernetes are added as host path mounts, they are not separated
supplementalGroups:
- 122 # Change this to match your "render" host group id and remove this comment
containers:
- name: "jellyfin"
- name: 'jellyfin'
image: ...
ports: ...
env: ...
securityContext:
privileged: true # Container must run as privileged inside of the pod
volumeMounts:
- name: "render-device"
mountPath: "/dev/dri/renderD128"
- name: 'render-device'
mountPath: '/dev/dri/renderD128'
volumes:
- name: "render-device"
- name: 'render-device'
hostPath:
path: "/dev/dri/renderD128"
path: '/dev/dri/renderD128'
```
2. When the pod starts, you can check the QSV and VA-API codecs.
@@ -39,7 +39,7 @@ This page lists all known issues and limitations of hardware acceleration with J
## Intel on Linux
1. Intel Gen 11 [**Jasper Lake**](https://ark.intel.com/content/www/us/en/ark/products/codename/128823/products-formerly-jasper-lake.html) and [**Elkhart Lake**](https://ark.intel.com/content/www/us/en/ark/products/codename/128825/products-formerly-elkhart-lake.html) platforms (e.g. N5095, N5105, N6005, J6412) have quirks when using video encoders on Linux. The [Low-Power Encoding](/docs/general/administration/hardware-acceleration/intel#low-power-encoding) mode MUST be configured and enabled for correct VBR and CBR bitrate control that is required by Jellyfin.
1. Intel Gen 11 [**Jasper Lake**](https://ark.intel.com/content/www/us/en/ark/products/codename/128823/products-formerly-jasper-lake.html) and [**Elkhart Lake**](https://ark.intel.com/content/www/us/en/ark/products/codename/128825/products-formerly-elkhart-lake.html) platforms (e.g. N5095, N5105, N6005, J6412) have quirks when using video encoders on Linux. The [Low-Power Encoding](./intel#low-power-encoding) mode MUST be configured and enabled for correct VBR and CBR bitrate control that is required by Jellyfin.
- Ticket: [https://gitlab.freedesktop.org/drm/intel/-/issues/8080](https://gitlab.freedesktop.org/drm/intel/-/issues/8080)
@@ -79,7 +79,7 @@ This page lists all known issues and limitations of hardware acceleration with J
11. The kernel support for Intel Gen 13 (or Gen 20?) LNL and BMG / ARC B-series are incomplete before Linux 6.12.
12. The LTS kernel range 6.6.26 - 6.6.32 and the stable kernel range 6.8.5 - 6.9.3 have i915 driver bugs, which may cause problems on Intel Gen 12.5 DG2 / ARC A-series GPUs. If you are affected, please upgrade to kernel 6.6.33+ (LTS) or 6.9.4+. Ubuntu 24.04 with kernel versions 6.8.0-38 thru 6.8.0-41 are also affected by this issue. Upgrade to Ubuntu kernel 6.8.0-44+ if you are on the affected kernels.
12. The LTS kernel range 6.6.26 - 6.6.32 and the stable kernel range 6.8.5 - 6.9.3 have i915 driver bugs, which may cause problems on Intel Gen 12.5 DG2 / ARC A-series GPUs. If you are affected, please upgrade to kernel 6.6.33+ (LTS) or 6.9.4+. Ubuntu 24.04 with kernel versions 6.8.0-38 thru 6.8.0-41 are also affected by this issue. Upgrade to Ubuntu kernel 6.8.0-44+ if you are on the affected kernels.
- Issue: [https://github.com/jellyfin/jellyfin/issues/11380](https://github.com/jellyfin/jellyfin/issues/11380)
- Ubuntu bug: [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2072755](https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2072755)
@@ -15,7 +15,7 @@ On Windows and Linux **NVENC** is the only available method.
The NVENC/NVDEC are the proprietary video codec APIs of NVIDIA GPUs, which can be used with CUDA to achieve full hardware acceleration.
Please refer to [this section](/docs/general/administration/hardware-acceleration/known-issues#nvidia) for known issues and limitations.
Please refer to [this section](./known-issues#nvidia) for known issues and limitations.
:::note
@@ -127,7 +127,7 @@ Windows 10 64-bit and newer is recommeded. **In Jellyfin 10.10 the minimum requi
NVIDIA Windows driver provides access to the NVENC/NVDEC and CUDA in Windows WSL2 and Docker.
Refer to [Configure On Linux Host](/docs/general/administration/hardware-acceleration/nvidia#configure-on-linux-host) and [Configure With Linux Virtualization](/docs/general/administration/hardware-acceleration/nvidia#configure-with-linux-virtualization).
Refer to [Configure On Linux Host](./nvidia#configure-on-linux-host) and [Configure With Linux Virtualization](./nvidia#configure-with-linux-virtualization).
### Verify On Windows
@@ -220,7 +220,7 @@ Root permission is required.
Linux Mint uses Ubuntu as its package base.
You can follow the configuration steps of [Debian and Ubuntu Linux](/docs/general/administration/hardware-acceleration/nvidia#debian-and-ubuntu-linux) but install all Jellyfin packages `jellyfin-server`, `jellyfin-web` and `jellyfin-ffmpeg7` manually from the [Jellyfin Server Releases Page](https://repo.jellyfin.org/releases/server/). Also make sure you choose the correct codename by following the [official version maps](https://linuxmint.com/download_all.php).
You can follow the configuration steps of [Debian and Ubuntu Linux](./nvidia#debian-and-ubuntu-linux) but install all Jellyfin packages `jellyfin-server`, `jellyfin-web` and `jellyfin-ffmpeg7` manually from the [Jellyfin Server Releases Page](https://repo.jellyfin.org/releases/server/). Also make sure you choose the correct codename by following the [official version maps](https://linuxmint.com/download_all.php).
#### Arch Linux
@@ -415,7 +415,7 @@ The paths of Jellyfin config and data folders in the official and LSIO Docker im
Other Virtualizations are not verified and may or may not work on NVIDIA GPU.
Refer to the [HWA Tutorial On Intel GPU - Configure With Linux Virtualization](/docs/general/administration/hardware-acceleration/intel#configure-with-linux-virtualization) for more information.
Refer to the [HWA Tutorial On Intel GPU - Configure With Linux Virtualization](./intel#configure-with-linux-virtualization) for more information.
### Verify On Linux
@@ -9,7 +9,7 @@ These settings will relate to backend options that modify how the server transco
## Hardware Acceleration
If your hardware supports this you can enable [hardware acceleration](/docs/general/administration/hardware-acceleration) for much faster transcoding. Jellyfin
If your hardware supports this you can enable [hardware acceleration](./hardware-acceleration) for much faster transcoding. Jellyfin
supports hardware accelerated transcoding on all modern GPUs from Intel, AMD, Nvidia, Apple and Rockchip
if the required hardware is available.
-2
View File
@@ -1,2 +0,0 @@
label: 'Quick Start'
position: 0
-28
View File
@@ -1,28 +0,0 @@
---
uid: quick-start-index
title: Quick Start
---
# Quick Start
1. Install Jellyfin on [your system](/docs/general/installation) with the installation method for your platform.
1. Edit the [web configuration](/docs/general/clients/web-config) and adjust the options to fit your desired privacy level.
- Our defaults sacrifice some absolute self-hosting for often requested features.
- If this is concerning, please review the documentation and edit accordingly.
1. Browse to `http://SERVER_IP:8096` to access the included web client.
1. Follow the initial setup wizard.
- Libraries and users can always be added later from the dashboard.
- Remember the username and password so you can login after the setup.
1. Secure the server with a method of your choice.
- Create an SSL certificate and add it on the **Networking** page.
- Put your server behind a [reverse proxy](/docs/general/networking/index.md#running-jellyfin-behind-a-reverse-proxy).
- Only allow local connections and refrain from forwarding any ports.
1. Enjoy your media!
-269
View File
@@ -1,269 +0,0 @@
---
uid: quick-start-windows
title: Windows
---
# Windows Quick Start
## Required Tools and Resources
- A Windows 10/11 PC
- A user account with admin privileges
- An internet connection
- A public IP address
- A text editor (Notepad will work but [Notepad++](https://notepad-plus-plus.org/downloads/) or [VSCode](https://code.visualstudio.com/Download) is recommended)
- A browser that isn't Internet Explorer
## Before you begin
- Connect your PC with ethernet instead of Wi-Fi
- Set your PC to never go to sleep automatically ([Guide](https://support.microsoft.com/en-us/windows/how-to-adjust-power-and-sleep-settings-in-windows-26f623b5-4fcc-4194-863d-b824e5ea7679))
- Show file extensions in Explorer ([Guide](https://www.howtogeek.com/205086/beginner-how-to-make-windows-show-file-extensions/))
- Setup auto login for your user account if you haven't already ([Guide](https://www.lifewire.com/how-do-i-auto-login-to-windows-2626066))
- Make your media files accessible on this computer by this user
- Install latest updates ([Guide](https://support.microsoft.com/en-us/windows/get-the-latest-windows-update-7d20e88c-0568-483a-37bc-c3885390d212))
- Setup remote access (optional). Popular options include [Teamviewer](https://www.teamviewer.com/), [AnyDesk](https://anydesk.com/), [RustDesk](https://rustdesk.com/), [Google Remote Desktop](https://remotedesktop.google.com/) and [Parsec](https://parsec.app/)
## Notes
- How to open a Terminal from current location in Explorer
- Windows 10
- Right click on blank space while holding down `Shift`
- Click `Open PowerShell window here`
- Windows 11
- Right click on blank space
- Click `Open in Windows Terminal` or `Open in Terminal`
## Install Jellyfin
### Install
1. Download installer exe and sha256sum from [the official repo](https://repo.jellyfin.org/releases/server/windows/stable/). The files to download are `installer/jellyfin_x.y.z_windows-x64.exe`.
![Windows Download Page](/images/docs/quick-start/windows/jellyfin-0.png)
2. Run and follow the installer. Select `Basic Install` when prompted. Do NOT select `Install as a Service` as it will break certain functions.
![Install Option](/images/docs/quick-start/windows/jellyfin-1.png)
3. Close the installer after the install completes.
![Completed](/images/docs/quick-start/windows/jellyfin-2.png)
Installation Complete
4. Look for a Jellyfin icon in your system tray. If it isn't present, search for `Jellyfin Tray App` and run it. No windows will popup after running this application.
![Jellyfin Tray App Search](/images/docs/quick-start/windows/jellyfin-3.png)
Jellyfin Tray App
5. Allow Firewall Access when Prompted
![firewall popup](/images/docs/quick-start/windows/jellyfin-4.png)
Windows Firewall Prompt
6. Open a browser and go to [http://localhost:8096](http://localhost:8096) to finish the setup process. Leave the `Enable automatic port mapping` option unchecked. Jellyfin's automatic port mapping feature uses UPnP, which can be a security risk and may not work on some networks. (Learn more about [UPnP and its security implications](https://www.upguard.com/blog/what-is-upnp))
![Set up Remote Access](/images/docs/quick-start/windows/jellyfin-5.png)
Remote Access Setup Page
### Hardware Acceleration
Read the dedicated [Hardware Acceleration](/docs/general/administration/hardware-acceleration/) page for how to configure hardware acceleration.
## Reverse Proxy
A reverse proxy is a server that sits in front of other services and forwards client requests to those services according to predefined rules. They are usually used to help increase security, performance and reliability. Some popular options are [Apache](https://httpd.apache.org), [Caddy](https://caddyserver.com), [Haproxy](https://www.haproxy.com), [Nginx](https://www.nginx.com) and [Traefik](https://traefik.io). We are using Caddy in this guide for its simplicity. Info on other reverse proxy solutions can be found at [Running Jellyfin Behind a Reverse Proxy](/docs/general/networking/#running-jellyfin-behind-a-reverse-proxy).
### Router Settings
1. Press `Win + R`, enter `control` and click `OK` to open Control Panel
![Run Control](/images/docs/quick-start/windows/router-1.png)
2. Navigate to `Network and Internet > Network and Sharing Center`
3. Click on the `Internet Connection` under `Connections`
![Ethernet Connection](/images/docs/quick-start/windows/router-2.png)
4. Click `Details` in the popup and note down the `IPv4 Address` and `IPv4 Default Gateway` values. The `IPv4 Address` is the LAN IP address of your Jellyfin server and the `IPv4 Default Gateway` is usually your Router.
![Network Connection Details](/images/docs/quick-start/windows/router-3.png)
5. go to [https://ipv4.icanhazip.com](https://ipv4.icanhazip.com) and note down the IP address
6. Go to the `IPv4 Default Gateway` IP in a browser (for this example, `http://192.168.50.1/`) and Login to your router. If you do not have the credentials, look for them on the bottom of your router or online with the model number of your router
7. Most Routers will show a WAN IP in the index. Check if the WAN IP matches the IP you noted down in step 5. If it doesn't, you do not have a routable IP address. In this case, you should stop following this guide and look for other options for remote access.
![ASUS settings](/images/docs/quick-start/windows/router-4.png)
ASUS Router Settings Page
8. Assign your Jellyfin host a static local IP. The option is usually under `LAN` and named `DHCP Server` or `DHCP`. If you assign a different IP than what it currently has, you may need to reconnect the internet of this PC for settings to apply properly. In this case, I am assigning 192.168.50.142 to my PC.
![Static DHCP](/images/docs/quick-start/windows/router-5.png)
9. Find `Port Forwarding` settings in your router. This setting is usually under `WAN`, `Firewall`, `Security` or `NAT`and usually named `Port Forwarding` or `Virtual Server`. `Port Trigger` is NOT the setting you are looking for.
10. Forward ports 80 and 443 to the IP you assigned previously
![Port Forwarding](/images/docs/quick-start/windows/router-6.png)
### Install Caddy
1. Go to the [official Caddy server download page](https://caddyserver.com/download)
2. Choose `Windows amd64` for the platform and click download. Leave the standard features checkbox checked. You do NOT need any extra features.
![Caddy Download](/images/docs/quick-start/windows/caddyinst-1.png)
3. Create a new folder under `C:\Program Files` and name it `caddy`. Confirm the operation if prompted.
![Create Caddy folder](/images/docs/quick-start/windows/caddyinst-2.png)
4. move the downloaded exe file to the folder and rename it to `caddy.exe`. Confirm the operation if prompted.
![Place Caddy exe](/images/docs/quick-start/windows/caddyinst-3.png)
5. go to `This PC` in Explorer, right click on blank space and click on `properties`
![This PC Right Click Menu](/images/docs/quick-start/windows/caddyinst-4.png)
6. Click `Advanced System Settings`. it will be after `Device Specifications` on Windows 11, or in the left sidebar on Windows 10
7. Click on `Environment Variables` in the popup and doubleclick on `Path` under the `User variables for user` in the second popup
![Environment Variables](/images/docs/quick-start/windows/caddyinst-5.png)
8. Click on `New` in the popup and enter `C:\Program Files\caddy`, then click `OK` on the bottom right. DO NOT change the other entries as messing with them can result in broken programs and/or a broken system.
![New PATH value](/images/docs/quick-start/windows/caddyinst-6.png)
9. Click on `OK` for the other 2 popups to save and apply settings
10. Reboot to make sure settings apply properly
### Test if HTTP is routable
1. Open a terminal and run `caddy respond --body test --listen :80`
![Caddy Terminal](/images/docs/quick-start/windows/httptest-1.png)
2. Allow access if prompted by Windows Firewall
3. Your IP may have changed while making the changes in your router. Go to [https://ipv4.icanhazip.com](https://ipv4.icanhazip.com) to get your current public IP address
![My IP](/images/docs/quick-start/windows/httptest-2.png)
4. Attempt to access `http://<your IP here>` using another internet connection on another device such as your mobile data. For this case, the IP has changed to `1.171.xxx.xxx` so I will be accessing `http://1.171.xxx.xxx` using my mobile data on my phone.
5. The page should look like the picture below. If it doesn't look this way or fails to connect, your ISP may be blocking incoming http connections or your IP is not routable. In this case, you should stop following this guide and look for other remote access options.
![test success ios](/images/docs/quick-start/windows/httptest-3.png)
Screenshot taken on iOS using Safari
6. Press `Ctrl + C` in the terminal to exit Caddy, then close the terminal.
### DDNS
1. Login to DuckDNS on the top right at the [DuckDNS homepage](https://www.duckdns.org/)
2. Add a new domain in the middle. I am using jellyfintest12345.duckdns.org for this example but you can use anything as long as it hasn't been taken
![duckdns dashboard](/images/docs/quick-start/windows/ddns-1.png)
3. Download the latest Windows C# client zip from [its Github releases page](https://github.com/XWolfOverride/DuckDNS/releases)
4. Create a new subfolder under `C:\Program Files` and name it `duckdns`
![duckdns folder](/images/docs/quick-start/windows/ddns-2.png)
5. Unzip the downloaded file and move the `DuckDNS.exe` into the folder. Confirm the operation if prompted.
![duckdns exe](/images/docs/quick-start/windows/ddns-3.png)
6. Run `DuckDNS.exe`
7. Enter the Domain you just created and the Token from your DuckDNS dashboard, change interval to `5m` and click on `OK`
![duckdns client interface](/images/docs/quick-start/windows/ddns-4.png)
8. Make sure that no errors appeared and there is a yellow duck in your system tray. If the duck is red, check your configuration.
9. hit `Win + R`, enter `taskschd.msc` and click `OK`
![run task scheduler](/images/docs/quick-start/windows/ddns-5.png)
10. Click on `Create basic task` on the right panel.
11. Enter a descriptive Name and a description, one that you can identify in the future and click next
12. Choose `When I log on` for the Task Trigger and click Next
13. Choose `Start a program` for the Action
14. Enter `C:\Program Files\duckdns\DuckDNS.exe` in the Program/script field
![create duckdns task](/images/docs/quick-start/windows/ddns-6.png)
15. Check `Open the Properties dialog` checkbox and click `Finish`
![finish wizard](/images/docs/quick-start/windows/ddns-7.png)
16. Go to the `Settings` Pane in the dialog and uncheck the `Stop the task if it runs longer than` checkbox, then click `OK`
![duckdns task properties](/images/docs/quick-start/windows/ddns-8.png)
### Reverse Proxy with Caddy
1. Create a text file named `Caddyfile` (Remove the .txt suffix) on your computer. This file is temporary and can be anywhere. You will be asked to confirm if you want to change the file extension, click `Yes`.
![file extension change confirmation](/images/docs/quick-start/windows/reverseproxy-1.png)
2. Open the file in a text editor and paste in config from below depending on your needs. Replace `<your (sub)domain here>` with the domain you just created with DuckDNS.
- if you want your jellyfin instance behind the bare domain (subdomain.example.com / jellyfin.example.com):
```Caddyfile
<your (sub)domain here>
reverse_proxy 127.0.0.1:8096
```
- if you want your jellyfin instance under a subpath (example.com/jellyfin):
```Caddyfile
<your (sub)domain here>
redir /jellyfin /jellyfin/
reverse_proxy /jellyfin/* 127.0.0.1:8096
```
3. Save the file and close the text editor
4. Copy this file to your caddy folder (the one you created in the Install Caddy section which should be `C:\Program Files\caddy`). Confirm the operation if prompted.
5. If you have chosen to use a subpath for Jellyfin, go to your Jellyfin dashboard (open [http://localhost:8096](http://localhost:8096) on your server, click the 3 bars on the top right then select `Dashboard`) and go to the `Networking` menu on the side bar. Then enter the subpath you have chosen to use and save. Then restart the Jellyfin server (Stop then start the server from the system tray icon)
![Networking Settings](/images/docs/quick-start/windows/reverseproxy-2.png)
6. Open a terminal in the caddy folder and run `caddy run`. If there are errors, check your configs and try again. Keep this window running.
7. Go to `http://<your (sub)domain here>` or `http://<your (sub)domain here>/jellyfin` in a browser to test if it is working. You should be able to see the Jellyfin Login Page.
8. hit `Win + R`, enter `taskschd.msc` and click `OK`
![run taskschd](/images/docs/quick-start/windows/reverseproxy-3.png)
9. Click on `Create basic task` on the right panel.
10. Enter a descriptive Name and a description, one that you can identify in the future and click next
11. Choose `When I log on` for the Task Trigger and click Next
12. Choose `Start a program` for the Action
13. Enter `"C:\Program Files\caddy\caddy.exe"` in the Program/script field, `run` in the arguments field and `"C:\Program Files\caddy"` in the Start in field, then click Next. The parenthesis are required as the path contains a space.
14. Check Open the Properties dialog checkbox and click Finish
![create caddy task](/images/docs/quick-start/windows/reverseproxy-4.png)
15. Go to the Settings Pane in the dialog and uncheck the `Stop the task if it runs longer than` checkbox, then click OK
![caddy task propeties](/images/docs/quick-start/windows/reverseproxy-5.png)
16. Reboot to test configuration. There will be a Terminal window open after bootup. This is normal. Keep this window open.
![running caddy terminal](/images/docs/quick-start/windows/reverseproxy-6.png)
## External References
- [Official Caddy Documentation](https://caddyserver.com/docs/)
+6
View File
@@ -11,6 +11,12 @@ The general settings include options that don't require their own link in the si
This name will be displayed to users when they select a server, and clients might use it in other locations as well. The default value will be the hostname of the computer.
## Splash Screen Image
The splash screen image is used by some clients as a background for login screens or similar.
The default image is generated from images of the content on your server and is visible without authenticating and therefore can expose what content may be present on your server.
Only content with a rating equivalent to PG-13 or lower is used for generating the image, but this depends on the content having accurate rating data.
## Login Disclaimer
This message will be shown to users when they login on your server.
@@ -43,7 +43,7 @@ For the following options it should be noted that if you never set up Live TV, u
:::note
Find more information in the [transcoding documentation](/docs/general/server/transcoding).
Find more information in the [transcoding documentation](/docs/general/post-install/transcoding).
:::
+12 -14
View File
@@ -1,6 +1,7 @@
---
uid: intro
title: Introduction
sidebar-position: 1
---
# Welcome to the Jellyfin Documentation
@@ -28,30 +29,27 @@ Note: Jellyfin is a fast-moving project that is in its early stages, and this do
Want to get starting using Jellyfin right now? Check out the pages below for how to [install Jellyfin](/docs/general/installation) on your machine.
- [Arch](/docs/general/installation/linux#arch-linux)
- [Debian](/docs/general/installation/linux#debian)
- [Ubuntu](/docs/general/installation/linux#ubuntu)
- [Fedora](/docs/general/installation/linux#fedora)
- [CentOS](/docs/general/installation/linux#centos)
- [Docker](/docs/general/installation/container#docker)
- [Kubernetes](/docs/general/installation/container#kubernetes)
- [Windows](/docs/general/installation/windows)
- [MacOS](/docs/general/installation/macos)
- [Generic Linux](/docs/general/installation/linux#linux-generic-amd64)
- [macOS](/docs/general/installation/macos)
- [Debian / Ubuntu](/docs/general/installation/linux#debian--ubuntu-and-derivatives)
- [Other Linux Distributions](/docs/general/installation/linux#other-distributions)
- [Docker / Kubernetes / Podman](/docs/general/installation/container)
- [Synology](/docs/general/installation/advanced/synology)
- [TrueNAS SCALE](/docs/general/installation/advanced/truenas)
- [Generic Linux](/docs/general/installation/advanced/manual#portable-linux-install)
Alternatively, Jellyfin may be built directly from the [source code](/docs/general/installation/source).
Alternatively, Jellyfin may be built directly from the [source code](/docs/general/installation/advanced/source).
## Administrator Documentation
Want to know more about administering a Jellyfin server? Check out these pages!
- [Quick-Start Guide](/docs/general/quick-start): What to do after you have installed Jellyfin to get it up and running.
- [Migrating](/docs/general/administration/migrate): How to migrate Jellyfin.
- [Backup and Restore](/docs/general/administration/backup-and-restore): How to back up or restore your Jellyfin metadata and configuration.
- [Plugins](/docs/general/server/plugins): How to install and manage plugins.
- [Networking](/docs/general/networking): Networking settings and troubleshooting.
- [Monitoring](/docs/general/networking/monitoring): Integration with external monitoring software.
- [Hardware Acceleration](/docs/general/administration/hardware-acceleration): Improve transcoding performance on supported hardware.
- [Networking](/docs/general/post-install/networking): Networking settings and troubleshooting.
- [Monitoring](/docs/general/post-install/networking/advanced/monitoring): Integration with external monitoring software.
- [Hardware Acceleration](/docs/general/post-install/transcoding/hardware-acceleration): Improve transcoding performance on supported hardware.
## Contributing to Jellyfin
+16 -16
View File
@@ -19,7 +19,7 @@
"@docusaurus/theme-mermaid": "3.7.0",
"@easyops-cn/docusaurus-search-local": "0.49.2",
"@fontsource/noto-sans": "5.2.6",
"@icons-pack/react-simple-icons": "12.5.0",
"@icons-pack/react-simple-icons": "12.7.0",
"@img-comparison-slider/react": "8.0.2",
"@mdi/js": "7.4.47",
"@mdi/react": "1.6.1",
@@ -31,7 +31,7 @@
"react": "18.3.1",
"react-dom": "18.3.1",
"sass": "1.86.3",
"swiper": "11.2.4",
"swiper": "11.2.6",
"url-loader": "4.1.1"
},
"devDependencies": {
@@ -53,8 +53,8 @@
"eslint-plugin-react": "7.34.0",
"eslint-plugin-react-hooks": "4.6.0",
"node-fetch": "3.3.2",
"prettier": "3.5.2",
"typescript": "5.8.2",
"prettier": "3.5.3",
"typescript": "5.8.3",
"typescript-plugin-css-modules": "5.1.0"
},
"engines": {
@@ -3731,9 +3731,9 @@
"devOptional": true
},
"node_modules/@icons-pack/react-simple-icons": {
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@icons-pack/react-simple-icons/-/react-simple-icons-12.5.0.tgz",
"integrity": "sha512-pjaK1q07KYMJ9haymuyNJneJkBO5HqZlLdKNdOJp3ArqowV5dS3nMwaOEsyOYbzdQ4t7ql4++zHtkBhfw2xSVw==",
"version": "12.7.0",
"resolved": "https://registry.npmjs.org/@icons-pack/react-simple-icons/-/react-simple-icons-12.7.0.tgz",
"integrity": "sha512-XpG7e8buAco8AbvCar+4LX5do0L98d/NaeHoTuW4awyUH33id7HQiiMomK+cS1MRxfLNMmhW2W0223/fMC0unw==",
"license": "MIT",
"peerDependencies": {
"react": "^16.13 || ^17 || ^18 || ^19"
@@ -17355,9 +17355,9 @@
}
},
"node_modules/prettier": {
"version": "3.5.2",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.2.tgz",
"integrity": "sha512-lc6npv5PH7hVqozBR7lkBNOGXV9vMwROAPlumdBkX0wTbbzPu/U1hk5yL8p2pt4Xoc+2mkT8t/sow2YrV/M5qg==",
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz",
"integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==",
"dev": true,
"license": "MIT",
"bin": {
@@ -19455,9 +19455,9 @@
}
},
"node_modules/swiper": {
"version": "11.2.4",
"resolved": "https://registry.npmjs.org/swiper/-/swiper-11.2.4.tgz",
"integrity": "sha512-DTtglrsFfMYytid+oNy4QI3t2N2+XhhwSYbnyOhlwBmvY8Bkoj3ombK1/b80w8vDpQ+Lqlnbm+0737+i32MrcA==",
"version": "11.2.6",
"resolved": "https://registry.npmjs.org/swiper/-/swiper-11.2.6.tgz",
"integrity": "sha512-8aXpYKtjy3DjcbzZfz+/OX/GhcU5h+looA6PbAzHMZT6ESSycSp9nAjPCenczgJyslV+rUGse64LMGpWE3PX9Q==",
"funding": [
{
"type": "patreon",
@@ -19848,9 +19848,9 @@
}
},
"node_modules/typescript": {
"version": "5.8.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz",
"integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==",
"version": "5.8.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz",
"integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==",
"license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
+4 -4
View File
@@ -32,7 +32,7 @@
"@docusaurus/theme-mermaid": "3.7.0",
"@easyops-cn/docusaurus-search-local": "0.49.2",
"@fontsource/noto-sans": "5.2.6",
"@icons-pack/react-simple-icons": "12.5.0",
"@icons-pack/react-simple-icons": "12.7.0",
"@img-comparison-slider/react": "8.0.2",
"@mdi/js": "7.4.47",
"@mdi/react": "1.6.1",
@@ -44,7 +44,7 @@
"react": "18.3.1",
"react-dom": "18.3.1",
"sass": "1.86.3",
"swiper": "11.2.4",
"swiper": "11.2.6",
"url-loader": "4.1.1"
},
"browserslist": {
@@ -78,8 +78,8 @@
"eslint-plugin-react": "7.34.0",
"eslint-plugin-react-hooks": "4.6.0",
"node-fetch": "3.3.2",
"prettier": "3.5.2",
"typescript": "5.8.2",
"prettier": "3.5.3",
"typescript": "5.8.3",
"typescript-plugin-css-modules": "5.1.0"
}
}
+62 -6
View File
@@ -36,17 +36,22 @@ const redirects: ClientRedirects.Options['redirects'] = [
to: '/docs/general/installation/'
},
{
from: '/docs/general/administration/install/synology',
to: '/docs/general/installation/synology'
from: [
'/docs/general/administration/install/synology',
// synology moved
'/docs/general/installation/synology'
],
to: '/docs/general/installation/advanced/synology'
},
// installing from source moved
{
from: '/docs/general/administration/building',
to: '/docs/general/installation/source'
from: ['/docs/general/installation/source', '/docs/general/administration/building'],
to: '/docs/general/installation/advanced/source'
},
// "traefik2" moved
{
from: '/docs/general/networking/traefik2',
to: '/docs/general/networking/traefik'
from: ['/docs/general/networking/traefik2', '/docs/general/networking/traefik'],
to: '/docs/general/post-install/networking/advanced/traefik'
},
// Internet radio moved to live tv
{
@@ -66,6 +71,57 @@ const redirects: ClientRedirects.Options['redirects'] = [
'/docs/general/server/media/music-videos'
],
to: '/docs/general/server/media/video'
},
// transcoding and hwa moved
{
from: '/docs/general/administration/hardware-acceleration',
to: '/docs/general/post-install/transcoding/hardware-acceleration/'
},
{
from: '/docs/general/server/transcoding',
to: '/docs/general/post-install/transcoding/'
},
// networking moved
{
from: '/docs/general/networking/',
to: '/docs/general/post-install/networking/'
},
{
from: '/docs/general/networking/apache',
to: '/docs/general/post-install/networking/advanced/apache'
},
{
from: '/docs/general/networking/caddy',
to: '/docs/general/post-install/networking/caddy'
},
{
from: '/docs/general/networking/dlna',
to: '/docs/general/post-install/networking/dlna'
},
{
from: '/docs/general/networking/fail2ban',
to: '/docs/general/post-install/networking/advanced/fail2ban'
},
{
from: '/docs/general/networking/haproxy',
to: '/docs/general/post-install/networking/advanced/haproxy'
},
{
from: '/docs/general/networking/letsencrypt',
to: '/docs/general/post-install/networking/advanced/letsencrypt'
},
{
from: '/docs/general/networking/monitoring',
to: '/docs/general/post-install/networking/advanced/monitoring'
},
{
from: '/docs/general/networking/nginx',
to: '/docs/general/post-install/networking/advanced/nginx'
},
// quick start replaced with post install
{
from: '/docs/general/quick-start',
to: '/docs/general/post-install/setup-wizard'
}
];
export default redirects;
+2 -1
View File
@@ -19,5 +19,6 @@
"/docs/general/server/settings.html",
"/docs/general/server/tasks.html",
"/docs/general/server/transcoding.html",
"/docs/general/server/users/adding-managing-users.html"
"/docs/general/server/users/adding-managing-users.html",
"/docs/general/post-install/setup-wizard.html"
]
-1
View File
@@ -14,7 +14,6 @@ import { SidebarConfig } from '@docusaurus/plugin-content-docs/src/sidebars/type
const sidebars: SidebarConfig = {
// By default, Docusaurus generates a sidebar from the docs folder structure
docs: [
// "docs/general" pages
'index',
{ type: 'autogenerated', dirName: 'general' },
{ type: 'link', label: 'API Documentation', href: 'https://api.jellyfin.org' }
Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 220 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 305 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 181 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Some files were not shown because too many files have changed in this diff Show More