main pico / caddy / Caddyfile.pico
Antonio Mika  ·  2026-10-25
 1{
 2	servers {
 3		metrics
 4	}
 5}
 6
 7# Metrics routes need ?x-authorization={$METRICS_TOKEN}. An unset token matches
 8# nothing.
 9(metrics_token) {
10	expression `{http.request.uri.query.x-authorization} == "{$METRICS_TOKEN}" && "{$METRICS_TOKEN}" != ""`
11}
12
13{$APP_DOMAIN} {
14	reverse_proxy https://pico-docs-prod.pgs.sh {
15		header_up Host pico.sh
16	}
17
18	tls {$APP_EMAIL} {
19		dns cloudflare {$CF_API_TOKEN}
20		resolvers 1.1.1.1
21	}
22
23	@caddymetrics {
24		host {$APP_DOMAIN}
25		path /_caddy/metrics
26		import metrics_token
27	}
28
29	metrics @caddymetrics {
30		disable_openmetrics
31	}
32
33	@sshmetrics {
34		host {$APP_DOMAIN}
35		path /_ssh/metrics
36		import metrics_token
37	}
38
39	handle @sshmetrics {
40		rewrite * /metrics
41		reverse_proxy ssh:9222
42	}
43}