From 5bd7f8a0a2694640915045ad2ab0f7aceef50efb Mon Sep 17 00:00:00 2001 From: "Joshua M. Boniface" Date: Fri, 27 Oct 2023 23:37:52 -0400 Subject: [PATCH] Major cleanup of Linux install instructions (#716) * 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. Co-authored-by: Bill Thornton --- docs/general/installation/linux.md | 286 ++++++++++------------------- src/data/downloads.tsx | 31 +--- 2 files changed, 105 insertions(+), 212 deletions(-) diff --git a/docs/general/installation/linux.md b/docs/general/installation/linux.md index ea8f34c4..c7af2b8e 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: + + * `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. Reboot your machine - - ```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,33 +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 +### Repository (Automatic) -Microsoft does not provide a .NET for 32-bit x86 Linux systems, and hence Jellyfin is **not** supported on the `i386` architecture. - -::: - -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`): ```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: +An empty output means everything is correct. Then you can inspect the script to see what it does (optional but recommended) and execute it with: + +```sh +less install-debuntu.sh +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-metapackages/blob/master/install-debuntu.sh#L52) for any other common derivatives, or you can use the steps below instead. + +::: + +### 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: @@ -129,129 +134,7 @@ If you don't trust the script or want to do everything manually, the full steps 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: + If you do not have curl installed, you can use + wget -O- instead of + curl.

-
-              {`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! + 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{' '}