Compare commits
3
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1b6c05d5c0 | ||
|
|
19bc3cf991 | ||
|
|
3f6a6ac8d2 |
@@ -0,0 +1,6 @@
|
||||
# Playwright MCP scratch files (local browser sessions)
|
||||
/.playwright-mcp/
|
||||
|
||||
# Local screenshots from manual testing
|
||||
services-page.png
|
||||
*.screenshot.png
|
||||
+8
-7
@@ -81,13 +81,14 @@
|
||||
done = true;
|
||||
setStatusDot(dot, state);
|
||||
}
|
||||
var img = new Image();
|
||||
img.onload = function () { settle("up"); };
|
||||
img.onerror = function () { settle("up"); };
|
||||
img.onloadstart = function () {};
|
||||
var timeout = setTimeout(function () { settle("down"); }, 6000);
|
||||
img.src = url + "?_probe=" + Date.now();
|
||||
window.addEventListener("beforeunload", function () { clearTimeout(timeout); });
|
||||
var controller = window.AbortController ? new AbortController() : null;
|
||||
var timeout = setTimeout(function () {
|
||||
if (controller) controller.abort();
|
||||
settle("down");
|
||||
}, 6000);
|
||||
fetch(url, { mode: "no-cors", cache: "no-store", redirect: "follow", signal: controller ? controller.signal : undefined })
|
||||
.then(function () { clearTimeout(timeout); settle("up"); })
|
||||
.catch(function () { clearTimeout(timeout); settle("down"); });
|
||||
}
|
||||
|
||||
fetch(src)
|
||||
|
||||
@@ -66,6 +66,7 @@
|
||||
"label": "Dev platform",
|
||||
"icon": "🛠️",
|
||||
"services": [
|
||||
{ "name": "Homepage", "url": "https://homepage.ffaerber.duckdns.org", "desc": "This page — the homelab services index you are looking at.", "icon": "🏠" },
|
||||
{ "name": "Gitea", "url": "https://git.ffaerber.duckdns.org", "desc": "Self-hosted Git and CI for all ffaerber repos.", "icon": "🔧" }
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user