plotting soundings…
Survey your own coast

Paste the URL of any Uptime Kuma public status page — yours or someone else's. This chart fetches it straight from your browser; nothing is stored or relayed by this site.

Why might this fail?

The instance you're pasting has to answer with an Access-Control-Allow-Origin header on its status-page JSON — that's the browser's own cross-origin rule, not something this site controls. Most Uptime Kuma installs don't send it by default, since a status page is normally viewed at its own address, not embedded from another site. If the chart says "signal lost" for a URL you know is live, this is almost always why.

Fix: front that instance with a small relay that adds the header, then paste this site's URL through the relay's port instead of Kuma's own port. A minimal one:

// cors-relay.mjs — put this in front of your Kuma instance
import { createServer } from "node:http";
const UP = "http://localhost:3001"; // your Kuma
createServer(async (req, res) => {
  const r = await fetch(UP + req.url, { headers: req.headers });
  const h = Object.fromEntries(r.headers);
  h["access-control-allow-origin"] = "*";
  res.writeHead(r.status, h);
  res.end(Buffer.from(await r.arrayBuffer()));
}).listen(8080);

Run it with node cors-relay.mjs, then paste http://your-host:8080/status/<slug> above instead of Kuma's own address.

A terrain skin for Uptime Kuma — generated from the repository's shapes, not designed by hand. Not affiliated with the Uptime Kuma project.
Your software can get this treatment: npx terrain-scout · data-terrain-showcase.vercel.app