This guide outlines steps to access Uptime Kuma through a semi-protected Cloudflare Tunnel.
Semi-protected meaning the status page is public, while all other endpoints are private.
Consider e.g. Fly.io (repo) (howto).
Follow Uptime Kuma's guide for setting up Cloudflare Tunnel as a reverse proxy.
Create two policies
- admin- allowaction
- includerule with- emailsselector, value set to your personal (or other desired) email address
 
- public- bypassaction
- includerule with- everyoneselector
 
Optionally, add an identity provider to Cloudflare, e.g. Google.
Create two applications, optionally using the above identity provider for both
- uptimekuma-adminwith 1 input method- {type: public hostname, subdomain:uptime, domainYOUR_DOMAIN}
 
- {type: 
- uptimekuma-publicwith 4 input methods- {type: public hostname, subdomain:uptime, domain:YOUR_DOMAIN, path:status}
- {type: public hostname, subdomain:uptime, domain:YOUR_DOMAIN, path:assets}
- {type: public hostname, subdomain:uptime, domain:YOUR_DOMAIN, path:api/status-page}
- {type: public hostname, subdomain:uptime, domain:YOUR_DOMAIN, path:icon.svg}
 
- {type: 
Disable Uptime Kuma's native auth at your Uptime Kuma instance via Settings > Security > Disable auth.
Validate the following access scenarios
- Can access dashboards page after authenticating
- Can access status page after authenticating
- Can't access dashboards when unauthenticated
- Can't access dashboards when identified but with unauthorized identity
- Can access status page when unauthenticated