How to install Jellyfin Media Server?
Jellyfin is a free and open source media system that lets you stream all your photos, music, videos and movies to any device from your own server. It is a fully free alternative to PLEX Media Server that doesn't require any account, subscription or connection to a cloud service and offers hardware transcoding out of the box. Jellyfin apps are available for almost all platforms.
note
Jellyfin and PLEX Media Server can be installed side by side, but you should decide for one of them since both will index your whole media library which costs disk space and CPU time twice.
Preparation
- Create a subdomain like
media.yourdomain.comand edit the DNS settings for this subdomain to point to your Nextcloud Domain. (instructions) - Mount all drives that contain your media below
/mnt(instructions)
Installation
- Run over CLI:
sudo bash /var/scripts/not-supported.sh - Choose
Jellyfin - Choose to install
Jellyfin - It now reports whether hardware transcoding is available on your server. It is not recommended to continue if it is not available.
- Type in the subdomain that you've created and that points to your Nextcloud domain like
media.yourdomain.comand confirm it - Don't use
UPNPto open the required ports (since you've already done this for your Nextcloud) - Confirm the notification about
fail2banthat will be set up for the Jellyfin login - Wait until everything is installed and it reports that Jellyfin was successfully installed
What to do now?
- Open
https://media.yourdomain.comand directly create your admin user, since Jellyfin is not protected before you did that! - Afterwards, create your libraries by choosing the corresponding folders below
/mnt - If hardware transcoding is available, you should enable it in
Dashboard->Playback->Transcodingby choosingIntel QuickSync (QSV)as hardware acceleration. See the Jellyfin documentation for further information.
notes
- All your media should be accessible from within Jellyfin in subdirectories of
/mnt - All your media is mounted read only so that Jellyfin is not able to write to or change anything on your drives
- Jellyfin runs in the host network so that DLNA and the automatic server discovery of the Jellyfin clients work. This means that Jellyfin is additionally reachable unencrypted inside your local network on
http://internal-server-ip-address:8096. It is recommended to always usehttps://media.yourdomain.cominstead. fail2bangets set up automatically and bans ip addresses that failed to log in 10 times within 30 minutes. You can unban an ip address by runningsudo fail2ban-client set jellyfin unbanip XX.XX.XX.XX. This requires the Jellyfin log level to stay at its defaultInformationsince Jellyfin doesn't log failed logins on higher log levels. So please don't raise the log level in/home/plex/jellyfin/config/logging.jsonif you want to keepfail2banworking.- The Jellyfin user-data is stored in
/home/plex/jellyfinand is covered by the daily backup. It is kept if you uninstall or reinstall Jellyfin so that you don't lose your settings, users and metadata. You can delete it manually by runningsudo rm -r /home/plex/jellyfin. - You can digitize your Blu-rays, DVDs & CDs directly on your server (instructions)
- You should not store your digitized Blu-rays and DVDs on your with Veracrypt encrypted external data SSD/HDD but instead use an extra HDD to store those data! (Since it is overkill to backup this data; in exchange will this extra HDD not get encrypted which makes data recovery a lot easier)
You can find instructions how to do that here: click here. - Every other data than digitized Blu-rays and DVDs should be stored on the with Veracrypt encrypted external data SSD/HDD so that this data gets backed up.
- The whole extra HDD will not be visible and usable in Nextcloud/SMB