${extendedEscape(item.name)}
Port ${item.port}
→ ${extendedEscape(item.target)}
${upstream}
diff --git a/package.json b/package.json
index 9bf5680..b6b0b04 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "site-gateway",
- "version": "0.11.36",
+ "version": "0.11.37",
"private": true,
"description": "Site Gateway: simple self-hosted website publishing, reverse proxying, and automatic HTTPS.",
"type": "module",
diff --git a/src/public/features.js b/src/public/features.js
index 535e642..a930062 100644
--- a/src/public/features.js
+++ b/src/public/features.js
@@ -11,7 +11,8 @@ function renderStreams() {
const status = item.status === "running" ? "running" : item.status === "error" ? "error" : "disabled";
const upstream = item.enabled === false || item.upstream?.status === "unmonitored" ? "Monitoring paused" : !item.upstream || item.upstream.status === "pending" ? "Target check pending" : item.upstream.status === "healthy" ? `Target reachable · ${item.upstream.responseMs} ms` : `Target unreachable · ${extendedEscape(item.upstream.error || "check failed")}`;
const protocols = [item.tcp !== false ? "TCP" : null, item.udp ? "UDP" : null].filter(Boolean).map(value => `${value}`).join("");
- return ` Port ${item.port} → ${extendedEscape(item.target)} ${upstream} Port ${item.port} → ${extendedEscape(item.target)} ${upstream} Troubleshooting & support Run checks and download a redacted report when you need to investigate a gateway issue. The report includes version, configuration health, certificate readiness, upstream checks, and recent events. Passwords, private keys, session secrets, cookies, and certificate contents are excluded. These actions can permanently remove Site Gateway data. Review each warning carefully before continuing. Restore defaults Restore default site behavior, backup scheduling, certificate thresholds, and interface preferences. Your users, routes, certificates, logs, and backups remain intact. Permanent action Deletes all Site Gateway data under Advanced proxy settings Custom Locations route selected paths to different upstreams. Request headers are sent upstream; response headers are returned to visitors. Health checks accept individual codes or ranges. Unverified upstream TLS and custom Caddy configuration are expert controls—change one item at a time and rely on validation feedback. Troubleshooting Confirm public DNS points to this server, router forwarding reaches ports 80 and 443, and NGINX Proxy Manager or another service is not still using those ports. Then review Certificates and Logs → Gateway events. Site Gateway cannot request a public certificate while another gateway receives the challenge.${extendedEscape(item.name)}
${extendedEscape(item.name)}
Security, health & updates
Gateway diagnostics
Danger Zone
Reset gateway preferences
Factory reset
/data, including users, routes, certificates, logs, backups, and settings. Docker-mounted files outside /data are not affected. The container restarts at first-install setup.Start simple, expand only when needed
When HTTPS is not detected