Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6821a30b65 | |||
| 4e4823b0f7 | |||
| 747c776a84 |
@@ -8,3 +8,10 @@ ACME_EMAIL=you@example.com
|
||||
HTTP_PORT=80
|
||||
HTTPS_PORT=443
|
||||
BACKUP_PASSWORD=
|
||||
|
||||
# Optional resource-panel tuning (see compose.release.yaml). Leave commented
|
||||
# to run unlimited / compare Disk against the whole volume.
|
||||
# DATA_DIR_LIMIT_GB=30
|
||||
# MEM_LIMIT=2g
|
||||
# CPU_LIMIT=2
|
||||
# CPUSET=0,1
|
||||
|
||||
@@ -260,3 +260,9 @@ Roughly in priority order:
|
||||
`v0.16.67` converts the Administration -> Users -> Audit log tab from a card-row list (`.event-row` divs with a checkmark/bang `.activity-mark`) to the same pinned-header table every other log-type page now uses -- Gateway Events, Access Logs, and Backup history (v0.16.63). It was the last page still on the older list pattern, noticed immediately after v0.16.66 added several new distinct audit entries and made the mismatch obvious side by side with Gateway Events. The table has four columns -- Time, User, Result, Action -- reusing the exact `performance-table`/`event-table` CSS and the standard green/red `status-dot` convention in place of the old custom `.activity-mark` dot. No backend or data changes; `/api/audit` already returned everything the columns needed. The now-orphaned `#audit-list` div styling (border, background, max-height, the bespoke activity-mark colors) is removed along with it, since the table's own wrapper classes already provide the equivalent scrolling/sticky-header container.
|
||||
|
||||
`v0.16.68` is a quick follow-on to v0.16.67: the Audit log's new table had no surrounding card, so it sat flush against the tab content instead of appearing inside the same bordered, elevated "tile" every other tab-hosted table uses -- Backup history's `dashboard-panel backup-history-section` wrapper on the Backups tab being the closest match. The Audit log's table markup is now wrapped in an equivalent `dashboard-panel audit-log-section` with an "Audit log" eyebrow above the existing heading, matching Backup history's structure exactly (search/filter row and table unchanged). Purely a wrapper/markup change -- no new CSS, no data or behavior changes.
|
||||
|
||||
`v0.16.69` closes a gap flagged after reviewing the ZimaOS compose file: `compose.yaml`, `compose.release.yaml`, and `compose.zimaos.yaml` all documented `DATA_DIR_LIMIT_GB` and the `mem_limit`/`cpus`/`cpuset` resource-panel options in README/install.html but never actually carried them as commented-optional entries the way the marketing site's install guide showed -- someone copying a real compose file instead of the docs page got none of that guidance. All three now include the same commented-out block (env-var style in the two static compose files, `${VAR}`-substituted and wired through `.env.example` in `compose.release.yaml`). This also folds in the marketing site's `install.html`, which had drifted out of sync with an already-updated draft and was missing the same options on the user's machine -- resynced so the published guide matches what ships in the repo.
|
||||
|
||||
`v0.16.70` fixes the Access Logs table (Administration > Logs, "Access requests"), the last page still on its own pre-unification CSS: `.log-table` pinned the Status and Duration columns with `position:sticky` and drew a divider `box-shadow` on each -- a horizontal-scroll affordance none of the other log-type pages use -- and left the Request column at a fixed width instead of stretching to fill the panel, so wide viewports showed an empty gap past Duration. Both are removed: the two trailing columns are back in normal table flow, and Request now takes `width:auto` to absorb the remaining space, matching how Gateway Events, Backup history, and the Audit log already size their last column. Purely a CSS change -- no markup, data, or behavior changes.
|
||||
|
||||
`v0.16.71` fixes a Gateway Events / Audit log message that slipped past v0.16.66: the Hosted Site file-upload route ("Replace files") still wrote the old, un-prefixed `Files replaced for "<name>".` line instead of the `Hosted site "<name>" ...` convention every other Hosted Site action uses (created, enabled/disabled, deleted, and the field-level update summaries). It lived in its own route separate from the four `PATCH` handlers v0.16.66 touched, so it was missed at the time and only noticed once a user pointed out the log entry gave no way to tell which route type it belonged to. Now reads `Hosted site "<name>" files replaced.`, matching the rest.
|
||||
|
||||
@@ -20,6 +20,17 @@ services:
|
||||
PUID: ${PUID:-1000}
|
||||
PGID: ${PGID:-1000}
|
||||
ACME_EMAIL: ${ACME_EMAIL:-}
|
||||
# Optional: display-only Disk allowance for the resource panel. Set
|
||||
# DATA_DIR_LIMIT_GB in .env to use.
|
||||
DATA_DIR_LIMIT_GB: ${DATA_DIR_LIMIT_GB:-}
|
||||
# Optional but recommended: without a memory/CPU limit, the Dashboard and
|
||||
# Administration > System tab's live resource panel can only show usage
|
||||
# against the whole host. Uncomment and set in .env to give CPU/Memory a
|
||||
# real, container-scoped denominator (MEM_LIMIT, e.g. "2g"; CPU_LIMIT,
|
||||
# e.g. "2"; or CPUSET, e.g. "0,1", to pin cores instead of a count).
|
||||
# mem_limit: ${MEM_LIMIT}
|
||||
# cpus: ${CPU_LIMIT}
|
||||
# cpuset: ${CPUSET}
|
||||
ports:
|
||||
- "${HTTP_PORT:-80}:80"
|
||||
- "${HTTPS_PORT:-443}:443"
|
||||
|
||||
@@ -43,6 +43,20 @@ services:
|
||||
|
||||
# Optional: certificate account email, passed to Caddy's ACME client.
|
||||
ACME_EMAIL: ""
|
||||
|
||||
# Optional: display-only Disk allowance for the resource panel (e.g. a
|
||||
# smaller dedicated share) -- usage/free space still come from the real
|
||||
# volume, this just gives the panel a number to measure against.
|
||||
# DATA_DIR_LIMIT_GB: 30
|
||||
# Optional but recommended: without a memory/CPU limit, the Dashboard and
|
||||
# Administration > System tab's live resource panel can only show usage
|
||||
# against the whole host, which is rarely meaningful on a shared machine.
|
||||
# Setting these gives CPU/Memory a real, container-scoped denominator.
|
||||
# mem_limit: 2g
|
||||
# cpus: "2"
|
||||
# Pinning specific cores is also supported instead of (or alongside) a
|
||||
# count -- the resource panel reads whichever one Docker actually applied.
|
||||
# cpuset: "0,1"
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
|
||||
@@ -30,6 +30,21 @@ services:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
ACME_EMAIL: ""
|
||||
|
||||
# Optional: display-only Disk allowance for the resource panel (e.g. a
|
||||
# smaller dedicated share) -- usage/free space still come from the real
|
||||
# volume, this just gives the panel a number to measure against.
|
||||
# DATA_DIR_LIMIT_GB: 30
|
||||
# Optional but recommended: without a memory/CPU limit, the Dashboard and
|
||||
# Administration > System tab's live resource panel can only show usage
|
||||
# against the whole host, which is rarely meaningful on a shared ZimaOS
|
||||
# box. Setting these gives CPU/Memory a real, container-scoped
|
||||
# denominator instead.
|
||||
# mem_limit: 2g
|
||||
# cpus: "2"
|
||||
# Pinning specific cores is also supported instead of (or alongside) a
|
||||
# count -- the resource panel reads whichever one Docker actually applied.
|
||||
# cpuset: "0,1"
|
||||
ports:
|
||||
- target: 8080
|
||||
published: "8080"
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "site-gateway",
|
||||
"version": "0.16.68",
|
||||
"version": "0.16.71",
|
||||
"private": true,
|
||||
"description": "Site Gateway: simple self-hosted website publishing, reverse proxying, and automatic HTTPS.",
|
||||
"type": "module",
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<title>Site Gateway</title>
|
||||
<meta name="description" content="Host sites, proxy services, and manage HTTPS from one simple dashboard.">
|
||||
<link rel="icon" type="image/png" href="/site-gateway-icon-approved.png">
|
||||
<link rel="stylesheet" href="/styles.css?v=0.16.68">
|
||||
<link rel="stylesheet" href="/styles.css?v=0.16.71">
|
||||
</head>
|
||||
|
||||
<!-- ================================================================
|
||||
@@ -451,6 +451,6 @@
|
||||
<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>
|
||||
<!-- App scripts: core (app.js) then extended views/admin (features.js) -->
|
||||
<script src="/app.js?v=0.16.68" defer></script><script src="/features.js?v=0.16.68" defer></script><script src="/select-enhance.js?v=0.16.68" defer></script>
|
||||
<script src="/app.js?v=0.16.71" defer></script><script src="/features.js?v=0.16.71" defer></script><script src="/select-enhance.js?v=0.16.71" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -487,25 +487,21 @@ dialog{max-height:calc(100vh - 28px);overflow:auto}
|
||||
#app .upstream-diagnostics summary{padding:0;color:var(--blue);font-size:var(--font-size-xs);font-weight:700;border:0}
|
||||
#app .upstream-diagnostics .upstream-detail{margin:6px 0 0}
|
||||
|
||||
/* Log table layout & column widths */
|
||||
/* Log table layout & column widths -- matches the .event-table/.performance-table
|
||||
pattern used by Gateway Events, Backup history, and the Audit log: sticky header
|
||||
only (no pinned/divided trailing columns), and the Request column absorbs the
|
||||
remaining width instead of leaving a gap on wide panels. */
|
||||
.log-table-wrap{max-height:min(52vh,620px);overflow:auto}
|
||||
.log-table-wrap .log-table thead th{position:sticky;top:0;background:var(--panel);z-index:1}
|
||||
.log-section-heading{margin:20px 0 10px}
|
||||
.log-section-heading h2{margin:0;font-size:1.05rem}
|
||||
.log-section-heading p{margin:var(--space-1) 0 0;font-size:.76rem}
|
||||
@media(min-width:761px){#dashboard>aside{position:sticky;top:0;height:100vh;max-height:100vh;overflow-y:auto;align-self:start}}
|
||||
.log-table th:nth-last-child(2),.log-table td:nth-last-child(2),.log-table th:last-child,.log-table td:last-child{position:sticky;background:var(--panel);z-index:2}
|
||||
.log-table th:nth-last-child(2),.log-table td:nth-last-child(2){right:104px;min-width:104px}
|
||||
.log-table th:last-child,.log-table td:last-child{right:0;min-width:104px}
|
||||
.log-table th:nth-last-child(2){box-shadow:-1px 0 0 var(--line)}
|
||||
.log-table td:nth-last-child(2){box-shadow:-1px 0 0 var(--line)}
|
||||
.log-table-wrap{overflow-x:hidden;overflow-y:auto}
|
||||
.log-table{table-layout:fixed}
|
||||
.log-table th:nth-child(1),.log-table td:nth-child(1){width:190px}
|
||||
.log-table th:nth-child(2),.log-table td:nth-child(2){width:220px}
|
||||
.log-table th:nth-child(4),.log-table td:nth-child(4),.log-table th:nth-child(5),.log-table td:nth-child(5){width:104px}
|
||||
.log-table th:nth-child(3),.log-table td:nth-child(3){white-space:normal;overflow-wrap:anywhere}
|
||||
.log-table th:last-child,.log-table td:last-child{box-shadow:-1px 0 0 var(--line)}
|
||||
.log-table th:nth-child(3),.log-table td:nth-child(3){width:auto;white-space:normal;overflow-wrap:anywhere}
|
||||
@media(max-width:900px){.log-table th:nth-child(1),.log-table td:nth-child(1){width:150px}.log-table th:nth-child(2),.log-table td:nth-child(2){width:170px}}
|
||||
.log-table th:nth-child(4),.log-table td:nth-child(4),.log-table th:nth-child(5),.log-table td:nth-child(5){text-align:center}
|
||||
#access-dialog .dialog-heading .close-dialog{display:none}
|
||||
|
||||
+1
-1
@@ -2192,7 +2192,7 @@ app.post("/api/sites/:id/files", upload.single("files"), async (req, res, next)
|
||||
if (!req.file) return res.status(400).json({ error: "Choose a ZIP file or index.html." });
|
||||
await installUpload(site, req.file);
|
||||
await syncCaddy();
|
||||
recordActivity(`Files replaced for “${site.name}”.`);
|
||||
recordActivity(`Hosted site “${site.name}” files replaced.`);
|
||||
res.json(publicSite(site));
|
||||
} catch (error) { next(error); }
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user