A Step By Step Guide To
Jellyfin on a remote VPS
with Reverse Proxy and SSL
To use this guide you will need:
You can research cheap VPS solutions and find out about sales at:
www.lowendbox.com
some of the better known cheap VPS providers are:
www.racknerd.com
www.xenspec.com
You can get a free domain at:
www.freenom.com
To connect to and control my VPS I use PuTTY (freeware):
https://www.putty.org/
Once you’ve got your VPS running Ubuntu 20.04 and your domain DNS pointing to your VPS IP address, use PuTTY to login to your VPS as “root” (all of this is covered in the video).
STEP 1 – CREATE A NON-ROOT USER
$ adduser jellyfin
$ usermod -aG sudo jellyfin
STEP 2 – UPDATE YOUR SYSTEM
Close out of PuTTY and log back in as “jellyfin”
$ sudo apt update && sudo apt upgrade
Say YES to the install. If, during the installation process you’re asked about overwriting older config files, select N (default). Once the update is 100% finished:
$ sudo reboot
Close out of PuTTY, give the server a minute or two to reboot, then use PuTTY to log back in as user “jellyfin”.
STEP 3 – HOUSEKEEPING AND FIREWALL SETUP
$ sudo apt-get install -y gnupg2 gnupg gnupg1
$ sudo ufw enable
$ sudo ufw allow 22
$ sudo ufw allow 8096
$ sudo ufw allow 443
$ sudo ufw allow 80
STEP 4 – INSTALL JELLYFIN
Install Jellyfin from the jellyfin.org website (see video)
Cut and paste each command from the jellyfin website into PuTTY.
Test your install by visiting www.yourjellfin.domain:8096
STEP 5 – SECURE YOUR SERVER
$ sudo ufw deny 8096
INSTALL CADDY
$ echo "deb [trusted=yes] https://apt.fury.io/caddy/ /" \
| sudo tee -a /etc/apt/sources.list.d/caddy-fury.list
$ sudo apt update
$ sudo apt install caddy
$ sudo service caddy stop
$ cd /etc/caddy
$ sudo nano Caddyfile
DELETE the default contents of this file and replace with:
https://your.domain.here {
reverse_proxy 127.0.0.1:8096
}
**** syntax is very important in the caddyfile - check and recheck it.
CTRL-O to save the Caddyfile
CTRL-X to exit out of the text editor
$ sudo caddy start
Close PuTTY
Open a browser and access your server with www.yourjellfin.domain (no port).
Walk through the basic setup process without adding any libraries.
STEP 6 - ADD A LIVE TV TUNER TO YOUR SERVER
There's a great world of free, streaming TV out there and Jellyfin is setup to take advantage of a lot of it.
Wait for Jellyfin to update and download the programming information.
Try out your new VPS with Live TV!
I run my Jellyfin server on a low-power VPS. I don't need a lot of transcoding power and only have 2-3 users on at a single time (max). I like not having to maintain the hardware in my home and not having my home internet bandwidth effected by streaming (mine or guests). It's definitely NOT the right solution for everyone but if you want to give it a try, I thought I'd write up a simple, step-by-step guide to getting yourself up and running.
SOME CAVEATS:
- A VPS with a static IP
- A domain name pointed at your VPS (covered in the video)
- PuTTY or similar software to make an SSH connection to your remote server.
You can research cheap VPS solutions and find out about sales at:
www.lowendbox.com
some of the better known cheap VPS providers are:
www.racknerd.com
www.xenspec.com
You can get a free domain at:
www.freenom.com
To connect to and control my VPS I use PuTTY (freeware):
https://www.putty.org/
Once you’ve got your VPS running Ubuntu 20.04 and your domain DNS pointing to your VPS IP address, use PuTTY to login to your VPS as “root” (all of this is covered in the video).
STEP 1 – CREATE A NON-ROOT USER
$ adduser jellyfin
$ usermod -aG sudo jellyfin
STEP 2 – UPDATE YOUR SYSTEM
Close out of PuTTY and log back in as “jellyfin”
$ sudo apt update && sudo apt upgrade
Say YES to the install. If, during the installation process you’re asked about overwriting older config files, select N (default). Once the update is 100% finished:
$ sudo reboot
Close out of PuTTY, give the server a minute or two to reboot, then use PuTTY to log back in as user “jellyfin”.
STEP 3 – HOUSEKEEPING AND FIREWALL SETUP
$ sudo apt-get install -y gnupg2 gnupg gnupg1
$ sudo ufw enable
$ sudo ufw allow 22
$ sudo ufw allow 8096
$ sudo ufw allow 443
$ sudo ufw allow 80
STEP 4 – INSTALL JELLYFIN
Install Jellyfin from the jellyfin.org website (see video)
Cut and paste each command from the jellyfin website into PuTTY.
Test your install by visiting www.yourjellfin.domain:8096
STEP 5 – SECURE YOUR SERVER
$ sudo ufw deny 8096
INSTALL CADDY
$ echo "deb [trusted=yes] https://apt.fury.io/caddy/ /" \
| sudo tee -a /etc/apt/sources.list.d/caddy-fury.list
$ sudo apt update
$ sudo apt install caddy
$ sudo service caddy stop
$ cd /etc/caddy
$ sudo nano Caddyfile
DELETE the default contents of this file and replace with:
https://your.domain.here {
reverse_proxy 127.0.0.1:8096
}
**** syntax is very important in the caddyfile - check and recheck it.
CTRL-O to save the Caddyfile
CTRL-X to exit out of the text editor
$ sudo caddy start
Close PuTTY
Open a browser and access your server with www.yourjellfin.domain (no port).
Walk through the basic setup process without adding any libraries.
STEP 6 - ADD A LIVE TV TUNER TO YOUR SERVER
There's a great world of free, streaming TV out there and Jellyfin is setup to take advantage of a lot of it.
- From the landing page of your server, click on the hamburger menu in the upper left.
- Select DASHBOARD
- Select LIVE TV
- Next to the words TUNER DEVICE click the "+" sign.
- On the next page, there's a popup menu under Tuner Type - select M3U.
- In the FILE OR URL box paste this link (removed an old, not working link. go browse this site for URLS that are currently free, legal and working: http://www.apsattv.com/streams.html
- Click SAVE
- Next to the words TV GUIDE DATA PROVIDERS E click the "+" sign.
- In the popup menu select XLMTV.
- On the next page in the FILE OR URL box paste this link: SEE LINK ABOVE
- Click SAVE
Wait for Jellyfin to update and download the programming information.
Try out your new VPS with Live TV!
I run my Jellyfin server on a low-power VPS. I don't need a lot of transcoding power and only have 2-3 users on at a single time (max). I like not having to maintain the hardware in my home and not having my home internet bandwidth effected by streaming (mine or guests). It's definitely NOT the right solution for everyone but if you want to give it a try, I thought I'd write up a simple, step-by-step guide to getting yourself up and running.
SOME CAVEATS:
- I’m not a tech person, I’m entirely self-taught and it’s entirely likely there are more efficient ways to do everything in this guide. If you’ve got constructive feedback, I’m interested in hearing it
- I’m not using docker for anything – I know everyone loves docker but I’m not super familiar with it and this method works really well so, to me, there’s no need to reinvent the wheel.
- I'm doing all this on a Windows 10 machine, if you're not, you might notice some small differences.