Hey all. Ive been hosting some software for a while now, some private, some public stuff.
Recently ive gotten myself a domain name, and i’m trying to come up with a good way to have access to both the public AND the private on the same URL. Simpleton that i am i thought about putting the public in an inline frame with a banner with links at the top, but im sure there are better ways.
Any ideas how to do this from this community?
Edit : After all these comments, i stumbled upon Nginx. After some startup problems, i now have Nginx running in a docker on the same remote server. Plenty of questions left but most notably (and hereby clarified) : Is there something like a management page-thingy i can install that lets me manage the content of the various containers? Think sonarr, a torrent client, nginx, etc.
Not sure if I completely understand but I think you want public service 1 accessible on subdomains s1.domain.com and internal service 2 on s2.domain.com?
Just point the A record for s2 to an internal ip address (or a tailscale ip). The only thing dns does is translate a (sub)domain to an ip address. So outside of your network s2.domain.com wouldn’t resolve but inside your network it would.
subdomains would work, though ive never worked on it without a gui. Time to do some learning i guess :)
OK, I didn’t read before answering, probably ignore my answer below but I’ll leave it up incase someone learns something from it.
That’s what I did:
*.selfhosting.domain.tld
that points to my router’s IP address, which then redirects to an nginx+certbot reverse proxy*.local.domain.tld
that points to my local IP with CaddyThe only challenging part was to configure Caddy to issue SSL certificates using the DNS challenge since
*.local.domain.tld
isn’t exposed to the outside world.I prefer to use a local DNS for internal services just so there is less publically available information about my internal network. No need to let everyone know what address space I use or which vlan certain services are on. Also means you don’t have to wait for public DNS servers to update.
Or just use one, and then run a local DNS resolver like pihole or AdGuard home and just make a record for the same host locally. The local DNS resolver will resolve the local request before it reaches the public DNS.