Currently my home server runs a few services that have a web UI. I currently access them by typing in the IP address and port number, but it’s now starting to get annoying to remember the ports.
What’s the best way to handle this?
I’ve thought of two solutions:
- I’m running a local DNS server, so I probably would be able to make CNAMEs from something like
adguard.server.local
to the IP, and do a reverse proxy with something like Caddy - Maybe there’s some unified dashboard app that is a reverse proxy with some simple frontend where I can just navigate to
server.local
and click a button to choose which specific service I want to see?
What are your opinions on this?
A reverse proxy will achieve what you’re looking for, yes. I do precisely what you’re describing. I use “local DNS” on my pihole, with CNAMEs for each service pointing to my server IP address. I’m running Caddy on the server, specifically this (because my services are running in Docker containers): https://github.com/lucaslorentz/caddy-docker-proxy
As far as a “dashboard” app, you have options there as well. I’m using Heimdall currently, but Homarr also looks pretty nice.
Is pihole alone enough to do the reverse proxy, or do you need caddy as well? I’m only somewhat familiar with how these things work
PiHole can’t specify specific ports for each cname, which is what you need a reverse proxy for.
Typically, you create all of your cnames in pihole and direct them to your reverse proxy server IP. From your reverse proxy of choice, you specify each url to the specific ip:port of your service.
How can I use my Pi-hole as DNS Server also over VPN? I run Wireguard on Unraid. And while the VPN works, I can’t seem to the DNS over VPN to go my way.
Set your VPN clients to use Pihole as their DNS server.
Tried that, does not work. When I’m physically „in“ my LAN, my domains resolve correctly. Via VPN only IPs work.
I’ll probably do the first thing, since the server is running AdGuard Home already.