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.
# 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?)
}
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.
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.
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
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
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.
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.
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.