mirror of
https://github.com/louislam/uptime-kuma.git
synced 2026-03-02 22:57:00 -05:00
simplify public exposure vs authenticated ressources #1489
Labels
No labels
A:accessibility
A:api
A:cert-expiry
A:core
A:dashboard
A:deployment
A:documentation
A:domain expiry
A:incidents
A:maintenance
A:metrics
A:monitor
A:notifications
A:reports
A:settings
A:status-page
A:ui/ux
A:user-management
Stale
ai-slop
blocked
blocked-upstream
bug
cannot-reproduce
dependencies
discussion
duplicate
feature-request
feature-request
good first issue
hacktoberfest
help
help wanted
house keeping
invalid
invalid-format
invalid-format
question
releaseblocker 🚨
security
spam
type:enhance-existing
type:new
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/uptime-kuma#1489
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @ka2er on GitHub (Oct 17, 2022).
⚠️ Please verify that this feature request has NOT been suggested before.
🏷️ Feature Request Type
Other
🔖 Feature description
When I expose uptime-kuma via cloudflare tunnel access I could put an auth wall in front of uptime kuma.
What I try to achieve is to have admin part (all except status page /status/*) behind cloudflare auth (ok), but put status page behind cloudflare WITHOUT auth (policy = bypass for /status path).
The problem is that /status page rely on ressources that are on root path like :
✔️ Solution
put all resources that could be public exposed without security concerns under a public subfolder like /public in order to easy reverse proxying.
❓ Alternatives
adding all sub ressources to a new cloudflare tunnel application but I'm concern about :
📝 Additional Context
No response
@DusterTheFirst commented on GitHub (Nov 15, 2022):
This would be extremely useful for public-facing status-page. Right now, there is no difference from a status-page and the dashboard authentication wise. You can authenticate on the public facing status pages, and if we set a domain name, you can even access the dashboard from that domain, which would be unwanted for security reasons. I think being able to whitelist known, read-only apis and safe client side assets would be very useful for running uptime-kuma behind a reverse proxy and adding extra authentication or security in front of the admin side while leaving the status-pages public.
@rdbahm commented on GitHub (Jan 6, 2023):
+1 to this issue.
If it's helpful, I was able to find a useful way to secure this somewhat: The dashboard requires Websockets to function, while the status pages do not. You can limit access on status pages by having a separate reverse proxy configuration for them with websockets disabled. I also configured NGINX to prohibit anything but "GET" on the API endpoints for status pages.
@CommanderStorm commented on GitHub (Dec 7, 2023):
Related #2505
@CompeyDev commented on GitHub (Feb 27, 2025):
This would be useful! I spent quite a bit with Traefik trying to reverse proxy such that one domain has the status page, and the other has the dashboard.
However, the status page domain always redirects back to the dashboard because I have to pass
/assets/through to the dashboard's router, which returns a JS module that fetches an/api/route to get what the route it should redirect to. With Nginx, I believe you could rewrite what the API route returns for the status page router to return something favorable, but that is not possible with Traefik. I think this would be possible though, if what this issue demands was implemented.