Hi everybody.
How should I setup reverse proxy for my services? I’ve got things like jellyfin, immich a bitwarden running on my Debian server in docker. So should i install something like nginx for each of these also in docker? Or should I install it from repository and make configs for each of these docker services?
Btw I have no idea how to use something like nginx or caddy but i would still like to learn.
Also can you use nginx for multiple services on the same port like(443)?
Caddy
It’s three lines of configuration
jellyfin.example.com { reverse_proxy http://localhost:8083/ }
Automatic https with let’sencrypt, simplicity of a single binary, downgrade is as simple as replace binary & restart service.
How does my DNS know where to look for this?
-
you rent a domain
-
in the config (provided by the service where you rented the domain) you set it to point to the IP of the device where you run caddy
-
the service tells the relevant global DNS servers your setting
-
your DNS does a DNS lookup and a DNS server returns the IP you configured it to point to
Depending on the DNS you use, you can manually add entries to do 1-3 differently, but that will only work for devices that use your DNS and is hard.
Is this a local address or a public IP address?
I just want the resolving internal to my network but I never got it working right.
-
This may be a controversial approach, but I recently had to set up reverse proxy along with DNS configuration and certificate handling. I pair programmed with an LLM.
My experience was this… I described what I wanted to set up, my objectives (like containerisation, zero touch deployment, idempotence, etc) and it gave me a starting point. It threw a few bad ideas in but I also asked it to help me stress test against the objectives. I think it’s all just about working now. I learned a lot about shell, docker, nginx, terraform, VM metadata, data persistence, pulling it all in from a git repo, bootstrapping nginx with self-signed certificates, auto renewal, vscode devcontainers and more. Honestly I’m worried about what a pro would make of my code, but I made huge steps in a relatively short time. Disclaimer: I am a software engineer who was keen to learn this stuff and get moving quickly.
I would definitely consider this approach if you’re new to the area.
There’s Nginx proxy manager if you want to set it up. But I’d rather go with Tailscale instead.
tailscale is not the same as nginx or any reverse proxy, though. I don’t expose anything publicly, but I still wouldn’t stop using a reverse proxy