So I was able to install everything correctly, but I don’t know what I’m supposed to do in order for people that don’t have my same IP to see my files. I’d like to share my Jellyfin server with some friends so they can see movies there. I’ve already open the ports, but they can’t still access them, I’m using elementaryOS Hera which is built on Ubuntu 18.04.4 LTS.
Don’t worry, it’s all free.
You can achieve the same with nginx and getting a certificate from Let’s Encrypt. But you might as well use Caddy instead since it gets the certificate for you.
Some key points of what you will want to do are:
on your router forward port 443 to the IP address of the server / computer you’re running jellyfin from.
get your external IP. You can run “curl ifconfig.co” in your terminal. Go to duckdns and create a URL. Copy and paste your external IP.
The rest will be Caddy / Jellyfin set up. If you’ve got it working you’ll be able to access the jellyfin login screen from the URL you created with duckdns
Okay, so did I do the port forwarding correctly?
I’m trying to create an account on DuckDNS but I don’t seem to find the way to do it, there’s only sign in buttons. :(
Both internal and external should be 443. create another one with both port 80.
In your router’s setup page, what is your external IP address? is it something like 10.xx.xx.xx?
Then run caddy and try to connect example.duckdns.org
Did you setup duckdns through your router? can you go to it’s settings and see it is pointing to the right one?
It hasn’t been workin because I am under a double NAT, so my ports aren’t really open, so I need to contact my ISP and see if they can give me my own IP or if they can open the ports.
They won’t give you your own ipv4 address unless you’re registered as a business. Try asking for ipv6 address.
That makes sense.
If 192.168.0.103 is the IP address of your jellyfin server that should be ok. I think both internal and external port should be 443
For DuckDNS you may need to sign in with another service like github, Google, etc.
Okay, so now I have created a domain with DuckDNS, I have opened that port and I have installed Caddy, what should I do next?
Also, log in to your Jellyfin server. Go to Settings > Admin Dashboard > Networking and tick the checkbox for “Allow remote connections to this server”.
Done.
Did you also untick ‘Enable automatic port mapping’?
Yup.
https://jellyfin.org/docs/general/networking/caddy.html
I think you should be able to run:
caddy reverse-proxy --from example.com --to 127.0.0.1:8096
where example.com is your duckdns URL
Instead of 127.0.0.1:8096 I should input my public IP, right?
No, leave that as 127.0.0.1:8096 as long as you haven’t changed the port from 8096.
(base) user@user-MS-7A15:~$ caddy reverse-proxy --from http://example.duckdns.org --to 127.0.0.1:8096 2021/03/12 22:18:21.149 WARN admin admin endpoint disabled 2021/03/12 22:18:21.149 INFO http server is listening only on the HTTP port, so no automatic HTTPS will be applied to this server {"server_name": "proxy", "http_port": 80} 2021/03/12 22:18:21.149 INFO tls.cache.maintenance started background certificate maintenance {"cache": "0xc00043f0a0"} 2021/03/12 22:18:21.149 INFO tls cleaned up storage units reverse-proxy: loading new config: http app module: start: tcp: listening on :80: listen tcp :80: bind: permission denied
Should I run that as sudo, right?
Edit your post to change your DuckDNS address to http://example.duckdns.org in case someone tries to hack you.
I think you need to run as sudo, but with your URL add an s, so https://example.duckdns.org (but put in your actual duckdns address).