Compare commits
2 commits
59d8ccf0fc
...
1db9fd06e7
| Author | SHA1 | Date | |
|---|---|---|---|
| 1db9fd06e7 | |||
| 0fac49e60a |
9 changed files with 25 additions and 14 deletions
|
|
@ -2470,7 +2470,7 @@ td[data-field="trackingNumber"] {
|
||||||
</svg>
|
</svg>
|
||||||
<div class="header-title-group">
|
<div class="header-title-group">
|
||||||
<span class="app-header__title">ZDDC Archive</span>
|
<span class="app-header__title">ZDDC Archive</span>
|
||||||
<span class="build-timestamp"><span style="color:red;font-weight:bold">v0.0.17-beta · 2026-05-13 18:06:45 · b8c6b98</span></span>
|
<span class="build-timestamp"><span style="color:red;font-weight:bold">v0.0.17-beta · 2026-05-13 18:10:02 · 0fac49e</span></span>
|
||||||
</div>
|
</div>
|
||||||
<button id="addDirectoryBtn" class="btn btn-primary">Add Local Directory</button>
|
<button id="addDirectoryBtn" class="btn btn-primary">Add Local Directory</button>
|
||||||
<button id="refreshHeaderBtn" class="btn btn-secondary hidden" title="Refresh Data">⟳</button>
|
<button id="refreshHeaderBtn" class="btn btn-secondary hidden" title="Refresh Data">⟳</button>
|
||||||
|
|
|
||||||
|
|
@ -1657,7 +1657,7 @@ html, body {
|
||||||
</svg>
|
</svg>
|
||||||
<div class="header-title-group">
|
<div class="header-title-group">
|
||||||
<span class="app-header__title">ZDDC Browse</span>
|
<span class="app-header__title">ZDDC Browse</span>
|
||||||
<span class="build-timestamp"><span style="color:red;font-weight:bold">v0.0.17-beta · 2026-05-13 18:06:46 · b8c6b98</span></span>
|
<span class="build-timestamp"><span style="color:red;font-weight:bold">v0.0.17-beta · 2026-05-13 18:10:02 · 0fac49e</span></span>
|
||||||
</div>
|
</div>
|
||||||
<button id="addDirectoryBtn" class="btn btn-primary">Add Local Directory</button>
|
<button id="addDirectoryBtn" class="btn btn-primary">Add Local Directory</button>
|
||||||
<button id="refreshHeaderBtn" class="btn btn-secondary hidden" title="Refresh listing" aria-label="Refresh listing">⟳</button>
|
<button id="refreshHeaderBtn" class="btn btn-secondary hidden" title="Refresh listing" aria-label="Refresh listing">⟳</button>
|
||||||
|
|
|
||||||
|
|
@ -1681,7 +1681,7 @@ body.help-open .app-header {
|
||||||
</svg>
|
</svg>
|
||||||
<div class="header-title-group">
|
<div class="header-title-group">
|
||||||
<span class="app-header__title">ZDDC Classifier</span>
|
<span class="app-header__title">ZDDC Classifier</span>
|
||||||
<span class="build-timestamp"><span style="color:red;font-weight:bold">v0.0.17-beta · 2026-05-13 18:06:45 · b8c6b98</span></span>
|
<span class="build-timestamp"><span style="color:red;font-weight:bold">v0.0.17-beta · 2026-05-13 18:10:02 · 0fac49e</span></span>
|
||||||
</div>
|
</div>
|
||||||
<button id="addDirectoryBtn" class="btn btn-primary">Add Local Directory</button>
|
<button id="addDirectoryBtn" class="btn btn-primary">Add Local Directory</button>
|
||||||
<button id="refreshHeaderBtn" class="btn btn-secondary hidden" title="Refresh and rescan directory" aria-label="Refresh" style="font-size:1.1rem;">⟳</button>
|
<button id="refreshHeaderBtn" class="btn btn-secondary hidden" title="Refresh and rescan directory" aria-label="Refresh" style="font-size:1.1rem;">⟳</button>
|
||||||
|
|
|
||||||
|
|
@ -1424,7 +1424,7 @@ body {
|
||||||
</svg>
|
</svg>
|
||||||
<div class="header-title-group">
|
<div class="header-title-group">
|
||||||
<span class="app-header__title">ZDDC</span>
|
<span class="app-header__title">ZDDC</span>
|
||||||
<span class="build-timestamp"><span style="color:red;font-weight:bold">v0.0.17-beta · 2026-05-13 18:06:45 · b8c6b98</span></span>
|
<span class="build-timestamp"><span style="color:red;font-weight:bold">v0.0.17-beta · 2026-05-13 18:10:02 · 0fac49e</span></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
|
|
|
||||||
|
|
@ -2523,7 +2523,7 @@ dialog.modal--narrow {
|
||||||
</svg>
|
</svg>
|
||||||
<div class="header-title-group">
|
<div class="header-title-group">
|
||||||
<span class="app-header__title">ZDDC Transmittal</span>
|
<span class="app-header__title">ZDDC Transmittal</span>
|
||||||
<span class="build-timestamp"><span style="color:red;font-weight:bold">v0.0.17-beta · 2026-05-13 18:06:45 · b8c6b98</span></span>
|
<span class="build-timestamp"><span style="color:red;font-weight:bold">v0.0.17-beta · 2026-05-13 18:10:01 · 0fac49e</span></span>
|
||||||
</div>
|
</div>
|
||||||
<span id="no-js-notice" class="text-gray-400 text-xs italic">JavaScript not available</span>
|
<span id="no-js-notice" class="text-gray-400 text-xs italic">JavaScript not available</span>
|
||||||
<!-- Publish split-button (Transmittal-specific primary action;
|
<!-- Publish split-button (Transmittal-specific primary action;
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
# Generated by build.sh — do not edit. One <app>=<build label> per line.
|
# Generated by build.sh — do not edit. One <app>=<build label> per line.
|
||||||
archive=v0.0.17-beta · 2026-05-13 18:06:45 · b8c6b98
|
archive=v0.0.17-beta · 2026-05-13 18:10:02 · 0fac49e
|
||||||
transmittal=v0.0.17-beta · 2026-05-13 18:06:45 · b8c6b98
|
transmittal=v0.0.17-beta · 2026-05-13 18:10:01 · 0fac49e
|
||||||
classifier=v0.0.17-beta · 2026-05-13 18:06:45 · b8c6b98
|
classifier=v0.0.17-beta · 2026-05-13 18:10:02 · 0fac49e
|
||||||
landing=v0.0.17-beta · 2026-05-13 18:06:45 · b8c6b98
|
landing=v0.0.17-beta · 2026-05-13 18:10:02 · 0fac49e
|
||||||
form=v0.0.17-beta · 2026-05-13 18:06:45 · b8c6b98
|
form=v0.0.17-beta · 2026-05-13 18:10:02 · 0fac49e
|
||||||
tables=v0.0.17-beta · 2026-05-13 18:06:46 · b8c6b98
|
tables=v0.0.17-beta · 2026-05-13 18:10:02 · 0fac49e
|
||||||
browse=v0.0.17-beta · 2026-05-13 18:06:46 · b8c6b98
|
browse=v0.0.17-beta · 2026-05-13 18:10:02 · 0fac49e
|
||||||
|
|
|
||||||
|
|
@ -210,10 +210,17 @@ func ToPDF(ctx context.Context, source []byte, m Metadata) ([]byte, error) {
|
||||||
// required because the container drops CAP_SYS_ADMIN; the threat
|
// required because the container drops CAP_SYS_ADMIN; the threat
|
||||||
// model is "malicious markdown drives chromium RCE", contained by
|
// model is "malicious markdown drives chromium RCE", contained by
|
||||||
// --network=none + --cap-drop=ALL + --read-only + tmpfs.
|
// --network=none + --cap-drop=ALL + --read-only + tmpfs.
|
||||||
|
//
|
||||||
|
// --disable-dev-shm-usage: without this, chromium tries to allocate
|
||||||
|
// shared memory under /dev/shm, which our --read-only container
|
||||||
|
// can't write to. The flag tells chromium to fall back to /tmp,
|
||||||
|
// which is a writable tmpfs (sized in runner.go). Standard fix for
|
||||||
|
// chromium-in-container; required by every CI/headless setup.
|
||||||
cmd := []string{
|
cmd := []string{
|
||||||
"--headless",
|
"--headless",
|
||||||
"--disable-gpu",
|
"--disable-gpu",
|
||||||
"--no-sandbox",
|
"--no-sandbox",
|
||||||
|
"--disable-dev-shm-usage",
|
||||||
"--user-data-dir=/tmp/chrome",
|
"--user-data-dir=/tmp/chrome",
|
||||||
"--no-pdf-header-footer",
|
"--no-pdf-header-footer",
|
||||||
"--virtual-time-budget=10000",
|
"--virtual-time-budget=10000",
|
||||||
|
|
|
||||||
|
|
@ -244,7 +244,11 @@ func (cr *containerRunner) Run(ctx context.Context, image string, stdin []byte,
|
||||||
args = append(args,
|
args = append(args,
|
||||||
"--network=none",
|
"--network=none",
|
||||||
"--read-only",
|
"--read-only",
|
||||||
"--tmpfs=/tmp:size=128m,exec",
|
// /tmp must be large enough to host chromium's shared-memory
|
||||||
|
// fallback (--disable-dev-shm-usage redirects /dev/shm writes
|
||||||
|
// here) plus the user-data-dir. 256 MiB is plenty for the
|
||||||
|
// HTML→PDF flow; pandoc itself uses almost none.
|
||||||
|
"--tmpfs=/tmp:size=256m,exec",
|
||||||
"--tmpfs=/run:size=4m",
|
"--tmpfs=/run:size=4m",
|
||||||
fmt.Sprintf("--memory=%dm", memMiB),
|
fmt.Sprintf("--memory=%dm", memMiB),
|
||||||
fmt.Sprintf("--cpus=%s", cpus),
|
fmt.Sprintf("--cpus=%s", cpus),
|
||||||
|
|
|
||||||
|
|
@ -1300,7 +1300,7 @@ body.help-open .app-header {
|
||||||
</svg>
|
</svg>
|
||||||
<div class="header-title-group">
|
<div class="header-title-group">
|
||||||
<span class="app-header__title" id="table-title">ZDDC Table</span>
|
<span class="app-header__title" id="table-title">ZDDC Table</span>
|
||||||
<span class="build-timestamp"><span style="color:red;font-weight:bold">v0.0.17-beta · 2026-05-13 18:06:46 · b8c6b98</span></span>
|
<span class="build-timestamp"><span style="color:red;font-weight:bold">v0.0.17-beta · 2026-05-13 18:10:02 · 0fac49e</span></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue