From 17c059e215a713200ca8ff29630b325801581e21 Mon Sep 17 00:00:00 2001
From: marvin
-
+
Why Site Gateway ยท diff --git a/ROADMAP.md b/ROADMAP.md index fabecba..50026ee 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -51,6 +51,8 @@ `v0.16.1` is a fix for a gap in `v0.16.0`'s own System tab: the Environment & Integrations section never actually rendered a `BACKUP_PASSWORD` status row (only the Docker socket status was there), despite the backend already exposing that data via `/api/config`. Fixed. +`v0.16.2` fixes two more issues found live-testing the System tab: the Docker container-selection sub-section was wrapped in its own `.dashboard-panel` styling while already nested inside the Integrations panel's own `.dashboard-panel`, producing a visibly doubled border/corner-radius/padding โ de-chromed it into a plain sub-section instead. Also, the Version section's "Admin port" line showed the container's *internal* listening port, which isn't necessarily the port you actually reach the dashboard on through Docker's port mapping โ replaced with the browser's own current address (`location.origin`), which is always correct regardless of how the port is mapped. + ## Product direction Site Gateway stays simpler than a general-purpose proxy manager: one dashboard, clear health reporting, and guided setup instead of exposing raw server configuration. **Caddy** remains the managed gateway โ Site Gateway stores a small route model and generates/validates Caddy configuration rather than reimplementing certificate and proxy behavior itself. diff --git a/package.json b/package.json index 79482f0..7d23424 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "site-gateway", - "version": "0.16.1", + "version": "0.16.2", "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 71e9e48..89703ed 100644 --- a/src/public/features.js +++ b/src/public/features.js @@ -452,8 +452,8 @@ function renderDockerPanel() { let section = panel.querySelector(".docker-integration-section"); if (!section) { section = document.createElement("div"); - section.className = "dashboard-panel docker-integration-section"; - section.innerHTML = '
Integrations
Docker container selection
'; panel.append(section); section.querySelector("#docker-integration-toggle").addEventListener("change", async event => { const checkbox = event.currentTarget; @@ -580,7 +580,7 @@ async function renderSystemStatus(panel) { envStatus.innerHTML = `${extendedEscape(state.config?.storage?.databasePath ? state.config.storage.databasePath.replace(/\/database\/.*/, "") : "/data")} · Admin port: ${extendedEscape(String(state.config?.adminPort ?? ""))} · Site ports: ${extendedEscape(String(state.config?.minPort ?? ""))}\u2013${extendedEscape(String(state.config?.maxPort ?? ""))}`;
+ if (version) version.innerHTML = `Site Gateway v${extendedEscape(state.config?.version || "unknown")}${extendedEscape(location.origin)}${extendedEscape(state.config?.storage?.databasePath ? state.config.storage.databasePath.replace(/\/database\/.*/, "") : "/data")} · Site ports: ${extendedEscape(String(state.config?.minPort ?? ""))}\u2013${extendedEscape(String(state.config?.maxPort ?? ""))}`;
try {
const [sec, store, policy] = await Promise.all([
api("/api/system/security"),
diff --git a/src/public/index.html b/src/public/index.html
index 70433c1..dbe8b28 100644
--- a/src/public/index.html
+++ b/src/public/index.html
@@ -8,7 +8,7 @@