Hosting Jellyfin with noip

Hi Balinus,

Struggling trying to get remote access to jellyfin. You post is the closest I’ve found since I’m running the server on Ubuntu 24.10 band installed jellyfin as a docker.

Using your Caddyfile
"my-jellyfin-server.duckdns.org {
reverse_proxy 127.0.0.1:8096

    # Enable the static file server.
    file_server

    # TLS DuckDNS
    tls {
            dns duckdns MY-API"

My draft version with commented questions :

xxxxx.ddns.net {
# LAN IP to dedicated IP of my jellyfin server
reverse_proxy 127.168.1.71:8096

    # Enable the static file server.
    file_server

    # TLS ddns
    tls {
# From my.noip.com, the DDNS key provided a user name and a DDNS key. don't know how to write the line below?
            dns ddns  # "my DDNS key' but they also assigned a username to the DDNS key. 
                             # Use "ddns for my hostname here or my username XXXXXX?) 
    }

}

Glenn

Please keep topics relevant and fill out the help template. I’ve moved your post to a separate thread.

1 Like

Here’s the answer I provided in the other thread:

I would use your noip.com key. I did not found a noip module for Caddy. Are you set on using noip? Works well so far for me with duckdns.org. I’m asking because I haven’t found lots of information on using noip.com with Caddy and I’m no expert sadly.

For duckdns.org, I followed a YT tutorial. It worked the 1st time I tried!

  • Basically, you do the duckdns.org domain subscription
  • You create the bash script to automate the pairing between the domain name and your public IP (script available on duckdns.org website, follow the YT video)
  • Within your router, you forward port 443 to your internal IP that host Caddy (no need for port 80 for my use-case). *I actually changed port 443 to an arbitrary port for security purpose.
  • You install Caddyfile with the duckdns module (again, see YT video)
  • You need to create the caddy.service file (shown in the YT video)
  • You then use my Caddyfile as a template, changing with your information (the reverse_proxy can point to another internal IP or if Jellyfin is on the same machine, you use localhost
  • It then should work!

Note that testing your remote access using a computer inside the LAN was not reliable for me. It’s better to use your phone on cellular data for example.

Sorry for hijacking your thread Balinus and thank you for providing some leads for me. I’m going to duckdns.org instead of noip. I started with noip since it was provided in the DNS configuration of my Archer TP-Link router.

Glenn

1 Like

No problem, the moderator took care of moving the information :slight_smile:

|Description:|Ubuntu 24.10|
|Release:|24.10|
|Codename:|oracular|

glennpm@glenn-ubuntu:~/Downloads$ caddy version
v2.9.1 h1:OEYiZ7DbCzAWVb6TNEkjRcSCRGHVoZsJinoDR/n9oaY=

TP-Link router AC1750 V2

Balinus provided a good suggestion on using duckdns. I listened to and used the test provide here:
https://docs.demonwarriortech.com/Documented%20Tutorials/Installing_Caddy_on_Linux

My Caddyfile looks like this now. I’ve removed my subnet and token code.
"3xxxxxxx.duckdns.org {

reverse_proxy 127.0.0.1:8096

reverse_proxy 192.168.1.1:8096

Enable the static file server.

file_server

# TLS DuckDNS
tls {
        dns duckdns xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
}

}

I’ve also forwarded ports in my router:

For the “Service Provider”, there is no option for “other” nor duckdns.

Searching for a solution I found this thread,
[https://www.reddit.com/r/TPLink_Omada/comments/tl8ugp/comment/mm7rysl/]

With this suggested URL to log into for duckdns.

I have NordVPN and have tried this signing URL with and without the VPN connected.

Spectrum cable account

Router is a TP-Link AC1750 with no pull-down for duckdns.

What IP is used, my router LAN dedicated IP, Lan IP of my router or what please?

http://[xxxx@github]:[xxxxxxxx]@www.duckdns.org/v3/update?hostname=[xxxxxx.duckdns.org]&myip=[192.168.1.1]

I have tried various with no success accessing jellyfin externally, which says n"server offline?"

You do not need to forward port 2019 and 8096, only 443 for jellyfin purpose. I actually choose an arbitrary port instead of 443 (we can look at this later though).

The Dynamic DNS is done with a script run as a cron job (see here: Duck DNS - install), not within the interface you are showing. It is done at the level where Caddy is installed

Thanks Balinus!

I changed the ports and now setting up the cron job which makes good sense. I missed that part.

Glenn

1 Like

Great, if it works, I’ll show you how to change the default port from 443. I find it is more secure. I might be wrong though, no expert. However, users will need to add the port to the URL: https://yourdomain.com:arbitrary_port

It works!

Disconnected my iphone from my LAN wifi and got my media … :grinning_face:

Now about changing the commonly used port 443 to something more secure?

I spoke to soon, not working yet, network not found.

Re-verify all the listed steps, it will work!

Do you know the type of public IP you have? A simple dynamic IP or CGNAT? In this last case, the configuration is more complex and could explain your difficulties.

edit - Also, keep the habit of looking at the logs for error message

systemctl status caddy

And sometimes, instead of “reloading” caddy, restart it.

sudo systemctl restart caddy

Still stuck.

sudo systemctl status caddy

file":“/var/lib/caddy/.config/caddy/autosave.json”,“error”:“open /var/lib/caddy/.config/caddy/autosave.json: permission denied”}
n"}
error":"xxxxxxx.duckdns.org: obtaining certificate: failed storage check: mkdir /var/lib/caddy/.local/share/caddy: permission denied - storage is probably misconfigured"}

I created the missing dirs and autosave.json. They are owned by root.
Should they be owned by caddy?

On my server, /var/lib/caddy is owned by caddy (also group caddy).

Is your server only used for Jellyfin? If so, I would simply re-install and redo the installation now that you have a clearer image of what needs to be done:

  • Re-install Ubuntu
  • Install Jellyfin
  • Install duck dns dynamical script (duckdns.org website)
  • Install caddy with xcaddy using duckdns plug-in (xcaddy website)
  • Create the Caddyfile (template in this thread)
  • Router is already configured to forward port 443, so nothing to do here now.

It might be much quicker than trying to repair an installation where you played with different approach.

1 Like

thanks again,

I also use the server for Stemio and Plex.
I went through the entire setup today again but am done for the day now …

Glenn

1 Like

Just to close this query, I am unable to use Caddy with NordVPN on linux.
I was able to get Plex to work. I installed the Plex media server and desktop on a LAN Windows machine. This setup has no library files presently. For the windows version of Nordvpn, you can allow specific apps through the VPN which I did. I can now access Plex remotely with access to my NTFS partition mounted on Ubuntu.