Support Caddy's on_demand_tls feature's ask directive #2460

Open
opened 2026-02-28 02:55:38 -05:00 by deekerman · 0 comments
Owner

Originally created by @thedaveCA on GitHub (Aug 10, 2023).

⚠️ Please verify that this feature request has NOT been suggested before.

  • I checked and didn't find similar feature request

🏷️ Feature Request Type

API

🔖 Feature description

Support Caddy's ask endpoint to validate whether a requested domain is assigned to a status page or not.

✔️ Solution

A call to /check?domain=mystatuspage.example.com would return a 200 if mystatuspage.example.com is configured as a status page, or a 404 error if it is not known to be a status page.

Alternatives

Writing a small utility that would receive these requests, call Uptime Kuma's IP/Port and make a http://$domain-to-be-tested GET request and proxy the result code.

📝 Additional Context

Caddy is a HTTPS reverse-proxy server with the unique feature of being able to issue HTTPS certificates automatically upon first request using their on_demand_tls function.

If this function is used it would allow creation of a new status page entirely within Uptime Kuma and automatically serve it securely over HTTPS without touching Caddy's configuration file, simplifying management of Uptime Kuma.

However to be used securely, Caddy must be able to determine if a domain name is configured on the backend server, otherwise this feature is subject to abuse.

Caddy documents the on_demand_tls / ask functionality.

The URI is configurable within Caddy, but will always make the request ?domain=, Uptime Kuma could answer this request under /api/caddy-check?domain= or other paths as appropriate.

Originally created by @thedaveCA on GitHub (Aug 10, 2023). ### ⚠️ Please verify that this feature request has NOT been suggested before. - [X] I checked and didn't find similar feature request ### 🏷️ Feature Request Type API ### 🔖 Feature description Support Caddy's `ask` endpoint to validate whether a requested domain is assigned to a status page or not. ### ✔️ Solution A call to `/check?domain=mystatuspage.example.com` would return a `200` if `mystatuspage.example.com` is configured as a status page, or a `404` error if it is not known to be a status page. ### ❓ Alternatives Writing a small utility that would receive these requests, call Uptime Kuma's IP/Port and make a `http://$domain-to-be-tested` GET request and proxy the result code. ### 📝 Additional Context Caddy is a HTTPS reverse-proxy server with the unique feature of being able to issue HTTPS certificates automatically upon first request using their [on_demand_tls](https://caddyserver.com/docs/caddyfile/options#on-demand-tls) function. If this function is used it would allow creation of a new status page entirely within Uptime Kuma and automatically serve it securely over HTTPS without touching Caddy's configuration file, simplifying management of Uptime Kuma. However to be used securely, Caddy must be able to determine if a domain name is configured on the backend server, otherwise this feature is subject to abuse. Caddy documents the [on_demand_tls / ask](https://caddyserver.com/docs/caddyfile/options#on-demand-tls) functionality. The URI is configurable within Caddy, but will always make the request `?domain=`, Uptime Kuma could answer this request under `/api/caddy-check?domain=` or other paths as appropriate.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/uptime-kuma#2460
No description provided.