Jellyfin remote access NGINX and DuckDNS

If you have converted all your dvd's and blue rays to digital files as well as any home videos why not make them viewable when away from home. Even better you can also make them available to your family and friends if desired.

I will be using a mix of paid and freeware software. This is but one way to do this so select the tools you are comfortable with or want to learn about. I am a learner too. You are benefiting from me trying all sorts of combinations, doing a lot of reading, watching multiple YouTube video's and using my own labour and time.

Pre-requisites

This is the software and tools I am demonstrating with.

  • Unraid version 6.12.10
  • DuckDNS (FREE)
  • NGINX proxy manager (FREE)
  • Jellyfin (FREE)

Unraid

I am running network attached storage (NAS) connected to my home router using the Unraid operating system. If you don't know much about computers that's okay. Just think of Unraid as being either Windows 11 or MacOS. It's basically the software and interface that lets you run all the applications on a computer. In this case a NAS rather than say a Windows or Apple computer.

Jellyfin


Jellyfin is a server application that you use to manage all of your video files. Jellyfin helps manage your video files, get artwork, episode information, actor information and other information related to your video files. Jellyfin also happens to be FREE.

Jellyfin also has a user login facility if you are going to share your video library with family or friends.

You may have heard of Plex. Jellyfin is an alternative that although generally speaking Jellyfin is less polished. We all live by our own choices so do your own research and select the software that best meets your requirements.

You may also consider EMBY as an alternative to Jellyfin and Plex.

DuckDNS

I am assuming you are using this guide as a home user rather than a business owner. Why is this important?

Trying to be as simple as possible a DNS is essentially your internet address (known as an IP address) to your home router. However, unlike a physical home that you live in that has a fixed address, your internet address may actually be changing all the time without you knowing.

If in doubt contact your internet service provider (ISP) and ask them if you have a "static IP address". If you happen to be paying for a static IP address you don't require DuckDNS at all.

However, if you aren't paying for a static IP address then DuckDNS will be required. DuckDNS is a method to inform other services what your current internet address is.

Otherwise when your ISP changes your internet address other software reliant on your internet address will stop working as they are pointing to your OLD internet address.

NGINX

NGINX (pronounced "engine-x") is a high-performance web server that also functions as a reverse proxy, load balancer, and HTTP cache. It’s known for its speed, scalability, and low resource consumption.

For our purposes we are concerned primarily about its reverse proxy function.

Reverse Proxy: Forwards client requests to backend servers, useful for security and load distribution.

What is a Reverse Proxy?
A reverse proxy is a server that sits between clients (like browsers) and backend servers. Unlike a typical proxy that hides client identities from servers, a reverse proxy hides backend servers from clients. It intercepts client requests and then forwards them to the appropriate backend server.

Clients: In our example the clients are either:

  • Web browser (used to open Jellyfin); or
  • Jellyfin mobile phone app on iOS or Android.

Backend Servers: In our example the backend server is:

  • Jellyfin

Security: A reverse proxy is a means to limit access to your home network. Without a reverse proxy for each backend server application (you want to make available over the internet) you have to have an open port(s) on your router. More open ports means more vulnerability of your home network.

If you are concerned please do further reading about reverse proxies and internet security.

Domain Name

A domain, or domain name, is the human-readable address of a website. For example, and website name such as www.google.com, www.jellyfin.com, www.apple.com or the like. These so-called domain names are unique and can be purchased from companies such as Namecheap, goDaddy and more.

You can also go the FREE option by obtaining a sub-domain of DuckDNS or another free providers such as FreeDNS.

In this example you will have a registered sub-domain of the domain DuckDNS.

High Level Process

  1. Have a DuckDNS sub-domain
  2. Jellyfin installed on Unraid
  3. NGINX installed on Unraid
  4. Add a Proxy Host in NGINX
  5. Adjust port forwarding on your router

Step 1: Register a DuckDNS sub-domain

1.1 First, open a browser and go to https://duckdns.org. Sign in using one of their supported logins (Twitter, GitHub, Google, etc). You will be taken to the account management page.


1.2 Add a new free sub-domain. You are adding your own sub-domain to the domain duckdns.org.

Note: You can have a maximum of 5 FREE sub-domains.


After adding the domain you will see it appear in your list of sub-domains and there will be a message that the sub-domain was successfully added.


Step 2: Install Jellyfin on Unraid

Full instructions on installing Jellyfin on Unraid are here: Install Jellyfin

Step 3: Install NGINX on Unraid

Full instructions on installing NGINX on Unraid are here: Install NGINX

Step 4: Add a Proxy Host in NGINX

This can be either a one or two step process depending on if you have already created SSL certificates for your DuckDNS sub-domain.

This is a one-step process if you already created an:

  • SSL certificate for your DuckDNS sub-domain; or
  • have already created a wildcard SSL certificate for your DuckDNS sub-domain

In the NGINX Dashboard click on "Hosts"

If you don't already have an SSL certificate it becomes a two-step process:

  1. Create an SSL certificate for your DuckDNS sub-domain. This can be a wildcard certificate if desired.
  2. Enter the Proxy Host details and select the SSL certificate.

Step 4.1 option 1: In the NGINX Dashboard click on "Hosts" ---> "Proxy Hosts"


Step 4.1 option 2: In the NGINX Dashboard click on "Proxy Hosts " button.

Step 4.2: Click on the "Add Proxy Hosts" icon.

Step 4.2: Click on the "Add Proxy Hosts" icon.

Post a Comment

0 Comments