I’ve been using Linux for decades, I’ve worked as a software engineer/architect/sre for around a decade, but networking has always been my biggest gap in knowledge.
I have a local server, I have caddy spun up, a glinet router running their version of openwrt, and I have a domain name purchased through porkbun.
I am looking to setup “local.domain.com” to point to my local server, ideally without exposing it publicly, and enable devices on my home network to be able to access it from that url. Id also like to be able to access containers running on that server by something like “searxng.local.domain.com” or “local.domain.com/searxng” aka without using the port suffix. Id also like to enable https.
I have read so many guides that have fragments of what I need, but nothing that ties enough together to get it working. And with all the options around different domain registers, let’s encrypt, reverse proxies, etc, im struggling just a bit.
Are their any guides (prefer text over YouTube, but beggars cant be choosers) that people recommend that encompass the whole process, instead of just pieces? Id like to understand it instead of just fumble through it.


I’ll add on to this fantastic comment, this is exactly what I do. I use the DNS challenge with a domain I purchased to point to a private IP (my caddy server). I probably do it a bit inefficiently, but I literally have a dns entry for every subdomain of mine and have a separate caddy section for each of them for https. I’ll give an example of a simple entry that uses namecheap as the domain/dns provider:
https://subdomain.domain.net/ { tls { dns namecheap { api_key APIKEY user username api_endpoint https://api.namecheap.com/xml.response client_ip 1.1.1.1 } } reverse_proxy 192.168.1.1:1234 } ``` You’ll probably have a different tls section for your specific domain/dns, and of course your reverse proxy will sometimes require additional config items.