Jellyfin is the volunteer-built media solution that streams to any device from your own media server. In this guide, you will learn how to install media streaming server on CentOS / RHEL 8.
Table of Contents:
- What is Jellyfin?
- Environment Specification
- Update Software Package in CentOS 8
- Install EPEL yum Repository on CentOS 8
- Install RPM Fusion Yum Repository on CentOS 8
- Enable PowerTools Yum Repository in CentOS 8
- Install Jellyfin Prerequisite Packages
- Install Jellyfin Media Server on CentOS 8
- Configure Linux Firewall for Jellyfin Media Server
- Web Configuration of Jellyfin Media Server
- Conclusion
What is Jellyfin?:
Jellyfin is a suite of multimedia applications designed to organize, manage, and share digital media files to networked devices. It consists of a server application installed on a machine running Microsoft Windows, macOS, Linux or in a Docker container, and another application running on a client device such as a smart phone, tablet, smart TV, streaming media player, game console or in a web browser.
Jellyfin also can serve media to DLNA and Chromecast-enabled devices. It is a free and open-source software fork of Emby.
Jellyfin follows a client–server model that allows for multiple users and clients to connect, even simultaneously, and stream digital media remotely. A fully self-contained server, there is no subscription-based consumption model that exists, and it does not utilize an external connection nor third-party authentication for any of its functionality. This enables Jellyfin to work on an isolated intranet in much the same fashion as it does over the Internet.
Because it shares a heritage with Emby, some clients for that platform are unofficially compatible with Jellyfin, however as Jellyfin's code-base diverges from Emby, this becomes less possible. It does not support a direct migration path from Emby. (Source: Wikipedia)
Jellyfin is open source and distributed under GPLv2 license. The source code is available at Github repository.
Environment Specification:
We are using a minimal CentOS 8 virtual machine with following specifications.
- CPU - 3.4 Ghz (2 cores)
- Memory - 4 GB
- Storage - 40 GB
- Operating System - CentOS 8.3
- Hostname – jellyfin-server.centlinux.com
- IP Address - 192.168.116.230 /24
Update Linux Operating System:
Connect with jellyfin-server.centlinux.com as root user by using a ssh client.
It is a best practice to always update your Linux operating system packages before installing a new software.
Use dnf command to update your Linux server as follows.
# dnf update -y
Check the Linux operating system and Kernel versions, that are being used in this installation guide.
# cat /etc/redhat-release CentOS Linux release 8.3.2011 # uname -r 4.18.0-240.1.1.el8_3.x86_64
Install EPEL yum Repository on CentOS 8:
Some of the packages, that are required by Jellyfin software, are not available in standard yum repositories.
Therefore, you are required to install EPEL (Extra Packages for Enterprise Linux) on your CentOS / RHEL server before installing Jellyfin software.
# dnf install -y epel-release
Install RPM Fusion Yum Repository:
RPM Fusion repository provides add-on packages for Fedora and Red Hat based Linux distributions. It provides both free and commercial software packages.
Jellyfin media server requires some software packages from RPM Fusion repository, therefore you have to install it by executing following command at Linux bash prompt.
# dnf install -y / > https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm / > https://mirrors.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-8.noarch.rpm
Enable PowerTools Yum Repository in CentOS 8:
PowerTools repository is not enabled by default in CentOS / RHEL 8 operating system. However, there are some software that have dependencies in PowerTools yum repository.
Execute following Linux command to enable PowerTools repository.
# dnf config-manager --enable powertools
Build cache for newly installed yum repositories.
# dnf makecache
Install Jellyfin Prerequisite Packages:
If you have correctly setup the third party yum repositories on your Linux server then you can install the Jellyfin prerequisite packages very easily.
Jellyfin media server requires Simple DirectMedia Layer (SDL), which is a cross-platform software development library designed to provide a hardware abstraction layer for computer multimedia hardware components.
SDL2 software is available in PowerTools yum repository, therefore execute dnf command and install it on your Linux server.
# dnf install -y SDL2
Jellyfin media server also requires ffmpeg software packages.
FFmpeg is a free and open-source software project consisting of a large suite of libraries and programs for handling video, audio, and other multimedia files and streams. At its core is the FFmpeg program itself, designed for command-line-based processing of video and audio files.
Install ffmpeg by using dnf command.
# dnf install -y ffmpeg ffmpeg-devel
Install Jellyfin Media Server on CentOS / RHEL 8:
Jellyfin is a free software, therefore you can download from their official website.
By using wget command, download the Jellyfin server RPM on your Linux server.
# wget https://repo.jellyfin.org/releases/server/centos/stable/server/jellyfin-server-10.7.0~rc2-1.el7.x86_64.rpm
...
HTTP request sent, awaiting response... 200 OK
Length: 41886592 (40M) [application/x-redhat-package-manager]
Saving to: âjellyfin-server-10.7.0~rc2-1.el7.x86_64.rpmâ
jellyfin-server-10. 100%[===================>] 39.95M 185KB/s in 9m 16s
2021-01-04 23:12:28 (73.5 KB/s) - âjellyfin-server-10.7.0~rc2-1.el7.x86_64.rpmâ saved [41886592/41886592]
Similarly, download the web client package by using wget command. This package provides the Web UI for Jellyfin media server.
# wget https://repo.jellyfin.org/releases/server/centos/stable/web/jellyfin-web-10.7.0~rc2-1.el7.noarch.rpm
...
HTTP request sent, awaiting response... 200 OK
Length: 36060156 (34M) [application/x-redhat-package-manager]
Saving to: âjellyfin-web-10.7.0~rc2-1.el7.noarch.rpmâ
jellyfin-web-10.7.0 100%[===================>] 34.39M 415KB/s in 8m 26s
2021-01-04 23:22:50 (69.5 KB/s) - âjellyfin-web-10.7.0~rc2-1.el7.noarch.rpmâ saved [36060156/36060156]
Install Jellyfin server package on your Linux operating system by using following dnf command.
# dnf localinstall -y jellyfin-server-10.7.0~rc2-1.el7.x86_64.rpm
Similarly, install Jellyfin web package on your Linux server.
# dnf localinstall -y jellyfin-web-10.7.0~rc2-1.el7.noarch.rpm
Enable and start Jellyfin service.
# systemctl enable --now jellyfin.service
Created symlink /etc/systemd/system/multi-user.target.wants/jellyfin.service â /usr/lib/systemd/system/jellyfin.service.
Verify the status of the service.
# systemctl status jellyfin.service
Configure Linux Firewall:
Jellyfin service listens on default port 8096/tcp.
To allow incoming traffic to your online media server. You are required to allow the service port in Linux firewall.
# firewall-cmd --permanent --add-port=8096/tcp success # firewall-cmd --reload success
Web Configuration of Jellyfin Media Server:
Open URL http://jellyfin-server.centlinux.com:8096 in a web browser.
Select your preferred display language and click on "Next".
Provide username/password to create an Jellyfin admin user. Click on "Next".
Add your required Media directories, We are adding three different type of media directories in our media streaming server.
Click on "Next".
Choose Preferred Metadata Language and click on "Next".
Click on "Next".
Click on "Finish".
Click on "Sign In".
Click on a library to view the content therein.
Click on dashboard, to view the details about your media streaming server.
The online media streaming server has been installed and configured on CentOS / RHEL 8. If you have faced difficulty in understanding the above installation guide, then you may read CentOS 8 Essentials: Learn to install, administer and deploy CentOS 8 systems (PAID LINK) by Neil Smyth.
Conclusion:
In this guide, you have learned how to install Jellyfin media server on CentOS / RHEL 8.
Excellent!!!
ReplyDelete