Jellyfin tutorial
Jellyfin is a free and open-source media server software project. It allows users to organize, manage, and stream their digital media collections (like movies, TV shows, music, photos) to various devices over a network. Jellyfin is a fork of the Emby media server software.
Jellyfin follows a client-server model. The Jellyfin Media Server software is installed on a central machine (like a personal computer, NAS, or private server), where it scans and organizes the media library. Users then access and play this media using Jellyfin client applications available for numerous platforms or via a Web browser. As a free and open-source project, it is community-driven and does not have licensing fees or proprietary features.
Overview
Jellyfin is designed to be a comprehensive personal media system. It automatically fetches metadata (like movie plots, cast information, album art) from various online sources to enrich the media library. Users can access their media from inside their home network or securely over the internet.
Its open-source nature means the software is free to use, modify, and distribute. Development is community-led, with contributions from volunteers worldwide. This contrasts with some commercial alternatives that may have proprietary features or require subscriptions.
Features
Jellyfin provides a rich set of features for managing and enjoying digital media:
- Media Organization: Scans designated folders, automatically identifies media files, fetches metadata, posters, trailers, and organizes them into libraries (Movies, TV Shows, Music, Photos, etc.).
- Streaming: Streams media to client devices over the local network or the internet. Supports various streaming protocols.
- Transcoding: Can convert media files on-the-fly (transcoding) to formats and resolutions compatible with the client device's capabilities and the available network bandwidth. Supports hardware acceleration for faster transcoding if the server hardware allows.
- Live TV and DVR: Supports integration with compatible TV tuners and electronic program guides (EPGs) to watch and record live television.
- Client Applications: Offers a wide range of official and third-party client apps for platforms like web browsers, Android, iOS, Android TV, Apple TV, Roku, Smart TVs, game consoles, and more.
- Plugins: Extensible through a plugin system to add functionality, support additional metadata sources, or integrate with other services.
- DLNA and Chromecast Support: Can act as a DLNA server and supports casting to Chromecast-enabled devices.
- Multi-user Support: Allows creating multiple user accounts with customizable access permissions and profiles.
Installation on a Linux Private Server (CLI Tutorial)
This tutorial outlines how to install the Jellyfin Media Server software on a Linux private server, typically a Debian-based distribution like Ubuntu, using the command-line interface. Installing from the official Jellyfin repository is the recommended method to get the latest versions and updates.
Prerequisites:
- A Linux server (e.g., Ubuntu 20.04+, Debian 10+).
- Command-line access (SSH).
- sudo privileges.
- An internet connection on the server.
Steps:
- Add the Jellyfin Repository and GPG Key:
The official repository ensures you get packages built specifically for Jellyfin. First, install necessary tools and add the GPG key:
sudo apt update sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common curl -fsSL [1](https://repo.jellyfin.org/$)( awk -F'=' '/^ID=/ { print $NF }' /etc/os-release )/jellyfin_team.gpg.key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/jellyfin.gpg
Next, add the repository to your sources list. Replace `$( awk -F'=' '/^ID=/ { print $NF }' /etc/os-release )` with your distribution's ID if needed (e.g., `ubuntu` or `debian`).
echo "deb [arch=$( dpkg --print-architecture )] [2](https://repo.jellyfin.org/$)( awk -F'=' '/^ID=/ { print $NF }' /etc/os-release ) $( awk -F'=' '/^VERSION_CODENAME=/ { print $NF }' /etc/os-release ) main" | sudo tee /etc/apt/sources.list.d/jellyfin.list
(Note: These commands attempt to automatically detect your distribution and version codename. If they fail, you might need to manually find the correct values for your OS version from the Jellyfin documentation).
- Update the package index:
Refresh the list of available packages, including those from the newly added Jellyfin repository.
sudo apt update
- Install Jellyfin:
Install the main Jellyfin Media Server package.
sudo apt install jellyfin -y
The service should start automatically after installation.
- Check the service status:
Verify that the Jellyfin service is running.
sudo systemctl status jellyfin
Look for `active (running)` in the output.
- Access the Initial Web Setup:
Jellyfin is configured via a web interface. Open a web browser on your computer and navigate to your server's IP address or hostname followed by port 8096.
http://your_server_ip_or_hostname:8096
Follow the on-screen instructions to create an administrator account, set up libraries (point Jellyfin to your media folders), and configure other settings.
- Firewall Configuration (Important):
If your server has a firewall enabled (like `ufw`), you need to open the ports that Jellyfin uses for incoming connections. The primary web interface is on TCP port 8096 (HTTP) and often 8920 (HTTPS).
- If using `ufw`:
sudo ufw allow 8096/tcp sudo ufw allow 8920/tcp # If you set up HTTPS later sudo ufw reload # Apply the changes
You may also need to open ports for DLNA (1900 UDP, 8096 TCP) or other services if you plan to use them.
- Managing the Jellyfin Service:
You can use `systemctl` to manage the Jellyfin service:
- Restart Jellyfin:
sudo systemctl restart jellyfin
- Stop Jellyfin:
sudo systemctl stop jellyfin
- Start Jellyfin:
sudo systemctl start jellyfin
After completing the web setup, your Jellyfin server will be ready to stream media to your client devices.
See also
- Media server
- Streaming media
- Transcoding
- DLNA
- Plex (similar media server)
- Emby (software Jellyfin forked from)