You note that you built with xcaddy - what custom modules did you include?
You have templates in your configuration under localhost:8088 which sticks out to me, since you’ve got a reverse_proxy under it. What is the goal here?
The issue you’re having with the / endpoint working but nothing else is due to your site block including a path. Any requests that don’t match http://localhost:8088/ exactly won’t be matched and won’t be proxied.
The Caddy logs should warn you of this on startup (This is from my own instance): 2024/10/27 15:29:20.046 WARN caddyfile Using a path in a site address is deprecated; please use the 'handle' directive instead {"address": "http://localhost:8088/"}
That will never change. It’s part of Caddy’s design. You just need to look at your logs to recognize what Caddy is doing, and notice the warnings telling you not to use deprecated features.
Alex is spot on here, the issue is your / in the site address. This makes it match only requests to / and nothing else. That feature is deprecated, and will be removed soon (made an error).
Also, you can simplify the proxy to only reverse_proxy debian:80, no need for a matcher if you have it handle all routes.
There’s no DEBUG level for access logs, do you can simplify this to simply log.