Skip to content

Caddy Proxy Manager

Control every edge. The modern web interface for Caddy Server.
DashboardEvery page on this site works like this one.Nothing you change here is saved

Welcome back, Avery

Needs attention

3 items
  • git.example.com had a burst of 5xx errors280 errors, 6% of its requests, from 6:00 AM to 7:58 AM.
    Warning
  • Certificate media.example.com expires in 6 daysValid until Feb 17, 2026. If Caddy manages it, being this close to expiry means its renewal is failing.
    Warning
  • 312 requests to git.example.com/wp-login.php were stoppedAll by the WAF in the last 24 hours.
    Info

Get started

3 of 5 done
  1. Serve a domain with a valid certificatecompleted
    Done
  2. Add your first proxy hostcompleted
    Done
  3. Turn on analyticscompleted
    Done
  4. Invite a second user
    So you are not the only one who can sign in.
    Users
  5. Set up single sign-on
    Sign in through an OIDC provider or an LDAP directory.
    Sign-in settings
11of 12
Proxy hosts
9
Certificates
3
Access lists
Requests68,620
Server events17
5xx responses282
4xx responses1,566
Bandwidth out2.6 GB
Blocked requests412

All metrics

View analytics

Server log

All metrics
TimeStatusDescription
200
GET media.example.com/library/sections/2/all
48 KB · HTTP/2.0 ·United States203.0.113.24
update
Enabled the WAF on grafana.example.comavery · proxy_host
200
POST git.example.com/avery/infra/git-upload-pack
1.2 MB · HTTP/2.0 ·United Kingdom2001:db8:6e21:9a40:d1c3:57fe:2b08:4419
update
Added upstream http://app-2:8080 to app.example.comavery · proxy_host
502
GET app.example.com/v1/devices/sync
0 · HTTP/1.1 ·10.0.2.51
403
GET status.example.com/.env
512 B · HTTP/1.1 ·Netherlands2001:db8:a0b::62
create
Created L4 proxy host postgres (5432/tcp)avery · l4_proxy_host
304
GET home.example.com/static/frontend_latest/app.js
0 · HTTP/3.0 ·10.0.2.14
renew
Issued client certificate backup-runnersystem · certificate
200
GET grafana.example.com/api/dashboards/uid/caddy
96 KB · HTTP/2.0 ·United States203.0.113.88
delete
Removed old-laptop from the Staging access listavery · access_list
Requests from traffic_events in ClickHouse, changes from the audit log. Only the requests need access logging.
Traffic (24h): 68,620 · Blocked 0.6%

Caddy is a web server that gets TLS right by default. Caddy Proxy Manager is a UI in front of it, so the things Caddy can do - reverse proxying, certificates, a WAF, layer-4 streams - become things you configure and watch rather than things you write into a config file and hope about.

Reverse proxy

Multiple upstreams, twelve load-balancing policies, health checks, upstream timeouts, custom headers, location rules, redirects, rewrites, asset caching, compression, rate limiting, maintenance mode, Force HTTPS and HSTS, upstream DNS pinning, live upstream health, tags, a page per host, and bulk actions across hosts.

L4 TCP/UDP proxy

Layer 4 stream proxying. Port ranges, TLS SNI matching, PROXY protocol, health checks, geo blocking and access-list IP rules below HTTP.

Automatic HTTPS

ACME through Let’s Encrypt or any directory you point it at, DNS-01 across twenty-two providers with challenge delegation, certificates read from files on an agent’s host, plus a built-in CA for mutual TLS.

WAF

Coraza with the OWASP Core Rule Set. Per-host modes, tuning, exclusions scoped to a path or a variable, and an event log that explains why each request was blocked.

Traffic analytics

Why each request ended and how long it took, compared with the period before, filtered on any dimension and saved as shareable views. ClickHouse stores it, and a live view shows the raw access, WAF and Caddy logs. Each host has a page of its own, and the overview opens with what needs attention.

Accounts, audited

Sign in with a password, a passkey, SSO or LDAP/Active Directory. Every configuration change is recorded with the account that made it, and searchable. The whole configuration backs up to one encrypted file.