From deff14876f3419feabce74e53520cf29b2cb5a92 Mon Sep 17 00:00:00 2001 From: "Joshua M. Boniface" Date: Sat, 21 Oct 2023 14:33:50 -0400 Subject: [PATCH 01/10] Major cleanup of Linux install instructions This is an attempt to clean up and streamline the various Linux package install instructions. 1. The main Downloads page now provides just the most basic instructions for using the script install; users are directed to the docs page for more advanced instructions. We don't need walls of text or commands in the quickstart. 2. The Debian/Ubuntu docs are cleaned up and unified: a) The Debian and Ubuntu sections were mostly identical, so combine them and show only the (single) relevant difference. b) Add a clear command for integrity checking the script. c) Expand some aspects of the manual process for better checking, and link to the script rather than provide a list of codenames that must be constantly updated. d) Cleans up some wording. 3. The Fedora and CentOS docs are cleaned up: a) Use consistent monospace for package names and capitalization elsewhere. b) Clean up the steps a bit. c) Clarify the source and when a repo will come. d) For CentOS mention that the process is "similar" to Fedora (better than the nothing that was there before). 4. Use consistent links to the download repository throughout; linking back to the downloads page, which presumably someone *came from*, is unfriendly. Just link to the right place. --- docs/general/installation/linux.md | 267 ++++++++++------------------- src/data/downloads.tsx | 32 +--- 2 files changed, 93 insertions(+), 206 deletions(-) diff --git a/docs/general/installation/linux.md b/docs/general/installation/linux.md index ea8f34c43..0987b7554 100644 --- a/docs/general/installation/linux.md +++ b/docs/general/installation/linux.md @@ -24,9 +24,9 @@ The AUR also offers each separately at [`jellyfin-server-git`](https://aur.archl ## Fedora -Fedora builds in RPM package format are available [here](/downloads/linux#fedora-centos) for now but an official Fedora repository is coming soon. +Fedora builds in RPM package format are available [in the main download repository](https://repo.jellyfin.org/releases/server/). We do not yet have an official Fedora repository, but one is planned for the future. -1. You will need to enable rpmfusion as ffmpeg is a dependency of the jellyfin server package +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 @@ -34,33 +34,29 @@ Fedora builds in RPM package format are available [here](/downloads/linux#fedora :::note - You do not need to manually install ffmpeg, it will be installed by the jellyfin server package as a dependency + 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 +2. Install the Jellyfin server ```sh - sudo dnf install (link to version jellyfin server you want to install) + sudo dnf install ``` -3. Install the jellyfin web interface +3. Install the Jellyfin web interface ```sh - sudo dnf install (link to web RPM you want to install) + sudo dnf install ``` -4. Enable jellyfin service with systemd +4. Enable and start the Jellyfin service: ```sh - sudo systemctl start jellyfin + sudo systemctl enable --now jellyfin ``` - ```sh - sudo systemctl enable jellyfin - ``` - -5. Open jellyfin service with firewalld +5. Allow Jellyfin through the firewall: ```sh sudo firewall-cmd --permanent --add-service=jellyfin @@ -68,25 +64,20 @@ Fedora builds in RPM package format are available [here](/downloads/linux#fedora :::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 - - ::: + This will open the following ports: -6. Reboot your machine + * `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 - ```sh - sudo systemctl reboot - ``` + ::: -7. Go to `localhost:8096` or `ip-address-of-jellyfin-server:8096` to finish setup in the web UI +6. Go to `localhost:8096` or `ip-address-of-jellyfin-server:8096` to finish setup in the web UI ## CentOS -CentOS/RHEL 7 builds in RPM package format are available [here](/downloads/linux#fedora-centos) and an official CentOS/RHEL repository is planned for the future. +CentOS/RHEL 7 builds in RPM package format are available [in the main download repository](https://repo.jellyfin.org/releases/server/). We do not yet have an official CentOS/RHEL repository, but one is planned for the future. The default CentOS/RHEL repositories don't provide FFmpeg, which the RPM requires. You will need to add a third-party repository which provide FFmpeg, such as [RPM Fusion's Free repository](https://rpmfusion.org/Configuration). @@ -95,155 +86,47 @@ You can also build [Jellyfin's version](https://github.com/jellyfin/jellyfin-ffm This includes gathering the dependencies and compiling and installing them. Instructions can be found at [the FFmpeg wiki](https://trac.ffmpeg.org/wiki/CompilationGuide/Centos). -## Debian +The general process should follow the above Fedora instructions. -### Repository +## Debuntu (Debian, Ubuntu, and derivatives using `apt`) -The Jellyfin team provides a Debian repository for installation on Debian Buster, Bullseye and Bookworm. -Supported architectures are `amd64`, `arm64`, and `armhf`. +The Jellyfin team provides 3rd-party Debian and Ubuntu repositories, to help ensure your Jellyfin install is always kept up-to-date. -:::note - -Microsoft does not provide a .NET for 32-bit x86 Linux systems, and hence Jellyfin is **not** supported on the `i386` architecture. - -::: +### Repository (Automatic) -We provide an installer script to easily configure the Jellyfin APT repository. -All you need to do is run this command on your system: +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. +All you need to do is run this command on your system (requires `curl`, or subsitute `curl` with `wget -O-`): ```sh curl https://repo.jellyfin.org/install-debuntu.sh | sudo bash ``` -If you do not have `curl` installed, you can try `wget` instead: +:::note + +You can verify the script download integrity with (requires `sha256sum`) with: ```sh -wget -O- https://repo.jellyfin.org/install-debuntu.sh | sudo bash +diff <( curl -s https://repo.jellyfin.org/install-debuntu.sh -o install-debuntu.sh; sha256sum install-debuntu.sh ) <( curl -s https://repo.jellyfin.org/install-debuntu.sh.sha256sum ) ``` -If you don't trust the script or want to do 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. Download the GPG signing key (signed by the Jellyfin Team): - - ```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 - ``` - -3. Add a repository configuration at `/etc/apt/sources.list.d/jellyfin.sources`: - - ```sh - cat < = [
               {`curl https://repo.jellyfin.org/install-debuntu.sh | sudo bash`}
             
-

- If you do not have curl installed, you can try wget instead: -

-
-              {`wget -O- https://repo.jellyfin.org/install-debuntu.sh | sudo bash`}
-            
-

For more advanced users, the full steps are:

-
-              
-                {`sudo apt install curl gnupg
-sudo mkdir /etc/apt/keyrings
-DISTRO="$( awk -F'=' '/^ID=/{ print $NF }' /etc/os-release )"
-CODENAME="$( awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release )"
-curl -fsSL https://repo.jellyfin.org/\${DISTRO}/jellyfin_team.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/jellyfin.gpg
-cat <
-            
-

- Note:: If you are running a non-Debian, non-Ubuntu derivative, ensure the $DISTRO and{' '} - $CODENAME are valid Debian or Ubuntu values! -

+

If you do not have curl installed, you can use wget -O- instead of curl.

+

For more advanced users, the full steps can be [found in the docs](https://jellyfin.org/docs/general/installation/linux#debuntu).

Once installed, Jellyfin will be running as a service. Manage it with{' '} {'sudo systemctl {action} jellyfin.service'} or{' '} From 98a8b6e65b2e8f558466a3d1145274f97480ed6e Mon Sep 17 00:00:00 2001 From: "Joshua M. Boniface" Date: Sat, 21 Oct 2023 14:48:05 -0400 Subject: [PATCH 02/10] Fix linting errors (pass 1) --- docs/general/installation/linux.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/general/installation/linux.md b/docs/general/installation/linux.md index 0987b7554..f9d7d5e87 100644 --- a/docs/general/installation/linux.md +++ b/docs/general/installation/linux.md @@ -175,7 +175,7 @@ If you would prefer to install everything manually, the full steps are as follow :::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-metapackages/blob/master/install-debuntu.sh#L7) or [Ubuntu](https://github.com/jellyfin/jellyfin-metapackages/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-metapackages/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. @@ -252,7 +252,6 @@ The repository is the preferred way to obtain Jellyfin on Debian and Ubuntu syst ::: - 4. Use `apt` to install any missing dependencies: ```sh From e12e8e886919b650b9223072090ba255f8eb3fd5 Mon Sep 17 00:00:00 2001 From: "Joshua M. Boniface" Date: Sat, 21 Oct 2023 14:54:07 -0400 Subject: [PATCH 03/10] Make eslint happy event though it's worse --- src/data/downloads.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/data/downloads.tsx b/src/data/downloads.tsx index 857843304..6f3eaf734 100644 --- a/src/data/downloads.tsx +++ b/src/data/downloads.tsx @@ -57,8 +57,10 @@ export const Downloads: Array = [

               {`curl https://repo.jellyfin.org/install-debuntu.sh | sudo bash`}
             
-

If you do not have curl installed, you can use wget -O- instead of curl.

-

For more advanced users, the full steps can be [found in the docs](https://jellyfin.org/docs/general/installation/linux#debuntu).

+

If you do not have curl installed, you can use wget -O- instead of{' '} + curl.

+

For more advanced users, the full steps can be [found in the + docs](https://jellyfin.org/docs/general/installation/linux#debuntu).

Once installed, Jellyfin will be running as a service. Manage it with{' '} {'sudo systemctl {action} jellyfin.service'} or{' '} From cd0d93707ae96dade34a6879d7d08bf7d49208a3 Mon Sep 17 00:00:00 2001 From: "Joshua M. Boniface" Date: Sat, 21 Oct 2023 14:57:12 -0400 Subject: [PATCH 04/10] Continue trying to make prettier happy --- src/data/downloads.tsx | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/data/downloads.tsx b/src/data/downloads.tsx index 6f3eaf734..f76b00b45 100644 --- a/src/data/downloads.tsx +++ b/src/data/downloads.tsx @@ -57,10 +57,14 @@ export const Downloads: Array = [

               {`curl https://repo.jellyfin.org/install-debuntu.sh | sudo bash`}
             
-

If you do not have curl installed, you can use wget -O- instead of{' '} - curl.

-

For more advanced users, the full steps can be [found in the - docs](https://jellyfin.org/docs/general/installation/linux#debuntu).

+

+ If you do not have curl installed, you can use wget -O- instead + of curl. +

+

+ For more advanced users, the full steps can be [found in the + docs](https://jellyfin.org/docs/general/installation/linux#debuntu). +

Once installed, Jellyfin will be running as a service. Manage it with{' '} {'sudo systemctl {action} jellyfin.service'} or{' '} From 196f98b4b1a5130a6b71cca30b54cf041a789fc4 Mon Sep 17 00:00:00 2001 From: "Joshua M. Boniface" Date: Sat, 21 Oct 2023 14:59:15 -0400 Subject: [PATCH 05/10] And do it again --- src/data/downloads.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/data/downloads.tsx b/src/data/downloads.tsx index f76b00b45..9cbce93ee 100644 --- a/src/data/downloads.tsx +++ b/src/data/downloads.tsx @@ -58,8 +58,8 @@ export const Downloads: Array = [ {`curl https://repo.jellyfin.org/install-debuntu.sh | sudo bash`}

- If you do not have curl installed, you can use wget -O- instead - of curl. + If you do not have curl installed, you can use{' '} + wget -O- instead of curl.

For more advanced users, the full steps can be [found in the From 5cf4aa638bd47fa905972ccbd58cf3429942e5d5 Mon Sep 17 00:00:00 2001 From: "Joshua M. Boniface" Date: Sat, 21 Oct 2023 15:06:41 -0400 Subject: [PATCH 06/10] IDK my BFF eslint --- src/data/downloads.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/data/downloads.tsx b/src/data/downloads.tsx index 9cbce93ee..364aa24ae 100644 --- a/src/data/downloads.tsx +++ b/src/data/downloads.tsx @@ -59,7 +59,8 @@ export const Downloads: Array = [

If you do not have curl installed, you can use{' '} - wget -O- instead of curl. + wget -O- instead of{' '} + curl.

For more advanced users, the full steps can be [found in the From 7a03838e340a756ecd6e71116b4a854254a03d1e Mon Sep 17 00:00:00 2001 From: "Joshua M. Boniface" Date: Sat, 21 Oct 2023 15:08:21 -0400 Subject: [PATCH 07/10] Yargle --- src/data/downloads.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data/downloads.tsx b/src/data/downloads.tsx index 364aa24ae..5a804b672 100644 --- a/src/data/downloads.tsx +++ b/src/data/downloads.tsx @@ -58,7 +58,7 @@ export const Downloads: Array = [ {`curl https://repo.jellyfin.org/install-debuntu.sh | sudo bash`}

- If you do not have curl installed, you can use{' '} + If you do not have curl installed, you can use wget -O- instead of{' '} curl.

From 7c437a118a4b8681ea101d88f3aef2e636dc66ce Mon Sep 17 00:00:00 2001 From: "Joshua M. Boniface" Date: Sat, 21 Oct 2023 15:10:39 -0400 Subject: [PATCH 08/10] Urborg Tomb of Yawgmoth --- src/data/downloads.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data/downloads.tsx b/src/data/downloads.tsx index 5a804b672..9250f53c4 100644 --- a/src/data/downloads.tsx +++ b/src/data/downloads.tsx @@ -59,7 +59,7 @@ export const Downloads: Array = [

If you do not have curl installed, you can use - wget -O- instead of{' '} + wget -O- instead of curl.

From e25a599468233a5e58d77f6f8e30fd7349fabd5c Mon Sep 17 00:00:00 2001 From: "Joshua M. Boniface" Date: Sat, 21 Oct 2023 15:20:36 -0400 Subject: [PATCH 09/10] Remove extra "with" --- docs/general/installation/linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/general/installation/linux.md b/docs/general/installation/linux.md index f9d7d5e87..e06b51c99 100644 --- a/docs/general/installation/linux.md +++ b/docs/general/installation/linux.md @@ -103,7 +103,7 @@ curl https://repo.jellyfin.org/install-debuntu.sh | sudo bash :::note -You can verify the script download integrity with (requires `sha256sum`) with: +You can verify the script download integrity with (requires `sha256sum`): ```sh diff <( curl -s https://repo.jellyfin.org/install-debuntu.sh -o install-debuntu.sh; sha256sum install-debuntu.sh ) <( curl -s https://repo.jellyfin.org/install-debuntu.sh.sha256sum ) From a5802608dc55f5e0d9d993027124e2c2fdb275fa Mon Sep 17 00:00:00 2001 From: "Joshua M. Boniface" Date: Fri, 27 Oct 2023 22:49:51 -0400 Subject: [PATCH 10/10] Update docs/general/installation/linux.md Co-authored-by: Bill Thornton --- docs/general/installation/linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/general/installation/linux.md b/docs/general/installation/linux.md index e06b51c99..c7af2b8ee 100644 --- a/docs/general/installation/linux.md +++ b/docs/general/installation/linux.md @@ -147,7 +147,7 @@ If you would prefer to install everything manually, the full steps are as follow ::: - On Debian, you can also enable the `non-free` components of your base repositories for additional FFMpeg dependencies, but this is optional. + 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: