Jellyfin is a FOSS cloud-based media server that you can self-host to manage all your media whether you are home or on the run. The software has native phone apps for all smartphone platforms and desktop apps as well. You can also access your media from a web browser. This guide will show you how to create your server and access it.
We are using cPanel here to setup the subdomain. If you are using a different web control manager, the process will be similar. We just need to setup a subdomain and point the A record to it. Note that we need to get the IP address in the next step.
Create the server on Linode. Use my affiliate link https://tlm.li/linode to get $100 in credit good for 60 days. In my case, I am using Debian. You can use several different distros, but in this case, I will do Debian because it is very stable and will not roll versions to quickly making it a better server build.
Once the linode is setup, you will get the IP address which will need added to the A Record in your sub domain.
Since we are logged in as the root user on the server setup, we do not need to mess with sudo. We will first check for upgrades and install them:
Then we will enable the repos that are provided in Debian:
apt install extrepo
extrepo enable jellyfin
apt install jellyfin
Before I move on, I will create some folders to put media in. This is simply running the mkdir command where I want the folders. In this case I am navigating to the /home directory and adding folders:
Setup the reverse proxy. First create a web server:
apt install apache2
And the Proxy:
Create the site. First, create the new server file:
sudo nano /etc/apache2/sites-available/jellyfin.switchedtolinux.com.conf
Mine is jellyfin.switchedtolinux.com so replace each instance of that with your exact server URL name:
CustomLog /var/log/apache2/jellyfin-access.log combined
ProxyPass "/embywebsocket" "ws://127.0.0.1:8096/embywebsocket"
ProxyPassReverse "/embywebsocket" "ws://127.0.0.1:8096/embywebsocket"
ProxyPass "/" "http://127.0.0.1:8096/"
ProxyPassReverse "/" "http://127.0.0.1:8096/"
Save the file and enable the site:
systemctl restart apache2
Now we want to install the SSL. You can follow the instructions which installs Snap. I only use Snap as an absolute last resort, so I will install everything without snap directly from the Debian repository which still works as of the time of this writing. You need two packages:
apt install cert-bot
apt install python3-certbot-apache
Use the command:
Should detect the plugin and websites and give a list of sites to install the SSL for.
Restart the apache server:
service apache2 restart
You should have an SSL installed on your server now.
Now you need to move files to the server. I am using SCP as an easy command line utility. It works by moving files between the server and the local machine by specifying the location including the server creds and the location of the file.
For a single file, I am moving 1984 (1956).mp4 from the local directory to the server in the movies folder:
scp 1984\ \(1956\).mp4
Note that the \ \ in the command are because I have spaces in the file name.
To add a whole folder, use the -r tag (for recursive):
scp -r Rush/