I think this guide might be a good starting point for you:
Additional points:
-
Subdomains are much better than proxying to subpaths, because many apps don’t behave well when you try to serve them in a subpath. Read more about that here: The "subfolder problem", OR, "why can't I reverse proxy my app into a subfolder?"
-
You probably don’t need the IP address access. Since you’re using Pihole, you have a DNS server, and you can set up local names for each service, or you can make your real domains resolve to a LAN IP address while inside of your network (while devices outside your network would use the WAN IP by resolving using public DNS servers)
-
Read through the Caddyfile structure docs Caddyfile Concepts — Caddy Documentation Essentially, you want to make a site block for each site you want to proxy to.