Smoke test: Dashboard v4 (v0.16.80)
Build and publish container / publish (push) Successful in 12m34s

This commit is contained in:
2026-09-22 01:53:24 +00:00
parent 34fce5c861
commit 63918ccf0c
4 changed files with 7 additions and 5 deletions
+2
View File
@@ -282,3 +282,5 @@ Roughly in priority order:
`v0.16.78` restores GitHub's half of the dual-publish pipeline without touching Gitea's: the earlier migration commits had rewritten `container.yml`'s registry login, tag, and publish steps to target only `git.us2plus2.com` using Gitea-only secrets, so every push to GitHub since then failed in ~30 seconds at "Sign in to Gitea Container Registry" with "Username and password required" -- GitHub's repo never had `REGISTRY_USERNAME`/`REGISTRY_TOKEN`. The login, tag-generation, and publish steps are now duplicated, one set per registry, each gated with `if: github.server_url == 'https://github.com'` (or `!=`) so the workflow self-selects which registry to sign into and push to depending on which host is actually running it -- Gitea Actions keeps using the existing `REGISTRY_USERNAME`/`REGISTRY_TOKEN` secrets against `git.us2plus2.com` exactly as before, GitHub Actions goes back to `ghcr.io` using `github.actor`/`GITHUB_TOKEN` as it did pre-migration. The shared build/scan steps (smoke-test image, SQLite check, Trivy install/scan) are unconditional and run identically on both. Also reverts the v0.16.75 smoke-test change: the Dashboard heading text is back to "Dashboard" now that the Gitea pipeline is confirmed working end to end. `v0.16.78` restores GitHub's half of the dual-publish pipeline without touching Gitea's: the earlier migration commits had rewritten `container.yml`'s registry login, tag, and publish steps to target only `git.us2plus2.com` using Gitea-only secrets, so every push to GitHub since then failed in ~30 seconds at "Sign in to Gitea Container Registry" with "Username and password required" -- GitHub's repo never had `REGISTRY_USERNAME`/`REGISTRY_TOKEN`. The login, tag-generation, and publish steps are now duplicated, one set per registry, each gated with `if: github.server_url == 'https://github.com'` (or `!=`) so the workflow self-selects which registry to sign into and push to depending on which host is actually running it -- Gitea Actions keeps using the existing `REGISTRY_USERNAME`/`REGISTRY_TOKEN` secrets against `git.us2plus2.com` exactly as before, GitHub Actions goes back to `ghcr.io` using `github.actor`/`GITHUB_TOKEN` as it did pre-migration. The shared build/scan steps (smoke-test image, SQLite check, Trivy install/scan) are unconditional and run identically on both. Also reverts the v0.16.75 smoke-test change: the Dashboard heading text is back to "Dashboard" now that the Gitea pipeline is confirmed working end to end.
`v0.16.79` is a smoke test for direct-push access: with the newly scoped `site-gateway-claude-push` tokens wired into both remotes (Gitea via a repository-scoped Gitea access token, GitHub via a fine-grained PAT limited to this one repo's Contents), this commit is pushed directly from the device shell rather than handed off as a script for manual execution -- the Dashboard heading briefly reads "Dashboard v3" to make the change visually obvious end to end, the same pattern used for the v0.16.75 Gitea-migration smoke test. `v0.16.79` is a smoke test for direct-push access: with the newly scoped `site-gateway-claude-push` tokens wired into both remotes (Gitea via a repository-scoped Gitea access token, GitHub via a fine-grained PAT limited to this one repo's Contents), this commit is pushed directly from the device shell rather than handed off as a script for manual execution -- the Dashboard heading briefly reads "Dashboard v3" to make the change visually obvious end to end, the same pattern used for the v0.16.75 Gitea-migration smoke test.
`v0.16.80` is another smoke test for direct-push access, requested to reconfirm the pipeline after the Gitea CPU/bot-traffic investigation: the Dashboard heading reads "Dashboard v4" instead of "Dashboard v3," pushed directly from the device shell to both remotes as before.
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "site-gateway", "name": "site-gateway",
"version": "0.16.79", "version": "0.16.80",
"private": true, "private": true,
"description": "Site Gateway: simple self-hosted website publishing, reverse proxying, and automatic HTTPS.", "description": "Site Gateway: simple self-hosted website publishing, reverse proxying, and automatic HTTPS.",
"type": "module", "type": "module",
+1 -1
View File
@@ -511,7 +511,7 @@ function render() {
const adminUsersActive = activeAdminTab === "users", adminGroupsActive = activeAdminTab === "groups", adminApiActive = activeAdminTab === "api"; const adminUsersActive = activeAdminTab === "users", adminGroupsActive = activeAdminTab === "groups", adminApiActive = activeAdminTab === "api";
$("#open-create").classList.toggle("hidden", !(management || adminUsersActive || adminGroupsActive || adminApiActive || ["streaming","redirects","access"].includes(state.view)) || !canManage()); $("#check-health").classList.toggle("hidden", state.view !== "certificates" || !canAdmin()); $("#refresh-logs").classList.toggle("hidden", state.view !== "logs"); $("#open-create").classList.toggle("hidden", !(management || adminUsersActive || adminGroupsActive || adminApiActive || ["streaming","redirects","access"].includes(state.view)) || !canManage()); $("#check-health").classList.toggle("hidden", state.view !== "certificates" || !canAdmin()); $("#refresh-logs").classList.toggle("hidden", state.view !== "logs");
if (overview) { if (overview) {
$("#page-title").textContent = "Dashboard v3"; $("#page-title").textContent = "Dashboard v4";
$("#page-subtitle").textContent = "Health, activity, and system status at a glance."; $("#page-subtitle").textContent = "Health, activity, and system status at a glance.";
renderDashboard(); renderDashboard();
return; return;
+3 -3
View File
@@ -11,7 +11,7 @@
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16.png"> <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32.png"> <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"> <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="stylesheet" href="/styles.css?v=0.16.79"> <link rel="stylesheet" href="/styles.css?v=0.16.80">
</head> </head>
<!-- ================================================================ <!-- ================================================================
@@ -103,7 +103,7 @@
<button class="admin-only" data-view="administration">Admin</button><button data-view="account">Account</button><button data-view="documentation">Docs</button> <button class="admin-only" data-view="administration">Admin</button><button data-view="account">Account</button><button data-view="documentation">Docs</button>
</nav> </nav>
<header> <header>
<div><p class="eyebrow">Gateway control</p><h1 id="page-title">Dashboard v3</h1><p id="page-subtitle" class="muted">Health, activity, and system status at a glance.</p></div> <div><p class="eyebrow">Gateway control</p><h1 id="page-title">Dashboard v4</h1><p id="page-subtitle" class="muted">Health, activity, and system status at a glance.</p></div>
<div class="header-actions"><button id="open-create" class="button primary"> New hosted site</button><button id="check-health" class="button primary hidden">Run certificate check</button><button id="refresh-logs" class="button primary hidden">Refresh logs</button><button id="refresh-view" class="icon-button page-refresh" aria-label="Refresh this page" title="Refresh this page"></button></div> <div class="header-actions"><button id="open-create" class="button primary"> New hosted site</button><button id="check-health" class="button primary hidden">Run certificate check</button><button id="refresh-logs" class="button primary hidden">Refresh logs</button><button id="refresh-view" class="icon-button page-refresh" aria-label="Refresh this page" title="Refresh this page"></button></div>
</header> </header>
@@ -454,6 +454,6 @@
<div id="toast" class="toast" role="status"></div> <div id="toast" class="toast" role="status"></div>
<div id="update-banner" class="update-banner hidden" role="status"><span>A new version of Site Gateway is available.</span><div class="update-banner-actions"><button id="update-banner-refresh" class="button primary">Refresh</button><button id="update-banner-dismiss" class="text-button">Dismiss</button></div></div> <div id="update-banner" class="update-banner hidden" role="status"><span>A new version of Site Gateway is available.</span><div class="update-banner-actions"><button id="update-banner-refresh" class="button primary">Refresh</button><button id="update-banner-dismiss" class="text-button">Dismiss</button></div></div>
<!-- App scripts: core (app.js) then extended views/admin (features.js) --> <!-- App scripts: core (app.js) then extended views/admin (features.js) -->
<script src="/app.js?v=0.16.79" defer></script><script src="/features.js?v=0.16.79" defer></script><script src="/select-enhance.js?v=0.16.79" defer></script> <script src="/app.js?v=0.16.80" defer></script><script src="/features.js?v=0.16.80" defer></script><script src="/select-enhance.js?v=0.16.80" defer></script>
</body> </body>
</html> </html>