signalk-container 1.16.2 → 1.16.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/doctor.d.ts +17 -0
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +119 -9
- package/dist/doctor.js.map +1 -1
- package/dist/doctorReport.d.ts.map +1 -1
- package/dist/doctorReport.js +24 -0
- package/dist/doctorReport.js.map +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +9 -5
- package/dist/errors.js.map +1 -1
- package/dist/types.d.ts +28 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/public/configpanel-entry.js +8 -7
package/dist/doctor.d.ts
CHANGED
|
@@ -91,6 +91,23 @@ export interface SelfDeploymentProbes {
|
|
|
91
91
|
* `$HOME/.local/share/containers`) — tests can override.
|
|
92
92
|
*/
|
|
93
93
|
resolveContainerStoragePath?: () => string | null;
|
|
94
|
+
/**
|
|
95
|
+
* List the usernames with systemd linger enabled (production: the
|
|
96
|
+
* entries of `/var/lib/systemd/linger`, one file per lingering user).
|
|
97
|
+
* Returns `"absent"` when the directory does not exist — systemd
|
|
98
|
+
* creates it on the first `enable-linger`, so on a bare-metal host
|
|
99
|
+
* absence means "nobody lingers", while inside a container it means
|
|
100
|
+
* the host directory simply isn't bind-mounted in. Returns `null` on
|
|
101
|
+
* any other read error (unreadable, non-Linux).
|
|
102
|
+
*/
|
|
103
|
+
readLingerDir?: () => Promise<string[] | "absent" | null>;
|
|
104
|
+
/**
|
|
105
|
+
* Resolve the username whose linger file to look for. Defaults to
|
|
106
|
+
* `os.userInfo().username`; only consulted on bare-metal (inside a
|
|
107
|
+
* container the in-container username says nothing about the host
|
|
108
|
+
* user owning the runtime).
|
|
109
|
+
*/
|
|
110
|
+
resolveLingerUser?: () => string | null;
|
|
94
111
|
}
|
|
95
112
|
/**
|
|
96
113
|
* One row from `/proc/mounts`. Only the fields the doctor cares about.
|
package/dist/doctor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EAEpB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EAIpB,MAAM,aAAa,CAAC;AAGrB;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,oBAAoB,EAC7B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,EAC7B,MAAM,GAAE,eAA6B,GACpC,OAAO,CAAC,gBAAgB,CAAC,CAoC3B;AAgDD;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC;IAChC;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACrD,uDAAuD;IACvD,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC9C;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IACvD;;;;;;;;;;OAUG;IACH,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjD;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC;IAChD;;;;OAIG;IACH,2BAA2B,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAClD;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC;IAC1D;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,mBAAmB;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB;AA+ND;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,iBAAiB,EAC7B,MAAM,GAAE,eAAe,GAAG,IAAW,EACrC,MAAM,GAAE,oBAAyB,GAChC,OAAO,CAAC,oBAAoB,CAAC,CAqM/B;AAubD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,oBAAoB,EAC5B,MAAM,GAAE,kBAA8B,EACtC,QAAQ,GAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAW,GACnD,kBAAkB,CAyBpB;AA8OD;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAET"}
|
package/dist/doctor.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { readFile } from "node:fs/promises";
|
|
1
|
+
import { readFile, readdir } from "node:fs/promises";
|
|
2
|
+
import { userInfo } from "node:os";
|
|
2
3
|
import { PassThrough } from "node:stream";
|
|
3
4
|
import { findSelfContainerId, qualifyImage } from "./containers.js";
|
|
4
5
|
import { isContainerized, userMappingFlags } from "./runtime.js";
|
|
@@ -138,6 +139,29 @@ const EXPECTED_CGROUP_CONTROLLERS = ["cpu", "cpuset", "memory", "pids"];
|
|
|
138
139
|
* what's reported often enough to be worth proactive remediation.
|
|
139
140
|
*/
|
|
140
141
|
const IDMAP_HAZARD_FSTYPES = new Set(["zfs"]);
|
|
142
|
+
// Podman below this is old enough that its docker-compat socket has known
|
|
143
|
+
// instabilities — notably resetting the connection (write EPIPE) on a large
|
|
144
|
+
// `createContainer` body, which breaks big helper jobs (e.g. chart
|
|
145
|
+
// conversions). Advisory only; we never escalate status for it.
|
|
146
|
+
const PODMAN_MIN_RECOMMENDED = { major: 4, minor: 5 };
|
|
147
|
+
const REMEDIATION_OLD_PODMAN = [
|
|
148
|
+
"Podman is older than 4.5; its docker-compat API can reset the socket on large helper-job requests (e.g. converting big chart bundles fails with 'write EPIPE').",
|
|
149
|
+
"Upgrade Podman to >= 4.5 (ideally 5.x). On Debian/Ubuntu this usually means a backports or OBS/Kubic repo; on Fedora/RHEL a dnf update.",
|
|
150
|
+
];
|
|
151
|
+
// Parse the leading `major.minor` from a version string like "4.3.1" or
|
|
152
|
+
// "5.4.2-dev". Returns null when it doesn't start with two dot-separated ints.
|
|
153
|
+
function parseMajorMinor(version) {
|
|
154
|
+
if (!version)
|
|
155
|
+
return null;
|
|
156
|
+
const m = /^(\d+)\.(\d+)/.exec(version.trim());
|
|
157
|
+
if (!m)
|
|
158
|
+
return null;
|
|
159
|
+
return { major: Number(m[1]), minor: Number(m[2]) };
|
|
160
|
+
}
|
|
161
|
+
// True when `v` is strictly below the `floor` major.minor.
|
|
162
|
+
function isBelow(v, floor) {
|
|
163
|
+
return (v.major < floor.major || (v.major === floor.major && v.minor < floor.minor));
|
|
164
|
+
}
|
|
141
165
|
const REMEDIATION_IDMAP_HAZARD = [
|
|
142
166
|
"Rootless Podman storage appears to live on a filesystem that interacts poorly with --userns=keep-id (Podman has to chown every image file via storage-chown-by-maps).",
|
|
143
167
|
"Primary fix: switch the rootless storage driver to fuse-overlayfs (virtual ownership via xattrs, no chown sweep).",
|
|
@@ -150,6 +174,61 @@ const REMEDIATION_IDMAP_HAZARD = [
|
|
|
150
174
|
" (the fuse-overlayfs binary ships in most distros' fuse-overlayfs package).",
|
|
151
175
|
"Secondary fix: enable signalk-container's 'Disable user-namespace remap' setting to drop --userns=keep-id. Root-by-default images keep correct bind-mount ownership; non-root images give up host-caller ownership.",
|
|
152
176
|
];
|
|
177
|
+
const LINGER_DIR = "/var/lib/systemd/linger";
|
|
178
|
+
const REMEDIATION_NO_LINGER = [
|
|
179
|
+
"systemd linger is not enabled for the user owning the rootless container runtime.",
|
|
180
|
+
"Without linger that user's systemd instance only runs while the user is logged in: after a reboot of a headless host, the runtime socket and any containers with a restart policy stay down until someone logs in (or Signal K itself is started some other way).",
|
|
181
|
+
"Enable it once on the host, as the SK-owning user (requires root):",
|
|
182
|
+
' sudo loginctl enable-linger "$USER"',
|
|
183
|
+
`Verify: ls ${LINGER_DIR} # a file named after the user should exist`,
|
|
184
|
+
];
|
|
185
|
+
async function defaultReadLingerDir() {
|
|
186
|
+
try {
|
|
187
|
+
return await readdir(LINGER_DIR);
|
|
188
|
+
}
|
|
189
|
+
catch (err) {
|
|
190
|
+
return err.code === "ENOENT" ? "absent" : null;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
function defaultResolveLingerUser() {
|
|
194
|
+
try {
|
|
195
|
+
return userInfo().username;
|
|
196
|
+
}
|
|
197
|
+
catch {
|
|
198
|
+
return null;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Probe systemd linger for the rootless-runtime user. Callers gate on
|
|
203
|
+
* "daemon reachable AND rootless" — rootful runtimes are system
|
|
204
|
+
* services and never need linger. Returns `null` when the linger state
|
|
205
|
+
* isn't visible (unreadable dir, or containerized without the host's
|
|
206
|
+
* linger directory bind-mounted in) so the advisory can't false-fire.
|
|
207
|
+
*/
|
|
208
|
+
async function probeLinger(containerized, readLingerDir, resolveLingerUser) {
|
|
209
|
+
const entries = await readLingerDir();
|
|
210
|
+
if (entries === null)
|
|
211
|
+
return null;
|
|
212
|
+
if (entries === "absent" && containerized)
|
|
213
|
+
return null;
|
|
214
|
+
const user = containerized ? null : resolveLingerUser();
|
|
215
|
+
// Bare-metal with an unresolvable username: another user's linger
|
|
216
|
+
// entry says nothing about ours, so the state is unknown, not a
|
|
217
|
+
// finding. The any-entry fallback is reserved for the containerized
|
|
218
|
+
// case where no username can exist.
|
|
219
|
+
if (!containerized && user === null)
|
|
220
|
+
return null;
|
|
221
|
+
const enabled = entries === "absent"
|
|
222
|
+
? false
|
|
223
|
+
: user !== null
|
|
224
|
+
? entries.includes(user)
|
|
225
|
+
: entries.length > 0;
|
|
226
|
+
return {
|
|
227
|
+
user,
|
|
228
|
+
enabled,
|
|
229
|
+
advice: enabled ? [] : [...REMEDIATION_NO_LINGER],
|
|
230
|
+
};
|
|
231
|
+
}
|
|
153
232
|
/**
|
|
154
233
|
* Choose the most-specific mount entry that covers `path`. `/proc/mounts`
|
|
155
234
|
* lists mounts in mount order; the deepest mount whose `mountPoint` is
|
|
@@ -265,6 +344,8 @@ export async function selfDeployment(preference, client = null, probes = {}) {
|
|
|
265
344
|
const probeReadKernelCmdline = probes.readKernelCmdline ?? defaultReadKernelCmdline;
|
|
266
345
|
const probeReadMounts = probes.readMounts ?? defaultReadMounts;
|
|
267
346
|
const probeResolveStoragePath = probes.resolveContainerStoragePath ?? defaultResolveContainerStoragePath;
|
|
347
|
+
const probeReadLingerDir = probes.readLingerDir ?? defaultReadLingerDir;
|
|
348
|
+
const probeResolveLingerUser = probes.resolveLingerUser ?? defaultResolveLingerUser;
|
|
268
349
|
const containerized = probeIsContainerized();
|
|
269
350
|
const env = {
|
|
270
351
|
DOCKER_HOST: probeReadEnv("DOCKER_HOST") ?? null,
|
|
@@ -293,6 +374,7 @@ export async function selfDeployment(preference, client = null, probes = {}) {
|
|
|
293
374
|
selfId: { value: null, source: null },
|
|
294
375
|
cgroupControllers,
|
|
295
376
|
containerStorage: null,
|
|
377
|
+
linger: null,
|
|
296
378
|
status: "no-runtime",
|
|
297
379
|
remediation: containerized
|
|
298
380
|
? REMEDIATION_NO_RUNTIME_CONTAINERIZED
|
|
@@ -320,6 +402,13 @@ export async function selfDeployment(preference, client = null, probes = {}) {
|
|
|
320
402
|
const containerStorage = binaryName === "podman" && info.reachable && info.rootless === true
|
|
321
403
|
? await probeContainerStorage(probeReadMounts, probeResolveStoragePath)
|
|
322
404
|
: null;
|
|
405
|
+
// Linger advisory. Runtime-agnostic but rootless-only: rootless podman
|
|
406
|
+
// AND rootless docker both live in the user's systemd instance, which
|
|
407
|
+
// needs linger to survive headless reboots; rootful daemons are system
|
|
408
|
+
// services. Warning a rootful-Docker operator would be a false positive.
|
|
409
|
+
const linger = info.reachable && info.rootless === true
|
|
410
|
+
? await probeLinger(containerized, probeReadLingerDir, probeResolveLingerUser)
|
|
411
|
+
: null;
|
|
323
412
|
// `binary.path` is null — there is no binary concept over the socket.
|
|
324
413
|
// The field shape is retained (name/version still populated from
|
|
325
414
|
// `version()`) so existing consumers reading the daemon report don't
|
|
@@ -330,6 +419,7 @@ export async function selfDeployment(preference, client = null, probes = {}) {
|
|
|
330
419
|
env,
|
|
331
420
|
cgroupControllers,
|
|
332
421
|
containerStorage,
|
|
422
|
+
linger,
|
|
333
423
|
};
|
|
334
424
|
if (!info.reachable) {
|
|
335
425
|
const status = classifyDaemonFailure(info.errorKind);
|
|
@@ -384,9 +474,18 @@ export async function selfDeployment(preference, client = null, probes = {}) {
|
|
|
384
474
|
},
|
|
385
475
|
selfId,
|
|
386
476
|
status: "cgroup-controllers-incomplete",
|
|
387
|
-
remediation: remediationCgroupControllers(cgroupControllers.missing, cgroupControllers.kernelDisabledMemory),
|
|
477
|
+
remediation: remediationCgroupControllers(cgroupControllers.missing, cgroupControllers.kernelDisabledMemory, selfId.value),
|
|
388
478
|
};
|
|
389
479
|
}
|
|
480
|
+
// Advisory only — an old-but-working Podman still reports `ok`, but we
|
|
481
|
+
// surface the upgrade hint so a future large helper job's EPIPE isn't a
|
|
482
|
+
// mystery. Never escalate status (mirrors the storage-driver advice).
|
|
483
|
+
const podmanVersion = parseMajorMinor(binaryVersion);
|
|
484
|
+
const oldPodmanAdvice = binaryName === "podman" &&
|
|
485
|
+
podmanVersion !== null &&
|
|
486
|
+
isBelow(podmanVersion, PODMAN_MIN_RECOMMENDED)
|
|
487
|
+
? [...REMEDIATION_OLD_PODMAN]
|
|
488
|
+
: [];
|
|
390
489
|
return {
|
|
391
490
|
...baseResult,
|
|
392
491
|
daemon: {
|
|
@@ -397,7 +496,7 @@ export async function selfDeployment(preference, client = null, probes = {}) {
|
|
|
397
496
|
},
|
|
398
497
|
selfId,
|
|
399
498
|
status: "ok",
|
|
400
|
-
remediation:
|
|
499
|
+
remediation: oldPodmanAdvice,
|
|
401
500
|
};
|
|
402
501
|
}
|
|
403
502
|
function classifyRuntimeFromVersion(version) {
|
|
@@ -543,7 +642,15 @@ async function probeCgroupControllers(readControllers, readKernelCmdline) {
|
|
|
543
642
|
* We detect the kernel-level shape from /proc/cmdline and surface the
|
|
544
643
|
* correct fix; otherwise the systemd-level fix is the default.
|
|
545
644
|
*/
|
|
546
|
-
function remediationCgroupControllers(missing, kernelDisabledMemory) {
|
|
645
|
+
function remediationCgroupControllers(missing, kernelDisabledMemory, selfContainerId) {
|
|
646
|
+
// Operators paste these commands verbatim, so substitute the real
|
|
647
|
+
// container reference for the placeholder. A full 64-hex id is
|
|
648
|
+
// shortened to the conventional 12 chars; a name passes through.
|
|
649
|
+
const self = selfContainerId === null
|
|
650
|
+
? "<sk-container>"
|
|
651
|
+
: /^[0-9a-f]{64}$/.test(selfContainerId)
|
|
652
|
+
? selfContainerId.slice(0, 12)
|
|
653
|
+
: selfContainerId;
|
|
547
654
|
if (kernelDisabledMemory) {
|
|
548
655
|
return [
|
|
549
656
|
`Signal K is containerized and the kernel was booted with cgroup_disable=memory (common on Raspberry Pi OS Trixie — the GPU firmware injects this token).`,
|
|
@@ -570,8 +677,8 @@ function remediationCgroupControllers(missing, kernelDisabledMemory) {
|
|
|
570
677
|
" sudo systemctl daemon-reload",
|
|
571
678
|
"",
|
|
572
679
|
"Verify inside the SK container after reboot:",
|
|
573
|
-
|
|
574
|
-
|
|
680
|
+
` podman exec ${self} cat /sys/fs/cgroup/cgroup.controllers`,
|
|
681
|
+
` # or: docker exec ${self} cat /sys/fs/cgroup/cgroup.controllers`,
|
|
575
682
|
" # memory should appear in the output",
|
|
576
683
|
];
|
|
577
684
|
}
|
|
@@ -590,11 +697,14 @@ function remediationCgroupControllers(missing, kernelDisabledMemory) {
|
|
|
590
697
|
"EOF",
|
|
591
698
|
" sudo systemctl daemon-reload",
|
|
592
699
|
"",
|
|
593
|
-
"Log the SK-owning user out and back in (or reboot)
|
|
700
|
+
"Log the SK-owning user out and back in (or reboot).",
|
|
701
|
+
"Then restart the Signal K CONTAINER itself. Controllers are enabled on the container's cgroup when the container starts, so the admin UI's Restart button (which only restarts the server process inside the container) is not enough:",
|
|
702
|
+
" systemctl --user restart signalk-server.service # universal-installer (Quadlet) deployments",
|
|
703
|
+
` # or: podman restart ${self} / docker restart ${self}`,
|
|
594
704
|
"Signal K's next start re-applies the requested resource limits to managed containers automatically — no manual container recreation needed.",
|
|
595
705
|
"Verify inside the SK container (the host view can differ from what the process sees):",
|
|
596
|
-
|
|
597
|
-
|
|
706
|
+
` podman exec ${self} cat /sys/fs/cgroup/cgroup.controllers`,
|
|
707
|
+
` # or: docker exec ${self} cat /sys/fs/cgroup/cgroup.controllers`,
|
|
598
708
|
];
|
|
599
709
|
}
|
|
600
710
|
/**
|
package/dist/doctor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctorReport.d.ts","sourceRoot":"","sources":["../src/doctorReport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAM7E;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,oBAAoB,
|
|
1
|
+
{"version":3,"file":"doctorReport.d.ts","sourceRoot":"","sources":["../src/doctorReport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAM7E;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,oBAAoB,CAyB/B;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CAetE;AAWD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAsElE"}
|
package/dist/doctorReport.js
CHANGED
|
@@ -33,6 +33,20 @@ export function isSelfDeploymentResult(value) {
|
|
|
33
33
|
return false;
|
|
34
34
|
if (cg.available !== null && !Array.isArray(cg.available))
|
|
35
35
|
return false;
|
|
36
|
+
// `linger` may be absent entirely (payload from an older server) or
|
|
37
|
+
// null (probe skipped); both render fine. A present object must have
|
|
38
|
+
// the shape the renderers dereference without optional chaining.
|
|
39
|
+
if ("linger" in value && value.linger != null) {
|
|
40
|
+
if (!isObj(value.linger))
|
|
41
|
+
return false;
|
|
42
|
+
const lg = value.linger;
|
|
43
|
+
if (lg.user !== null && typeof lg.user !== "string")
|
|
44
|
+
return false;
|
|
45
|
+
if (typeof lg.enabled !== "boolean")
|
|
46
|
+
return false;
|
|
47
|
+
if (!Array.isArray(lg.advice))
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
36
50
|
return true;
|
|
37
51
|
}
|
|
38
52
|
/**
|
|
@@ -98,6 +112,10 @@ export function formatDoctorReport(r) {
|
|
|
98
112
|
const hazard = s.idmapHazard ? " (idmap hazard)" : "";
|
|
99
113
|
lines.push(`storage: ${or(s.fstype)} at ${or(s.storagePath)}${hazard}`);
|
|
100
114
|
}
|
|
115
|
+
if (r.linger) {
|
|
116
|
+
const who = r.linger.user ? ` for ${r.linger.user}` : "";
|
|
117
|
+
lines.push(`systemd linger: ${r.linger.enabled ? "enabled" : "NOT enabled"}${who}`);
|
|
118
|
+
}
|
|
101
119
|
const envEntries = Object.entries(r.env).filter(([, v]) => v != null);
|
|
102
120
|
if (envEntries.length > 0) {
|
|
103
121
|
lines.push("");
|
|
@@ -120,6 +138,12 @@ export function formatDoctorReport(r) {
|
|
|
120
138
|
for (const line of r.containerStorage.advice)
|
|
121
139
|
lines.push(line);
|
|
122
140
|
}
|
|
141
|
+
if (r.linger && r.linger.advice.length > 0) {
|
|
142
|
+
lines.push("");
|
|
143
|
+
lines.push("Linger advice:");
|
|
144
|
+
for (const line of r.linger.advice)
|
|
145
|
+
lines.push(line);
|
|
146
|
+
}
|
|
123
147
|
return lines.join("\n");
|
|
124
148
|
}
|
|
125
149
|
//# sourceMappingURL=doctorReport.js.map
|
package/dist/doctorReport.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctorReport.js","sourceRoot":"","sources":["../src/doctorReport.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doctorReport.js","sourceRoot":"","sources":["../src/doctorReport.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,MAAM,GACN,MAAM,GACN,YAAY,GACZ,WAAW,GACX,oBAAoB,GACpB,SAAS,CAAC;AAEd,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;CACb;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,MAAM,GACN,MAAM,GACN,YAAY,GACZ,WAAW,GACX,oBAAoB,GACpB,SAAS,CAAC;AAEd,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;CACb;AAsDD,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,CAqD9D;AAcD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAKlD"}
|
package/dist/errors.js
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
|
-
//
|
|
2
|
-
//
|
|
3
|
-
//
|
|
4
|
-
//
|
|
1
|
+
// Socket-transport failures against the container daemon — distinct from a
|
|
2
|
+
// registry network error. Checked before NET_PATTERNS so a socket failure
|
|
3
|
+
// isn't mislabelled "check registry connectivity". Covers both the socket
|
|
4
|
+
// being absent/refusing (ENOENT/ECONNREFUSED — not bind-mounted) and the
|
|
5
|
+
// daemon resetting the connection mid-request (EPIPE/ECONNRESET — e.g. an old
|
|
6
|
+
// podman rejecting a large create payload).
|
|
5
7
|
const SOCKET_PATTERNS = [
|
|
6
8
|
/ECONNREFUSED/,
|
|
7
9
|
/ENOENT/,
|
|
8
10
|
/EACCES.*\.sock/i,
|
|
9
11
|
/connect ENOENT/i,
|
|
10
12
|
/socket hang up/i,
|
|
13
|
+
/EPIPE/,
|
|
14
|
+
/ECONNRESET/,
|
|
11
15
|
];
|
|
12
16
|
const NET_PATTERNS = [
|
|
13
17
|
/ENOTFOUND/,
|
|
@@ -49,7 +53,7 @@ export function categorizeError(err) {
|
|
|
49
53
|
if (SOCKET_PATTERNS.some((p) => p.test(raw))) {
|
|
50
54
|
return {
|
|
51
55
|
kind: "socket-unreachable",
|
|
52
|
-
userMessage: "Container runtime socket unreachable.
|
|
56
|
+
userMessage: "Container runtime socket unreachable or reset. Check the docker/podman socket is bind-mounted; if it reset mid-request, the runtime may be too old.",
|
|
53
57
|
raw,
|
|
54
58
|
};
|
|
55
59
|
}
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AA4BA,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1098,6 +1098,34 @@ export interface SelfDeploymentResult {
|
|
|
1098
1098
|
/** Operator-facing remediation; empty when `idmapHazard` is false. */
|
|
1099
1099
|
advice: string[];
|
|
1100
1100
|
} | null;
|
|
1101
|
+
/**
|
|
1102
|
+
* systemd linger state for the user owning the rootless runtime.
|
|
1103
|
+
* Probed only when the daemon is reachable AND rootless — rootless
|
|
1104
|
+
* Podman and rootless Docker both live inside the user's systemd
|
|
1105
|
+
* instance, which without linger only runs while that user is logged
|
|
1106
|
+
* in: on a headless host nothing starts the runtime socket (or
|
|
1107
|
+
* containers with a restart policy) at boot. Rootful runtimes are
|
|
1108
|
+
* system services and never need linger. Advisory only — does not
|
|
1109
|
+
* escalate `status`.
|
|
1110
|
+
*
|
|
1111
|
+
* `null` when the probe could not run: rootful runtime, the linger
|
|
1112
|
+
* directory was unreadable, or Signal K is containerized and the
|
|
1113
|
+
* host's `/var/lib/systemd/linger` is not bind-mounted in (the
|
|
1114
|
+
* default today — the probe sees nothing rather than guessing).
|
|
1115
|
+
*/
|
|
1116
|
+
linger: {
|
|
1117
|
+
/**
|
|
1118
|
+
* Host username whose linger file was checked. `null` when SK is
|
|
1119
|
+
* containerized (the in-container username says nothing about the
|
|
1120
|
+
* host user) — `enabled` then falls back to "any linger entry
|
|
1121
|
+
* exists", which is exact on single-user hosts.
|
|
1122
|
+
*/
|
|
1123
|
+
user: string | null;
|
|
1124
|
+
/** See `user` for the matching rule. */
|
|
1125
|
+
enabled: boolean;
|
|
1126
|
+
/** Operator-facing remediation; empty when `enabled` is true. */
|
|
1127
|
+
advice: string[];
|
|
1128
|
+
} | null;
|
|
1101
1129
|
status: SelfDeploymentStatus;
|
|
1102
1130
|
/** Empty when `status === "ok"`. */
|
|
1103
1131
|
remediation: string[];
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,sBAAsB,EACtB,YAAY,EACb,MAAM,sBAAsB,CAAC;AAE9B,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAC9C,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,WAAW,CAAC;AAErD,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;OAOG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAC5B;;;;;;;;;;OAUG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACpC;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC5B;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC/C;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY,CAAC;AAE9E;;;;;;;;;GASG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACtC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC;IAC9C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,IAAI,GAAG,gBAAgB,GAAG,QAAQ,CAAC;IAC7C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;;;OASG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,IAAI,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,KAAK,CAAC;IAC5D;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,WAAW,CAAC,EAAE,mBAAmB,CAAC;CACnC;AAED;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAC3B,KAAK,GACL;IACE;;;;OAIG;IACH,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEN;;;;;;;;;GASG;AACH,MAAM,WAAW,uBAAuB;IACtC,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC;;;;;;;;;;;;;;OAcG;IACH,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;;;;;;;;OAeG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,IAAI,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,KAAK,CAAC;IAC5D;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,SAAS,GACT,SAAS,GACT,WAAW,GACX,QAAQ,GACR,WAAW,CAAC;AAEhB,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,kBAAkB,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,aAAa,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,UAAU;IACzB,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,SAAS,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;CACzC;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,wEAAwE;IACxE,aAAa,EAAE,MAAM,CAAC;IACtB,qFAAqF;IACrF,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;;;OASG;IACH,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;IAC5C,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACrD;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC9D;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD;;;;;;;;;;;;;;;;OAgBG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,IAAI,oBAAoB,GAAG,IAAI,CAAC;IAC1C;;;;;;;;OAQG;IACH,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C;;;;OAIG;IACH,cAAc,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjE;;;;;;;OAOG;IACH,eAAe,CACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAClC;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,uBAAuB,CAAC;IACpD,aAAa,CACX,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,CACN,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB;;;;;;;;OAQG;IACH,uBAAuB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAClD;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,eAAe,CACb,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IACvD;;;;;;;;;;;;;;;;OAgBG;IACH,uBAAuB,CACrB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC1B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAChD;;;;;;;;;;OAUG;IACH,MAAM,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAChE;;;;;;;;;;;;OAYG;IACH,OAAO,CACL,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1C,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACrB;;;;;;;;;;;;;;;;;;OAkBG;IACH,mBAAmB,CAAC,MAAM,EAAE;QAC1B,aAAa,EAAE,MAAM,CAAC;KACvB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAClC,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9B,cAAc,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAC3C,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,eAAe,CACb,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjE,qBAAqB,CACnB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB;;;;OAIG;IACH,QAAQ,EAAE,WAAW,CAAC;IACtB;;;;;OAKG;IACH,OAAO,EAAE,OAAO,oBAAoB,EAAE,gBAAgB,CAAC;IACvD;;;;;;OAMG;IACH,MAAM,EAAE,SAAS,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB;;;;;;;;;;;;OAYG;IACH,eAAe,CACb,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,GAC7B,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAE5D;;;;;;;;;;;OAWG;IACH,cAAc,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEhD;;;;;;;;;;;;;;OAcG;IACH,oBAAoB,CAClB,MAAM,CAAC,EAAE,kBAAkB,EAC3B,MAAM,CAAC,EAAE,oBAAoB,GAC5B,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAChC;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAC5B,IAAI,GACJ,YAAY,GACZ,oBAAoB,GACpB,mBAAmB,GACnB,oBAAoB,GACpB,+BAA+B,CAAC;AAEpC,MAAM,WAAW,oBAAoB;IACnC,yEAAyE;IACzE,eAAe,EAAE,OAAO,CAAC;IACzB,mDAAmD;IACnD,MAAM,EAAE;QACN,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;QACzB,oFAAoF;QACpF,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,8EAA8E;QAC9E,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,CAAC;IACF,+CAA+C;IAC/C,MAAM,EAAE;QACN,SAAS,EAAE,OAAO,CAAC;QACnB,8EAA8E;QAC9E,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;QACzB,gEAAgE;QAChE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,6DAA6D;QAC7D,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,CAAC;IACF,gEAAgE;IAChE,GAAG,EAAE;QACH,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;KAChC,CAAC;IACF;;;;;OAKG;IACH,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,MAAM,EAAE,KAAK,GAAG,UAAU,GAAG,QAAQ,GAAG,IAAI,CAAC;KAC9C,CAAC;IACF;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,iBAAiB,EAAE;QACjB,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,oBAAoB,EAAE,OAAO,CAAC;KAC/B,CAAC;IACF;;;;;;;;;;;;;OAaG;IACH,gBAAgB,EAAE;QAChB,4EAA4E;QAC5E,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,2EAA2E;QAC3E,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,+EAA+E;QAC/E,WAAW,EAAE,OAAO,CAAC;QACrB,sEAAsE;QACtE,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,GAAG,IAAI,CAAC;IACT;;;;;;;;;;;;;;OAcG;IACH,MAAM,EAAE;QACN;;;;;WAKG;QACH,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,wCAAwC;QACxC,OAAO,EAAE,OAAO,CAAC;QACjB,iEAAiE;QACjE,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,GAAG,IAAI,CAAC;IACT,MAAM,EAAE,oBAAoB,CAAC;IAC7B,oCAAoC;IACpC,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,KAAK,CAAC;AAEnD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,kBAAkB,CAAC;IAC3B;4EACwE;IACxE,OAAO,EAAE,WAAW,CAAC;IACrB,8DAA8D;IAC9D,QAAQ,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,aAAa,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC5C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IAC7D;;;;;;;;;;;;;;;;;;OAkBG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,kCAAkC;IAClC,MAAM,EAAE,UAAU,GAAG,mBAAmB,CAAC;CAC1C;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;;OAOG;IACH,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IACxD;;;OAGG;IACH,IAAI,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACpC;;;;;;;OAOG;IACH,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;CACrE;AAOD,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,YAAY,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
var e=globalThis.__SK_REACT__;if(!e)throw Error(`signalk-container: window.__SK_REACT__ is not set. The host signalk-server admin UI must expose React on window for plugin federation. Requires signalk-server 2.27.0 or newer.`);var t=e,{Activity:n,Children:r,Component:i,Fragment:a,Profiler:o,PureComponent:s,StrictMode:c,Suspense:l,cache:u,cacheSignal:d,cloneElement:f,createContext:p,createElement:m,createRef:h,forwardRef:g,isValidElement:_,lazy:v,memo:y,startTransition:b,use:x,useActionState:S,useCallback:C,useContext:w,useDebugValue:T,useDeferredValue:E,useEffect:D,useEffectEvent:
|
|
1
|
+
var e=globalThis.__SK_REACT__;if(!e)throw Error(`signalk-container: window.__SK_REACT__ is not set. The host signalk-server admin UI must expose React on window for plugin federation. Requires signalk-server 2.27.0 or newer.`);var t=e,{Activity:n,Children:r,Component:i,Fragment:a,Profiler:o,PureComponent:s,StrictMode:c,Suspense:l,cache:u,cacheSignal:d,cloneElement:f,createContext:p,createElement:m,createRef:h,forwardRef:g,isValidElement:_,lazy:v,memo:y,startTransition:b,use:x,useActionState:S,useCallback:C,useContext:w,useDebugValue:T,useDeferredValue:E,useEffect:D,useEffectEvent:ee,useId:O,useImperativeHandle:k,useInsertionEffect:te,useLayoutEffect:ne,useMemo:re,useOptimistic:ie,useReducer:ae,useRef:A,useState:j,useSyncExternalStore:oe,useTransition:se,version:ce}=t;async function M(e){return await(async()=>{if(typeof navigator>`u`||!navigator.clipboard)return!1;try{return await navigator.clipboard.writeText(e),!0}catch{return!1}})()||(()=>{if(typeof document>`u`)return!1;let t=document.createElement(`textarea`);t.value=e,t.style.position=`fixed`,t.style.top=`-1000px`,t.style.left=`-1000px`,t.setAttribute(`readonly`,``),document.body.appendChild(t),t.select();let n;try{n=document.execCommand(`copy`)}catch{n=!1}return document.body.removeChild(t),n})()}var N=globalThis.__SK_REACT_JSX_RUNTIME__;if(!N)throw Error(`signalk-container: window.__SK_REACT_JSX_RUNTIME__ is not set by the host.`);var P=N,{Fragment:F,jsx:I,jsxs:L}=P;P.jsxDEV;var R=1e4,z=200,B={overlay:{position:`fixed`,inset:0,background:`rgba(0,0,0,0.5)`,display:`flex`,alignItems:`center`,justifyContent:`center`,zIndex:99999},modal:{background:`#fff`,borderRadius:8,boxShadow:`0 10px 25px rgba(0,0,0,0.2)`,width:`min(90vw, 1100px)`,maxHeight:`85vh`,display:`flex`,flexDirection:`column`,overflow:`hidden`},header:{padding:`12px 16px`,borderBottom:`1px solid #e5e7eb`,display:`flex`,alignItems:`center`,gap:12},title:{fontSize:16,fontWeight:600,color:`#111`,flex:1},statusDot:{width:10,height:10,borderRadius:`50%`,flexShrink:0},statusGreen:{background:`#10b981`},statusAmber:{background:`#f59e0b`},statusRed:{background:`#ef4444`},toolbarBtn:{padding:`5px 10px`,fontSize:12,background:`#fff`,color:`#374151`,border:`1px solid #d1d5db`,borderRadius:4,cursor:`pointer`},toolbarBtnActive:{background:`#3b82f6`,color:`#fff`,borderColor:`#3b82f6`},closeBtn:{padding:`5px 12px`,fontSize:12,background:`#fff`,color:`#374151`,border:`1px solid #d1d5db`,borderRadius:4,cursor:`pointer`},body:{flex:1,overflow:`auto`,background:`#1f2937`,color:`#e5e7eb`,fontFamily:`"SF Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace`,fontSize:12,lineHeight:1.5,padding:`12px 16px`,margin:0,whiteSpace:`pre-wrap`,wordBreak:`break-word`},endBanner:{padding:`8px 16px`,background:`#fef3c7`,color:`#92400e`,fontSize:12,borderTop:`1px solid #fde68a`},metaLine:{fontSize:11,color:`#6b7280`}};function le({name:e,onClose:t}){let[n,r]=j([]),[i,a]=j(`connecting`),[o,s]=j(null),[c,l]=j(!0),[u,d]=j(!1),f=A(null),p=A(null),m=A(null),h=A(!1),g=A(!1),_=A(null),v=A(null),y=A(null),b=C(e=>{r(t=>{let n=t.concat(e);return n.length>R?n.slice(n.length-R):n})},[]);D(()=>{let t=!1;return(async()=>{let n=!1;try{let r=await fetch(`/plugins/signalk-container/api/containers/${encodeURIComponent(e)}/logs?tail=${z}`);if(t)return;if(r.ok){let e=await r.json();b(Array.isArray(e.lines)?e.lines:[]),a(`backfill`)}else r.status===404?(b([`[error] container not found (HTTP 404)`]),s(`container not found`),a(`disconnected`),n=!0):(b([`[error] backfill failed: HTTP ${r.status}`]),a(`backfill`))}catch(e){if(t)return;b([`[error] backfill failed: ${e instanceof Error?e.message:String(e)}`])}if(t||n)return;let r=new EventSource(`/plugins/signalk-container/api/containers/${encodeURIComponent(e)}/logs/stream`);m.current=r,r.addEventListener(`hello`,()=>{t||a(`streaming`)}),r.onmessage=e=>{t||e.data!=null&&b([e.data])},r.addEventListener(`end`,e=>{if(t)return;let n=e.data;s(n||`stream ended`),a(`disconnected`),r.close()}),r.onerror=()=>{t||a(e=>e===`disconnected`?e:`connecting`)}})(),()=>{t=!0,m.current&&=(m.current.close(),null)}},[e,b]),ne(()=>{if(!c||h.current)return;let e=p.current;e&&(g.current=!0,e.scrollIntoView({block:`end`,inline:`nearest`}),requestAnimationFrame(()=>{g.current=!1}))},[n,c]);let x=C(e=>{if(g.current){g.current=!1;return}let t=f.current;t&&(h.current=!(t.scrollHeight-t.scrollTop-t.clientHeight<8))},[]),S=C(()=>{l(e=>{let t=!e;if(t){h.current=!1;let e=p.current;e&&(g.current=!0,e.scrollIntoView({block:`end`,inline:`nearest`}),requestAnimationFrame(()=>{g.current=!1}))}return t})},[]),w=C(async()=>{await M(n.join(`
|
|
2
2
|
`))&&(d(!0),setTimeout(()=>d(!1),1500))},[n]),T=C(()=>{let t=new Blob([n.join(`
|
|
3
3
|
`)+`
|
|
4
|
-
`],{type:`text/plain;charset=utf-8`}),r=URL.createObjectURL(t),i=document.createElement(`a`);i.href=r,i.download=`${e}-${new Date().toISOString().replace(/[:.]/g,`-`)}.log`,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(r)},[n,e]);D(()=>{let e=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t]),D(()=>{y.current=typeof document<`u`?document.activeElement:null;let e=setTimeout(()=>{v.current?.focus()},0);return()=>{clearTimeout(e);let t=y.current;if(t instanceof HTMLElement)try{t.focus()}catch{}}},[]);let E=C(e=>{if(e.key!==`Tab`)return;let t=_.current;if(!t)return;let n=Array.from(t.querySelectorAll(`button:not([disabled]), [tabindex]:not([tabindex="-1"])`)).filter(e=>e.offsetParent!==null);if(n.length===0)return;let r=n[0],i=n[n.length-1],a=document.activeElement;e.shiftKey?(a===r||!t.contains(a))&&(e.preventDefault(),i.focus()):a===i&&(e.preventDefault(),r.focus())},[]),
|
|
5
|
-
`),
|
|
6
|
-
`)}var ue=`/plugins/signalk-container/api/doctor/deployment`,q={overlay:{position:`fixed`,inset:0,background:`rgba(0,0,0,0.5)`,display:`flex`,alignItems:`center`,justifyContent:`center`,zIndex:99999},modal:{background:`#fff`,borderRadius:8,boxShadow:`0 10px 25px rgba(0,0,0,0.2)`,width:`min(90vw, 760px)`,maxHeight:`85vh`,display:`flex`,flexDirection:`column`,overflow:`hidden`},header:{padding:`12px 16px`,borderBottom:`1px solid #e5e7eb`,display:`flex`,alignItems:`center`,gap:12},title:{fontSize:16,fontWeight:600,color:`#111`,flex:1},statusDot:{width:10,height:10,borderRadius:`50%`,flexShrink:0},statusGreen:{background:`#10b981`},statusAmber:{background:`#f59e0b`},statusRed:{background:`#ef4444`},toolbarBtn:{padding:`5px 10px`,fontSize:12,background:`#fff`,color:`#374151`,border:`1px solid #d1d5db`,borderRadius:4,cursor:`pointer`},body:{flex:1,overflow:`auto`,padding:`16px`,color:`#111`,fontSize:13},headline:{fontSize:15,fontWeight:600,marginBottom:12},row:{display:`flex`,gap:12,padding:`4px 0`,borderBottom:`1px solid #f3f4f6`},rowLabel:{width:150,flexShrink:0,color:`#6b7280`},rowValue:{color:`#111`,wordBreak:`break-word`},rowValueMissing:{color:`#b45309`,fontWeight:600},dim:{color:`#9ca3af`},sectionLabel:{fontSize:12,fontWeight:600,color:`#374151`,marginTop:16,marginBottom:6},pre:{background:`#1f2937`,color:`#e5e7eb`,fontFamily:`"SF Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace`,fontSize:12,lineHeight:1.5,padding:`12px`,margin:0,borderRadius:6,whiteSpace:`pre-wrap`,wordBreak:`break-word`},toggle:{marginTop:16,fontSize:12,background:`none`,border:`none`,color:`#3b82f6`,cursor:`pointer`,padding:0},message:{color:`#6b7280`,padding:`8px 0`},error:{color:`#ef4444`,padding:`8px 0`}};function de(e){return e===`ok`?q.statusGreen:e===`self-id-unresolved`||e===`cgroup-controllers-incomplete`?q.statusAmber:q.statusRed}function J({label:e,value:t,missing:n}){return
|
|
7
|
-
`)}):
|
|
8
|
-
`)})]}),R(`button`,{type:`button`,style:q.toggle,onClick:()=>c(e=>!e),children:s?`▾ Hide raw JSON`:`▸ Show raw JSON`}),s&&R(`pre`,{style:{...q.pre,marginTop:8},children:JSON.stringify(t,null,2)})]})]})]})})}var X={root:{fontFamily:`-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif`,color:`#333`,padding:`16px 0`},sectionTitle:{fontSize:13,fontWeight:600,color:`#888`,textTransform:`uppercase`,letterSpacing:`0.05em`,marginBottom:10,marginTop:24},btn:{display:`inline-flex`,alignItems:`center`,gap:8,padding:`8px 16px`,border:`none`,borderRadius:6,fontSize:13,fontWeight:600,cursor:`pointer`},btnPrimary:{background:`#3b82f6`,color:`#fff`},btnDanger:{background:`#ef4444`,color:`#fff`,padding:`6px 12px`,fontSize:12},btnWarning:{background:`#f59e0b`,color:`#fff`,padding:`6px 12px`,fontSize:12},btnSave:{background:`#3b82f6`,color:`#fff`},btnSuccess:{background:`#10b981`,color:`#fff`},btnSecondary:{background:`#fff`,color:`#374151`,border:`1px solid #d1d5db`},btnDisabled:{opacity:.5,cursor:`not-allowed`},status:{marginTop:8,fontSize:12,minHeight:18},runtimeCard:{display:`flex`,alignItems:`center`,gap:14,padding:`14px 18px`,background:`#f8f9fa`,border:`1px solid #e0e0e0`,borderRadius:10,marginBottom:12},runtimeIcon:{width:44,height:44,borderRadius:10,display:`flex`,alignItems:`center`,justifyContent:`center`,fontSize:22,flexShrink:0},runtimeInfo:{flex:1},runtimeName:{fontSize:15,fontWeight:600,color:`#333`},runtimeVersion:{fontSize:12,color:`#888`},runtimeRemediation:{fontSize:12,color:`#666`,fontFamily:`ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace`,whiteSpace:`pre-wrap`,marginTop:6,lineHeight:1.45},containerItem:{display:`flex`,alignItems:`center`,gap:12,padding:`10px 14px`,background:`#f8f9fa`,border:`1px solid #e0e0e0`,borderRadius:10,marginBottom:8},stateIndicator:{width:10,height:10,borderRadius:`50%`,flexShrink:0},containerInfo:{flex:1,minWidth:0},containerName:{fontSize:14,fontWeight:600,color:`#333`},containerMeta:{fontSize:11,color:`#888`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},containerActions:{display:`flex`,gap:6,flexShrink:0},containerCard:{background:`#f8f9fa`,border:`1px solid #e0e0e0`,borderRadius:10,marginBottom:8,overflow:`hidden`},containerItemFlat:{display:`flex`,alignItems:`center`,gap:12,padding:`10px 14px`},limitsRow:{display:`flex`,alignItems:`center`,gap:10,padding:`6px 14px 10px 34px`,fontSize:11,color:`#666`,flexWrap:`wrap`},updatesRow:{display:`flex`,alignItems:`center`,gap:10,padding:`0 14px 10px 34px`,fontSize:11,color:`#666`,flexWrap:`wrap`},limitBadge:{display:`inline-flex`,alignItems:`center`,padding:`2px 8px`,borderRadius:12,background:`#e5e7eb`,color:`#374151`,fontSize:11,fontWeight:500},overrideBadge:{display:`inline-flex`,alignItems:`center`,padding:`2px 8px`,borderRadius:12,background:`#fef3c7`,color:`#92400e`,fontSize:10,fontWeight:600},editLimitsBtn:{marginLeft:`auto`,padding:`3px 10px`,fontSize:11,background:`#fff`,color:`#3b82f6`,border:`1px solid #3b82f6`,borderRadius:6,cursor:`pointer`,fontWeight:500},limitsEditor:{borderTop:`1px solid #e0e0e0`,padding:`14px 14px 14px 34px`,background:`#fff`},limitsEditorGrid:{display:`grid`,gridTemplateColumns:`160px 1fr auto`,gap:`8px 12px`,alignItems:`center`,marginBottom:10},limitsEditorLabel:{fontSize:12,fontWeight:500,color:`#555`},limitsEditorInput:{padding:`5px 8px`,borderRadius:5,border:`1px solid #ccc`,fontSize:12,background:`#fff`,color:`#333`,fontFamily:`inherit`,width:`100%`,boxSizing:`border-box`},limitsEditorInputDisabled:{background:`#f3f4f6`,color:`#9ca3af`,fontStyle:`italic`},limitsEditorUnsetBtn:{width:24,height:24,borderRadius:4,border:`1px solid #d1d5db`,background:`#fff`,color:`#6b7280`,fontSize:14,lineHeight:1,cursor:`pointer`,display:`inline-flex`,alignItems:`center`,justifyContent:`center`},limitsEditorUnsetBtnActive:{background:`#fee2e2`,color:`#991b1b`,border:`1px solid #fca5a5`},limitsEditorAdvancedToggle:{fontSize:11,color:`#3b82f6`,cursor:`pointer`,userSelect:`none`,marginTop:6,marginBottom:10,display:`inline-block`},limitsEditorActions:{display:`flex`,gap:8,justifyContent:`flex-end`,marginTop:10},limitsEditorResult:{marginTop:10,padding:`8px 10px`,borderRadius:6,fontSize:11,lineHeight:1.5},limitsEditorResultLive:{background:`#d1fae5`,color:`#065f46`},limitsEditorResultRecreated:{background:`#fef3c7`,color:`#92400e`},limitsEditorResultError:{background:`#fee2e2`,color:`#991b1b`},limitsEditorWarning:{marginTop:4,fontSize:10,opacity:.85,fontStyle:`italic`},empty:{textAlign:`center`,padding:`30px 16px`,color:`#999`,fontSize:13},fieldRow:{display:`flex`,alignItems:`center`,gap:12,marginBottom:10},label:{fontSize:13,fontWeight:500,color:`#555`,width:160,flexShrink:0},select:{padding:`6px 10px`,borderRadius:6,border:`1px solid #ccc`,fontSize:13,background:`#fff`,color:`#333`},hint:{fontSize:11,color:`#aaa`,marginLeft:8},pruneResult:{fontSize:12,color:`#10b981`,marginTop:6}},pe={running:`#10b981`,stopped:`#f59e0b`,missing:`#94a3b8`,"no-runtime":`#ef4444`},me={running:`Running`,stopped:`Stopped`,missing:`Not created`,"no-runtime":`No runtime`};function Z({label:e,value:t,options:n,onChange:r,hint:i}){return z(`div`,{style:X.fieldRow,children:[R(`span`,{style:X.label,children:e}),R(`select`,{style:X.select,value:t,onChange:e=>r(e.target.value),children:n.map(e=>R(`option`,{value:e.value,children:e.label},e.value))}),i&&R(`span`,{style:X.hint,children:i})]})}function he({label:e,value:t,onChange:n,hint:r}){return z(`div`,{style:X.fieldRow,children:[R(`span`,{style:X.label,children:e}),z(`label`,{style:{display:`inline-flex`,alignItems:`center`,cursor:`pointer`,gap:8},children:[R(`input`,{type:`checkbox`,checked:t,onChange:e=>n(e.target.checked),style:{width:16,height:16,cursor:`pointer`}}),R(`span`,{style:{fontSize:13,color:`#555`},children:t?`Enabled`:`Disabled`})]}),r&&R(`span`,{style:X.hint,children:r})]})}function Q(e){return e&&e.startsWith(`sk-`)?e.slice(3):e}var $=[{key:`cpus`,label:`CPU (cores)`,type:`number`,step:`0.1`,min:`0.1`,placeholder:`e.g. 1.5`,primary:!0},{key:`memory`,label:`Memory`,type:`text`,placeholder:`e.g. 512m, 2g`,primary:!0},{key:`memorySwap`,label:`Memory + swap`,type:`text`,placeholder:`= memory to disable swap`,primary:!0},{key:`pidsLimit`,label:`Max processes`,type:`number`,step:`1`,min:`1`,placeholder:`e.g. 200`,primary:!0},{key:`cpuShares`,label:`CPU shares (weight)`,type:`number`,step:`1`,min:`2`,placeholder:`default 1024`,primary:!1},{key:`cpusetCpus`,label:`Pin to CPUs`,type:`text`,placeholder:`e.g. "0,1" or "1-3"`,primary:!1},{key:`memoryReservation`,label:`Memory reservation`,type:`text`,placeholder:`soft floor, e.g. 256m`,primary:!1},{key:`oomScoreAdj`,label:`OOM score adjust`,type:`number`,step:`1`,min:`-1000`,max:`1000`,placeholder:`-1000 to 1000`,primary:!1}];function ge(e){try{let t=new Date(e).getTime();if(!Number.isFinite(t))return e;let n=Math.max(0,Math.floor((Date.now()-t)/1e3));if(n<5)return`just now`;if(n<60)return`${n}s ago`;let r=Math.floor(n/60);if(r<60)return`${r}m ago`;let i=Math.floor(r/60);return i<24?`${i}h ago`:`${Math.floor(i/24)}d ago`}catch{return e}}function _e(e){if(!e)return`No update data`;let{runningTag:t,currentVersion:n,latestVersion:r,updateAvailable:i,reason:a,fromCache:o}=e;return a===`offline`?o?`\u{1F4E1} Offline — last cached result shows ${i?`update available`:`up to date`}`:`📡 Offline — no cached result yet`:a===`newer-version`?`\u2191 Update available: ${n} \u2192 ${r}`:a===`digest-drift`?`\u21BB Rebuild available for :${t}${r?` (latest stable: ${r})`:``}`:a===`up-to-date`?`\u2705 Up to date${n?` (`+n+`)`:``}`:a===`older-than-pinned`?`\u2139 Pinned to ${n}, latest stable is ${r}`:a===`error`?`\u26A0 Check error: ${e.error||`unknown`}`:`State: ${a||`unknown`}`}function ve(e){if(!e||!e.reason)return null;let{reason:t,runningTag:n,currentVersion:r,latestVersion:i,fromCache:a}=e;return t===`newer-version`?{label:`\u2191 ${i||`update`} available`,bg:`#fef3c7`,fg:`#92400e`,title:`Update available: ${r} \u2192 ${i}`}:t===`digest-drift`?{label:`↻ rebuild available`,bg:`#fef3c7`,fg:`#92400e`,title:`Image rebuild available for :${n}${i?` (latest stable ${i})`:``}`}:t===`offline`?{label:a?`📡 offline (cached)`:`📡 offline`,bg:`#e5e7eb`,fg:`#4b5563`,title:a?`Network unreachable; showing last cached check result`:`Network unreachable; no cached result yet`}:t===`error`?{label:`⚠ check error`,bg:`#fee2e2`,fg:`#991b1b`,title:e.error||`Update check error`}:t===`up-to-date`?{label:`✅ up to date`,bg:`#dcfce7`,fg:`#166534`,title:`Up to date${r?` (`+r+`)`:``}`}:null}function ye(e){let t={};for(let n of $){let r=n.key,i=e[n.key];if(i===null){t[r]=null;continue}if(!(i===void 0||i===``))if(n.type===`number`){let e=Number(i);if(!Number.isFinite(e))continue;t[r]=e}else t[r]=i}return t}function be(e,t){if(t==null||t===``)return null;switch(e){case`cpus`:return`${t} CPU`;case`memory`:return`${t}`;case`memorySwap`:return`swap: ${t}`;case`memoryReservation`:return`reserve: ${t}`;case`pidsLimit`:return`${t} PIDs`;case`cpuShares`:return`shares: ${t}`;case`cpusetCpus`:return`cpus: ${t}`;case`oomScoreAdj`:return`oom: ${t}`;default:return`${e}: ${t}`}}function xe({containerName:e,effective:n,initialOverride:r,onApply:i,onResetToDefault:a,onClose:o}){let s=e=>{let t=e??n,r={};for(let e of $){let n=e.key,i=t?t[n]:void 0;i==null?r[e.key]=``:r[e.key]=String(i)}return r},[c,l]=M(()=>s(n)),[u,d]=M(()=>r?$.some(e=>!e.primary&&r[e.key]!==void 0):!1),[f,p]=M(!1),[m,h]=M(!1),[g,_]=M(null),v=(e,t)=>{l(n=>({...n,[e]:t}))},y=e=>{l(t=>({...t,[e]:t[e]===null?``:null}))},b=()=>{l(s(n)),_(null)},x=async()=>{p(!0),_(null);try{let e=await i(ye(c));_(e),e&&e.effective&&l(s(e.effective))}catch(e){_({error:e instanceof Error?e.message:String(e)})}p(!1)},S=async()=>{if(window.confirm(`Reset ${e} to the plugin's default resource limits? This will remove your override and may cause a brief container recreate (~5s of downtime) if memory limits need to be unset.`)){h(!0),_(null);try{let e=await a();_(e),e&&e.effective&&l(s(e.effective))}catch(e){_({error:e instanceof Error?e.message:String(e)})}h(!1)}},C=n=>{let r=c[n.key],i=r===null;return z(t.Fragment,{children:[R(`label`,{style:X.limitsEditorLabel,htmlFor:`lim-${e}-${n.key}`,children:n.label}),R(`input`,{id:`lim-${e}-${n.key}`,type:i?`text`:n.type,value:i?``:r,step:n.step,min:n.min,max:n.max,placeholder:i?`(unset — remove limit)`:n.placeholder,disabled:i,onChange:e=>v(n.key,e.target.value),style:{...X.limitsEditorInput,...i?X.limitsEditorInputDisabled:{}}}),R(`button`,{type:`button`,onClick:()=>y(n.key),title:i?`Click to set a value again`:`Click to explicitly unset (remove this limit)`,style:{...X.limitsEditorUnsetBtn,...i?X.limitsEditorUnsetBtnActive:{}},children:i?`↺`:`×`})]},n.key)},w=$.filter(e=>e.primary),T=$.filter(e=>!e.primary);return z(`div`,{style:X.limitsEditor,children:[R(`div`,{style:X.limitsEditorGrid,children:w.map(C)}),z(`span`,{onClick:()=>d(!u),style:X.limitsEditorAdvancedToggle,children:[u?`▾`:`▸`,` Advanced (`,T.length,` more fields)`]}),u&&R(`div`,{style:X.limitsEditorGrid,children:T.map(C)}),z(`div`,{style:X.limitsEditorActions,children:[R(`button`,{type:`button`,onClick:o,disabled:f||m,style:{...X.btn,padding:`6px 12px`,fontSize:12,background:`#fff`,color:`#6b7280`,border:`1px solid #d1d5db`,...f||m?X.btnDisabled:{}},children:`Close`}),R(`button`,{type:`button`,onClick:S,disabled:f||m,title:`Clear override and restore plugin-default limits`,style:{...X.btn,padding:`6px 12px`,fontSize:12,background:`#fff`,color:`#d97706`,border:`1px solid #f59e0b`,...f||m?X.btnDisabled:{}},children:m?`Resetting...`:`Reset to default`}),R(`button`,{type:`button`,onClick:b,disabled:f||m,title:`Discard unsaved changes in this form (does not touch the server)`,style:{...X.btn,padding:`6px 12px`,fontSize:12,background:`#fff`,color:`#6b7280`,border:`1px solid #d1d5db`,...f||m?X.btnDisabled:{}},children:`Revert`}),R(`button`,{type:`button`,onClick:x,disabled:f||m,style:{...X.btn,...X.btnPrimary,padding:`6px 14px`,fontSize:12,...f||m?X.btnDisabled:{}},children:f?`Applying...`:`Apply`})]}),g&&R(`div`,{style:{...X.limitsEditorResult,...g.error?X.limitsEditorResultError:g.method===`recreated`?X.limitsEditorResultRecreated:X.limitsEditorResultLive},children:g.error?z(L,{children:[R(`strong`,{children:`Error:`}),` `,g.error]}):z(L,{children:[R(`strong`,{children:g.method===`live`?`Applied live (no restart)`:`Container recreated`}),g.warnings&&g.warnings.length>0&&R(`div`,{style:X.limitsEditorWarning,children:g.warnings.map((e,t)=>z(`div`,{children:[`⚠ `,e]},t))})]})})]})}function Se(e){return e?W(e.status):`No container runtime found`}function Ce({configuration:e,save:t}){let n=e||{},[r,i]=M(n.runtime||`auto`),[a,o]=M(n.pruneSchedule||`weekly`),[s,c]=M(n.updateCheckInterval||`24h`),[l,u]=M(n.backgroundUpdateChecks!==!1),[d,f]=M(n.containerOverrides||{}),[p,m]=M(null),[h,g]=M(null),[_,v]=M([]),[y,b]=M({}),[x,S]=M({}),[w,T]=M({}),[E,O]=M({}),[ee,k]=M(new Set),[te,ne]=M(new Set),[re,A]=M(null),[ie,j]=M(!1),[ae,oe]=M(!0),[N,P]=M(``),[F,I]=M(!1),[L,B]=M(null),V=C(async()=>{try{let[e,t]=await Promise.all([fetch(`/plugins/signalk-container/api/runtime`),fetch(`/plugins/signalk-container/api/containers`)]),n=!1;if(e.ok){let t=await e.json();m(t),n=t!==null}else m(null);if(n)g(null);else try{let e=await fetch(`/plugins/signalk-container/api/doctor/deployment`);e.ok?g(await e.json()):g(null)}catch{g(null)}let r=[];if(t.ok?(r=await t.json(),v(r)):v([]),r.length>0){let e={},t={};await Promise.all(r.map(async n=>{let r=Q(n.name);try{let n=await fetch(`/plugins/signalk-container/api/containers/${encodeURIComponent(r)}/resources`);if(n.ok){let i=await n.json();e[r]=i.effective||{},t[r]=i.override??null}}catch{}})),b(e),S(t)}try{let e=await fetch(`/plugins/signalk-container/api/updates`);if(e.ok){let t=await e.json();if(Array.isArray(t)){let e={},n={};for(let r of t)r&&r.containerName&&(n[r.containerName]=r,r.pluginId&&(e[r.containerName]=r.pluginId));T(e=>{let t={...n};for(let r of Object.keys(n)){let i=n[r],a=e[r];i.reason===`unknown`&&a&&a.reason&&a.reason!==`unknown`&&(t[r]=a)}return t}),O(e)}}}catch{}}catch{m(null),v([])}oe(!1)},[]);D(()=>{V();let e=setInterval(V,5e3);return()=>clearInterval(e)},[V]);let H=e=>{let t=Q(e);ne(e=>{let n=new Set(e);return n.has(t)?n.delete(t):n.add(t),n})},U=async(e,t)=>{let n=await fetch(`/plugins/signalk-container/api/containers/${encodeURIComponent(e)}/resources`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)}),r=await n.json().catch(()=>({}));return n.ok?(r.effective&&b(t=>({...t,[e]:r.effective})),S(t=>({...t,[e]:r.override??null})),f(t=>{let n={...t};return r.override&&Object.keys(r.override).length>0?n[e]=r.override:delete n[e],n}),{method:r.method,warnings:r.warnings,effective:r.effective}):{error:r.error||`${n.status} ${n.statusText}`}},ce=async e=>{let t=E[e];if(!t){P(`${e}: no update service registered. The consumer plugin hasn't migrated to signalk-container's update detection yet.`),I(!0);return}k(t=>{let n=new Set(t);return n.add(e),n}),P(`Checking ${e} for updates...`),I(!1);try{let n=await fetch(`/plugins/signalk-container/api/updates/${encodeURIComponent(t)}/check`,{method:`POST`});if(n.ok){let t=await n.json();T(n=>({...n,[e]:t})),P(_e(t)),I(!1)}else P(`Check failed: ${(await n.json().catch(()=>({error:n.statusText}))).error}`),I(!0)}catch(e){P(`Check error: ${e instanceof Error?e.message:String(e)}`),I(!0)}k(t=>{let n=new Set(t);return n.delete(e),n})},W=async e=>{let t=await fetch(`/plugins/signalk-container/api/containers/${encodeURIComponent(e)}/resources`,{method:`DELETE`}),n=await t.json().catch(()=>({}));return t.ok?(n.effective&&b(t=>({...t,[e]:n.effective})),S(t=>({...t,[e]:null})),f(t=>{let n={...t};return delete n[e],n}),{method:n.method,warnings:n.warnings,effective:n.effective}):{error:n.error||`${t.status} ${t.statusText}`}},G=()=>{let e={};for(let[t,n]of Object.entries(x))n&&Object.keys(n).length>0&&(e[t]=n);t({...n,runtime:r,pruneSchedule:a,maxConcurrentJobs:n.maxConcurrentJobs||2,updateCheckInterval:s,backgroundUpdateChecks:l,containerOverrides:e}),P(`Saved! Plugin will restart.`),I(!1)},K=async e=>{P(`Starting ${e}...`),I(!1);try{let t=await fetch(`/plugins/signalk-container/api/containers/${encodeURIComponent(e)}/start`,{method:`POST`});t.ok?(P(`${e} started.`),V()):(P(`Failed: ${(await t.json().catch(()=>({error:t.statusText}))).error}`),I(!0))}catch(e){P(`Error: ${e instanceof Error?e.message:String(e)}`),I(!0)}},le=async e=>{P(`Stopping ${e}...`),I(!1);try{let t=await fetch(`/plugins/signalk-container/api/containers/${encodeURIComponent(e)}/stop`,{method:`POST`});t.ok?(P(`${e} stopped.`),V()):(P(`Failed: ${(await t.json().catch(()=>({error:t.statusText}))).error}`),I(!0))}catch(e){P(`Error: ${e instanceof Error?e.message:String(e)}`),I(!0)}},ue=async(e,t)=>{if(!(t===`running`&&!window.confirm(`${e} is running. Stop and remove it?`))){P(`Removing ${e}...`),I(!1);try{let t=await fetch(`/plugins/signalk-container/api/containers/${encodeURIComponent(e)}/remove`,{method:`POST`});t.ok?(P(`${e} removed.`),V()):(P(`Failed: ${(await t.json().catch(()=>({error:t.statusText}))).error}`),I(!0))}catch(e){P(`Error: ${e instanceof Error?e.message:String(e)}`),I(!0)}}},q=async()=>{P(`Pruning dangling images...`),I(!1),B(null);try{let e=await fetch(`/plugins/signalk-container/api/prune`,{method:`POST`});if(e.ok){let t=await e.json().catch(()=>({error:e.statusText}));B(t),P(`Pruned ${t.imagesRemoved} image(s), reclaimed ${t.spaceReclaimed}.`)}else P(`Prune failed: ${(await e.json().catch(()=>({error:e.statusText}))).error}`),I(!0)}catch(e){P(`Error: ${e instanceof Error?e.message:String(e)}`),I(!0)}};return z(`div`,{style:X.root,children:[R(`div`,{style:X.sectionTitle,children:`Runtime`}),ae?R(`div`,{style:X.empty,children:`Detecting container runtime...`}):p?z(`div`,{style:X.runtimeCard,children:[R(`div`,{style:{...X.runtimeIcon,background:p.runtime===`podman`?`#892ca0`:`#2496ed`,color:`#fff`},children:p.runtime===`podman`?`P`:`D`}),z(`div`,{style:X.runtimeInfo,children:[z(`div`,{style:X.runtimeName,children:[p.runtime.charAt(0).toUpperCase()+p.runtime.slice(1),p.isPodmanDockerShim?` (via docker shim)`:``]}),z(`div`,{style:X.runtimeVersion,children:[`Version `,p.version]})]}),R(`div`,{style:{...X.stateIndicator,background:`#10b981`},title:`Runtime available`})]}):z(`div`,{style:X.runtimeCard,children:[R(`div`,{style:{...X.runtimeIcon,background:`#fef2f2`,color:`#ef4444`},children:`!`}),z(`div`,{style:X.runtimeInfo,children:[R(`div`,{style:X.runtimeName,children:Se(h)}),h&&h.remediation.length>0&&R(`div`,{style:X.runtimeRemediation,children:h.remediation.join(`
|
|
9
|
-
`)}),R(`button`,{style:{...X.btn,...X.btnSecondary,marginTop:8},onClick:()=>j(!0),children:`Run Doctor`})]})]}),R(`div`,{style:X.sectionTitle,children:`Settings`}),R(Z,{label:`Preferred runtime`,value:r,onChange:i,options:[{value:`auto`,label:`Auto-detect (Podman preferred)`},{value:`podman`,label:`Podman`},{value:`docker`,label:`Docker`}]}),R(Z,{label:`Auto-prune images`,value:a,onChange:o,options:[{value:`off`,label:`Off`},{value:`weekly`,label:`Weekly`},{value:`monthly`,label:`Monthly`}]}),R(Z,{label:`Update check interval`,value:s,onChange:c,options:[{value:`1h`,label:`Every hour`},{value:`6h`,label:`Every 6 hours`},{value:`12h`,label:`Every 12 hours`},{value:`24h`,label:`Daily (recommended)`},{value:`48h`,label:`Every 2 days`},{value:`168h`,label:`Weekly`}],hint:`How often to check for new container images`}),R(he,{label:`Background update checks`,value:l,onChange:u,hint:`Disable on metered connections; manual check still works`}),R(`div`,{style:X.sectionTitle,children:`Managed Containers`}),_.length===0?R(`div`,{style:X.empty,children:ae?`Loading...`:`No managed containers. Other plugins will create them.`}):_.map(e=>{let t=Q(e.name),n=y[t]||{},r=x[t],i=r&&Object.keys(r).length>0,a=te.has(t),o=t.startsWith(`job-`),s=$.map(e=>be(e.key,n[e.key])).filter(Boolean),c=w[t],l=ve(c),u=!!E[t],d=ee.has(t);return z(`div`,{style:X.containerCard,children:[z(`div`,{style:X.containerItemFlat,children:[R(`div`,{style:{...X.stateIndicator,background:pe[e.state]||`#94a3b8`},title:me[e.state]||e.state}),z(`div`,{style:X.containerInfo,children:[R(`div`,{style:X.containerName,children:e.name}),z(`div`,{style:X.containerMeta,children:[e.image,` · `,me[e.state]||e.state,e.ports&&e.ports.length>0&&e.ports[0]?` · ${e.ports.join(`, `)}`:``]})]}),z(`div`,{style:X.containerActions,children:[e.state===`stopped`&&R(`button`,{style:{...X.btn,...X.btnPrimary,padding:`6px 12px`,fontSize:12},onClick:()=>K(e.name),children:`Start`}),e.state===`running`&&R(`button`,{style:{...X.btn,...X.btnWarning},onClick:()=>le(e.name),children:`Stop`}),R(`button`,{style:{...X.btn,background:`#fff`,color:`#374151`,border:`1px solid #d1d5db`},onClick:()=>A(e.name),title:`Stream the container's stdout+stderr log`,children:`Logs`}),R(`button`,{style:{...X.btn,...X.btnDanger},onClick:()=>ue(e.name,e.state),children:`Remove`})]})]}),z(`div`,{style:X.limitsRow,children:[s.length===0?R(`span`,{style:{color:`#9ca3af`,fontStyle:`italic`},children:`No resource limits set`}):s.map((e,t)=>R(`span`,{style:X.limitBadge,children:e},t)),i&&R(`span`,{style:X.overrideBadge,title:`You have a user override configured for this container`,children:`Override active`}),e.state===`running`&&!o&&R(`button`,{type:`button`,style:X.editLimitsBtn,onClick:()=>H(e.name),children:a?`Collapse ▾`:`Edit Limits ▸`})]}),u&&e.state===`running`&&z(`div`,{style:X.updatesRow,children:[l?R(`span`,{style:{...X.limitBadge,background:l.bg,color:l.fg},title:l.title,children:l.label}):R(`span`,{style:{color:`#9ca3af`,fontStyle:`italic`},children:`No update check yet`}),c?.lastSuccessfulCheckAt&&z(`span`,{style:{fontSize:10,color:`#9ca3af`},title:`Last successful check: ${c.lastSuccessfulCheckAt}`,children:[`checked`,` `,ge(c.lastSuccessfulCheckAt)]}),R(`button`,{type:`button`,onClick:()=>ce(t),disabled:d,title:`Force a fresh update check now`,style:{...X.editLimitsBtn,marginLeft:`auto`,...d?X.btnDisabled:{}},children:d?`Checking...`:`Check now ↻`})]}),a&&R(xe,{containerName:t,effective:n,initialOverride:r,onApply:e=>U(t,e),onResetToDefault:()=>W(t),onClose:()=>H(e.name)})]},e.name)}),R(`div`,{style:X.sectionTitle,children:`Maintenance`}),z(`div`,{style:{display:`flex`,gap:8,flexWrap:`wrap`},children:[R(`button`,{style:{...X.btn,...X.btnSuccess},onClick:q,children:`Prune Dangling Images`}),R(`button`,{style:{...X.btn,...X.btnSecondary},onClick:()=>j(!0),children:`Doctor`})]}),N&&R(`div`,{style:{...X.status,color:F?`#ef4444`:`#10b981`},children:N}),R(`div`,{style:{...X.sectionTitle,marginTop:28},children:`\xA0`}),R(`button`,{style:{...X.btn,...X.btnSave},onClick:G,children:`Save Configuration`}),re&&R(se,{name:re,onClose:()=>A(null)}),ie&&R(fe,{onClose:()=>j(!1)})]})}export{Ce as default};
|
|
4
|
+
`],{type:`text/plain;charset=utf-8`}),r=URL.createObjectURL(t),i=document.createElement(`a`);i.href=r,i.download=`${e}-${new Date().toISOString().replace(/[:.]/g,`-`)}.log`,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(r)},[n,e]);D(()=>{let e=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t]),D(()=>{y.current=typeof document<`u`?document.activeElement:null;let e=setTimeout(()=>{v.current?.focus()},0);return()=>{clearTimeout(e);let t=y.current;if(t instanceof HTMLElement)try{t.focus()}catch{}}},[]);let E=C(e=>{if(e.key!==`Tab`)return;let t=_.current;if(!t)return;let n=Array.from(t.querySelectorAll(`button:not([disabled]), [tabindex]:not([tabindex="-1"])`)).filter(e=>e.offsetParent!==null);if(n.length===0)return;let r=n[0],i=n[n.length-1],a=document.activeElement;e.shiftKey?(a===r||!t.contains(a))&&(e.preventDefault(),i.focus()):a===i&&(e.preventDefault(),r.focus())},[]),ee=C(e=>{e.target===e.currentTarget&&t()},[t]),O=i===`streaming`?B.statusGreen:i===`disconnected`?B.statusRed:B.statusAmber,k=i===`connecting`?`Connecting…`:i===`backfill`?`Backfilled — opening live stream…`:i===`streaming`?`Live`:`Disconnected`;return I(`div`,{style:B.overlay,onClick:ee,role:`dialog`,"aria-modal":`true`,"aria-label":`Logs for ${e}`,children:L(`div`,{style:B.modal,ref:_,onKeyDown:E,children:[L(`div`,{style:B.header,children:[I(`span`,{style:{...B.statusDot,...O},title:k}),I(`span`,{style:B.title,children:e}),I(`span`,{style:B.metaLine,children:k}),L(`span`,{style:B.metaLine,children:[`· `,n.length,` lines`]}),I(`button`,{type:`button`,style:{...B.toolbarBtn,...c?B.toolbarBtnActive:{}},onClick:S,title:`Auto-scroll to bottom on new lines`,children:`Auto-scroll`}),I(`button`,{type:`button`,style:B.toolbarBtn,onClick:w,title:`Copy visible log to clipboard`,children:u?`Copied!`:`Copy`}),I(`button`,{type:`button`,style:B.toolbarBtn,onClick:T,title:`Download log as text file`,children:`Download`}),I(`button`,{type:`button`,style:B.closeBtn,onClick:t,ref:v,children:`Close`})]}),L(`pre`,{ref:f,style:B.body,onScroll:x,"aria-label":`Container log output`,tabIndex:0,children:[n.length===0?`(no log lines yet)`:n.join(`
|
|
5
|
+
`),I(`div`,{ref:p,"aria-hidden":`true`})]}),o&&L(`div`,{style:B.endBanner,children:[`Stream ended: `,o]})]})})}function V(e){return typeof e==`object`&&!!e}function H(e){if(!V(e)||typeof e.status!=`string`||typeof e.isContainerized!=`boolean`||!Array.isArray(e.remediation)||!V(e.binary)||!V(e.daemon)||typeof e.daemon.reachable!=`boolean`||!V(e.selfId)||!V(e.env)||!V(e.cgroupControllers))return!1;let t=e.cgroupControllers;if(!Array.isArray(t.missing)||t.available!==null&&!Array.isArray(t.available))return!1;if(`linger`in e&&e.linger!=null){if(!V(e.linger))return!1;let t=e.linger;if(t.user!==null&&typeof t.user!=`string`||typeof t.enabled!=`boolean`||!Array.isArray(t.advice))return!1}return!0}function U(e){switch(e){case`ok`:return`Runtime ready`;case`no-runtime`:return`No container runtime found`;case`socket-unreachable`:return`Runtime socket unreachable`;case`permission-denied`:return`Runtime socket: permission denied`;case`self-id-unresolved`:return`Signal K container ID unresolved`;case`cgroup-controllers-incomplete`:return`Host cgroup controllers not fully delegated`}}function W(e,t=`—`){return e==null||e===``?t:e}function G(e){return e==null?`unknown`:e?`yes`:`no`}function K(e){let t=[];if(t.push(`Deployment Doctor — ${U(e.status)}`),t.push(`status: ${e.status}`),t.push(``),t.push(`containerized: ${G(e.isContainerized)}`),t.push(`runtime: ${W(e.binary.name)} ${W(e.binary.version,``)}`.trimEnd()),t.push(`daemon reachable: ${G(e.daemon.reachable)}`),t.push(`rootless: ${G(e.daemon.rootless)}`),t.push(`socket: ${W(e.daemon.socketPath)}`),e.daemon.error&&t.push(`daemon error: ${e.daemon.error}`),e.isContainerized){let n=e.selfId.source?` (via ${e.selfId.source})`:``;t.push(`self container id: ${W(e.selfId.value)}${n}`)}let n=e.cgroupControllers;if(t.push(`cgroup controllers: ${W(n.available?.join(` `)??null)}`),n.missing.length>0&&t.push(`cgroup controllers MISSING: ${n.missing.join(` `)}`),n.kernelDisabledMemory&&t.push(`kernel cmdline disables the memory controller`),e.containerStorage){let n=e.containerStorage,r=n.idmapHazard?` (idmap hazard)`:``;t.push(`storage: ${W(n.fstype)} at ${W(n.storagePath)}${r}`)}if(e.linger){let n=e.linger.user?` for ${e.linger.user}`:``;t.push(`systemd linger: ${e.linger.enabled?`enabled`:`NOT enabled`}${n}`)}let r=Object.entries(e.env).filter(([,e])=>e!=null);if(r.length>0){t.push(``),t.push(`env:`);for(let[e,n]of r)t.push(` ${e}=${n}`)}if(t.push(``),e.remediation.length>0){t.push(`Remediation:`);for(let n of e.remediation)t.push(n)}else t.push(`No action needed (status ok).`);if(e.containerStorage&&e.containerStorage.advice.length>0){t.push(``),t.push(`Storage advice:`);for(let n of e.containerStorage.advice)t.push(n)}if(e.linger&&e.linger.advice.length>0){t.push(``),t.push(`Linger advice:`);for(let n of e.linger.advice)t.push(n)}return t.join(`
|
|
6
|
+
`)}var ue=`/plugins/signalk-container/api/doctor/deployment`,q={overlay:{position:`fixed`,inset:0,background:`rgba(0,0,0,0.5)`,display:`flex`,alignItems:`center`,justifyContent:`center`,zIndex:99999},modal:{background:`#fff`,borderRadius:8,boxShadow:`0 10px 25px rgba(0,0,0,0.2)`,width:`min(90vw, 760px)`,maxHeight:`85vh`,display:`flex`,flexDirection:`column`,overflow:`hidden`},header:{padding:`12px 16px`,borderBottom:`1px solid #e5e7eb`,display:`flex`,alignItems:`center`,gap:12},title:{fontSize:16,fontWeight:600,color:`#111`,flex:1},statusDot:{width:10,height:10,borderRadius:`50%`,flexShrink:0},statusGreen:{background:`#10b981`},statusAmber:{background:`#f59e0b`},statusRed:{background:`#ef4444`},toolbarBtn:{padding:`5px 10px`,fontSize:12,background:`#fff`,color:`#374151`,border:`1px solid #d1d5db`,borderRadius:4,cursor:`pointer`},body:{flex:1,overflow:`auto`,padding:`16px`,color:`#111`,fontSize:13},headline:{fontSize:15,fontWeight:600,marginBottom:12},row:{display:`flex`,gap:12,padding:`4px 0`,borderBottom:`1px solid #f3f4f6`},rowLabel:{width:150,flexShrink:0,color:`#6b7280`},rowValue:{color:`#111`,wordBreak:`break-word`},rowValueMissing:{color:`#b45309`,fontWeight:600},dim:{color:`#9ca3af`},sectionLabel:{fontSize:12,fontWeight:600,color:`#374151`,marginTop:16,marginBottom:6},pre:{background:`#1f2937`,color:`#e5e7eb`,fontFamily:`"SF Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace`,fontSize:12,lineHeight:1.5,padding:`12px`,margin:0,borderRadius:6,whiteSpace:`pre-wrap`,wordBreak:`break-word`},toggle:{marginTop:16,fontSize:12,background:`none`,border:`none`,color:`#3b82f6`,cursor:`pointer`,padding:0},message:{color:`#6b7280`,padding:`8px 0`},error:{color:`#ef4444`,padding:`8px 0`}};function de(e){return e===`ok`?q.statusGreen:e===`self-id-unresolved`||e===`cgroup-controllers-incomplete`?q.statusAmber:q.statusRed}function J({label:e,value:t,missing:n}){return L(`div`,{style:q.row,children:[I(`span`,{style:q.rowLabel,children:e}),I(`span`,{style:{...q.rowValue,...n?q.rowValueMissing:{}},children:t})]})}function Y(e){return e==null||e===``?I(`span`,{style:q.dim,children:`—`}):e}function fe({onClose:e}){let[t,n]=j(null),[r,i]=j(!0),[a,o]=j(null),[s,c]=j(!1),[l,u]=j(!1),d=A(null),f=A(null),p=A(null);D(()=>{let e=!1;return(async()=>{try{let t=await fetch(ue);if(e)return;if(!t.ok){o(t.status===401||t.status===403?`HTTP ${t.status} — not authorized. Are you logged in to the admin UI?`:`HTTP ${t.status} fetching the deployment doctor.`),i(!1);return}let r=await t.json();if(e)return;if(!H(r)){o(`Unexpected response shape from the deployment doctor.`),i(!1);return}n(r),i(!1)}catch(t){if(e)return;o(t instanceof Error?t.message:`Failed to reach the server.`),i(!1)}})(),()=>{e=!0}},[]),D(()=>{let t=t=>{t.key===`Escape`&&e()};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e]),D(()=>{p.current=typeof document<`u`?document.activeElement:null;let e=setTimeout(()=>f.current?.focus(),0);return()=>{clearTimeout(e);let t=p.current;if(t instanceof HTMLElement)try{t.focus()}catch{}}},[]);let m=C(e=>{if(e.key!==`Tab`)return;let t=d.current;if(!t)return;let n=Array.from(t.querySelectorAll(`button:not([disabled]), [tabindex]:not([tabindex="-1"])`)).filter(e=>e.offsetParent!==null);if(n.length===0)return;let r=n[0],i=n[n.length-1],a=document.activeElement;e.shiftKey?(a===r||!t.contains(a))&&(e.preventDefault(),i.focus()):a===i&&(e.preventDefault(),r.focus())},[]),h=C(t=>{t.target===t.currentTarget&&e()},[e]),g=C(async()=>{t&&await M(K(t))&&u(!0)},[t]);D(()=>{if(!l)return;let e=setTimeout(()=>u(!1),1500);return()=>clearTimeout(e)},[l]);let _=t?.cgroupControllers;return I(`div`,{style:q.overlay,onClick:h,role:`dialog`,"aria-modal":`true`,"aria-label":`Deployment Doctor`,children:L(`div`,{style:q.modal,ref:d,onKeyDown:m,children:[L(`div`,{style:q.header,children:[t&&I(`span`,{style:{...q.statusDot,...de(t.status)}}),I(`span`,{style:q.title,children:`Deployment Doctor`}),t&&I(`button`,{type:`button`,style:q.toolbarBtn,onClick:g,title:`Copy the full report to the clipboard`,children:l?`Copied!`:`Copy`}),I(`button`,{type:`button`,ref:f,style:q.toolbarBtn,onClick:e,children:`Close`})]}),L(`div`,{style:q.body,children:[r&&I(`div`,{style:q.message,children:`Running diagnostics…`}),a&&I(`div`,{style:q.error,children:a}),t&&L(F,{children:[I(`div`,{style:q.headline,children:U(t.status)}),I(J,{label:`Containerized`,value:t.isContainerized?`yes`:`no`}),I(J,{label:`Runtime`,value:t.binary.name?`${t.binary.name} ${t.binary.version??``}`.trim():Y(null)}),I(J,{label:`Daemon reachable`,value:t.daemon.reachable?`yes`:`no`}),I(J,{label:`Rootless`,value:t.daemon.rootless==null?`unknown`:t.daemon.rootless?`yes`:`no`}),I(J,{label:`Socket`,value:Y(t.daemon.socketPath)}),t.daemon.error&&I(J,{label:`Daemon error`,value:t.daemon.error,missing:!0}),t.isContainerized&&I(J,{label:`Self container ID`,value:t.selfId.value?`${t.selfId.value}${t.selfId.source?` (via ${t.selfId.source})`:``}`:Y(null),missing:!t.selfId.value}),I(J,{label:`cgroup controllers`,value:Y(_?.available?.join(` `)??null)}),_&&_.missing.length>0&&I(J,{label:`cgroup MISSING`,value:_.missing.join(` `),missing:!0}),_?.kernelDisabledMemory&&I(J,{label:`Kernel cmdline`,value:`disables the memory controller`,missing:!0}),t.containerStorage&&I(J,{label:`Storage`,value:`${t.containerStorage.fstype??`?`} at ${t.containerStorage.storagePath??`?`}${t.containerStorage.idmapHazard?` (idmap hazard)`:``}`,missing:t.containerStorage.idmapHazard}),t.linger&&I(J,{label:`systemd linger`,value:`${t.linger.enabled?`enabled`:`NOT enabled`}${t.linger.user?` for ${t.linger.user}`:``}`,missing:!t.linger.enabled}),I(`div`,{style:q.sectionLabel,children:`Remediation`}),t.remediation.length>0?I(`pre`,{style:q.pre,children:t.remediation.join(`
|
|
7
|
+
`)}):I(`div`,{style:q.message,children:`No action needed (status ok).`}),t.containerStorage&&t.containerStorage.advice.length>0&&L(F,{children:[I(`div`,{style:q.sectionLabel,children:`Storage advice`}),I(`pre`,{style:q.pre,children:t.containerStorage.advice.join(`
|
|
8
|
+
`)})]}),t.linger&&t.linger.advice.length>0&&L(F,{children:[I(`div`,{style:q.sectionLabel,children:`Linger advice`}),I(`pre`,{style:q.pre,children:t.linger.advice.join(`
|
|
9
|
+
`)})]}),I(`button`,{type:`button`,style:q.toggle,onClick:()=>c(e=>!e),children:s?`▾ Hide raw JSON`:`▸ Show raw JSON`}),s&&I(`pre`,{style:{...q.pre,marginTop:8},children:JSON.stringify(t,null,2)})]})]})]})})}var X={root:{fontFamily:`-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif`,color:`#333`,padding:`16px 0`},sectionTitle:{fontSize:13,fontWeight:600,color:`#888`,textTransform:`uppercase`,letterSpacing:`0.05em`,marginBottom:10,marginTop:24},btn:{display:`inline-flex`,alignItems:`center`,gap:8,padding:`8px 16px`,border:`none`,borderRadius:6,fontSize:13,fontWeight:600,cursor:`pointer`},btnPrimary:{background:`#3b82f6`,color:`#fff`},btnDanger:{background:`#ef4444`,color:`#fff`,padding:`6px 12px`,fontSize:12},btnWarning:{background:`#f59e0b`,color:`#fff`,padding:`6px 12px`,fontSize:12},btnSave:{background:`#3b82f6`,color:`#fff`},btnSuccess:{background:`#10b981`,color:`#fff`},btnSecondary:{background:`#fff`,color:`#374151`,border:`1px solid #d1d5db`},btnDisabled:{opacity:.5,cursor:`not-allowed`},status:{marginTop:8,fontSize:12,minHeight:18},runtimeCard:{display:`flex`,alignItems:`center`,gap:14,padding:`14px 18px`,background:`#f8f9fa`,border:`1px solid #e0e0e0`,borderRadius:10,marginBottom:12},runtimeIcon:{width:44,height:44,borderRadius:10,display:`flex`,alignItems:`center`,justifyContent:`center`,fontSize:22,flexShrink:0},runtimeInfo:{flex:1},runtimeName:{fontSize:15,fontWeight:600,color:`#333`},runtimeVersion:{fontSize:12,color:`#888`},runtimeRemediation:{fontSize:12,color:`#666`,fontFamily:`ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace`,whiteSpace:`pre-wrap`,marginTop:6,lineHeight:1.45},containerItem:{display:`flex`,alignItems:`center`,gap:12,padding:`10px 14px`,background:`#f8f9fa`,border:`1px solid #e0e0e0`,borderRadius:10,marginBottom:8},stateIndicator:{width:10,height:10,borderRadius:`50%`,flexShrink:0},containerInfo:{flex:1,minWidth:0},containerName:{fontSize:14,fontWeight:600,color:`#333`},containerMeta:{fontSize:11,color:`#888`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},containerActions:{display:`flex`,gap:6,flexShrink:0},containerCard:{background:`#f8f9fa`,border:`1px solid #e0e0e0`,borderRadius:10,marginBottom:8,overflow:`hidden`},containerItemFlat:{display:`flex`,alignItems:`center`,gap:12,padding:`10px 14px`},limitsRow:{display:`flex`,alignItems:`center`,gap:10,padding:`6px 14px 10px 34px`,fontSize:11,color:`#666`,flexWrap:`wrap`},updatesRow:{display:`flex`,alignItems:`center`,gap:10,padding:`0 14px 10px 34px`,fontSize:11,color:`#666`,flexWrap:`wrap`},limitBadge:{display:`inline-flex`,alignItems:`center`,padding:`2px 8px`,borderRadius:12,background:`#e5e7eb`,color:`#374151`,fontSize:11,fontWeight:500},overrideBadge:{display:`inline-flex`,alignItems:`center`,padding:`2px 8px`,borderRadius:12,background:`#fef3c7`,color:`#92400e`,fontSize:10,fontWeight:600},editLimitsBtn:{marginLeft:`auto`,padding:`3px 10px`,fontSize:11,background:`#fff`,color:`#3b82f6`,border:`1px solid #3b82f6`,borderRadius:6,cursor:`pointer`,fontWeight:500},limitsEditor:{borderTop:`1px solid #e0e0e0`,padding:`14px 14px 14px 34px`,background:`#fff`},limitsEditorGrid:{display:`grid`,gridTemplateColumns:`160px 1fr auto`,gap:`8px 12px`,alignItems:`center`,marginBottom:10},limitsEditorLabel:{fontSize:12,fontWeight:500,color:`#555`},limitsEditorInput:{padding:`5px 8px`,borderRadius:5,border:`1px solid #ccc`,fontSize:12,background:`#fff`,color:`#333`,fontFamily:`inherit`,width:`100%`,boxSizing:`border-box`},limitsEditorInputDisabled:{background:`#f3f4f6`,color:`#9ca3af`,fontStyle:`italic`},limitsEditorUnsetBtn:{width:24,height:24,borderRadius:4,border:`1px solid #d1d5db`,background:`#fff`,color:`#6b7280`,fontSize:14,lineHeight:1,cursor:`pointer`,display:`inline-flex`,alignItems:`center`,justifyContent:`center`},limitsEditorUnsetBtnActive:{background:`#fee2e2`,color:`#991b1b`,border:`1px solid #fca5a5`},limitsEditorAdvancedToggle:{fontSize:11,color:`#3b82f6`,cursor:`pointer`,userSelect:`none`,marginTop:6,marginBottom:10,display:`inline-block`},limitsEditorActions:{display:`flex`,gap:8,justifyContent:`flex-end`,marginTop:10},limitsEditorResult:{marginTop:10,padding:`8px 10px`,borderRadius:6,fontSize:11,lineHeight:1.5},limitsEditorResultLive:{background:`#d1fae5`,color:`#065f46`},limitsEditorResultRecreated:{background:`#fef3c7`,color:`#92400e`},limitsEditorResultError:{background:`#fee2e2`,color:`#991b1b`},limitsEditorWarning:{marginTop:4,fontSize:10,opacity:.85,fontStyle:`italic`},empty:{textAlign:`center`,padding:`30px 16px`,color:`#999`,fontSize:13},fieldRow:{display:`flex`,alignItems:`center`,gap:12,marginBottom:10},label:{fontSize:13,fontWeight:500,color:`#555`,width:160,flexShrink:0},select:{padding:`6px 10px`,borderRadius:6,border:`1px solid #ccc`,fontSize:13,background:`#fff`,color:`#333`},hint:{fontSize:11,color:`#aaa`,marginLeft:8},pruneResult:{fontSize:12,color:`#10b981`,marginTop:6}},pe={running:`#10b981`,stopped:`#f59e0b`,missing:`#94a3b8`,"no-runtime":`#ef4444`},me={running:`Running`,stopped:`Stopped`,missing:`Not created`,"no-runtime":`No runtime`};function Z({label:e,value:t,options:n,onChange:r,hint:i}){return L(`div`,{style:X.fieldRow,children:[I(`span`,{style:X.label,children:e}),I(`select`,{style:X.select,value:t,onChange:e=>r(e.target.value),children:n.map(e=>I(`option`,{value:e.value,children:e.label},e.value))}),i&&I(`span`,{style:X.hint,children:i})]})}function he({label:e,value:t,onChange:n,hint:r}){return L(`div`,{style:X.fieldRow,children:[I(`span`,{style:X.label,children:e}),L(`label`,{style:{display:`inline-flex`,alignItems:`center`,cursor:`pointer`,gap:8},children:[I(`input`,{type:`checkbox`,checked:t,onChange:e=>n(e.target.checked),style:{width:16,height:16,cursor:`pointer`}}),I(`span`,{style:{fontSize:13,color:`#555`},children:t?`Enabled`:`Disabled`})]}),r&&I(`span`,{style:X.hint,children:r})]})}function Q(e){return e&&e.startsWith(`sk-`)?e.slice(3):e}var $=[{key:`cpus`,label:`CPU (cores)`,type:`number`,step:`0.1`,min:`0.1`,placeholder:`e.g. 1.5`,primary:!0},{key:`memory`,label:`Memory`,type:`text`,placeholder:`e.g. 512m, 2g`,primary:!0},{key:`memorySwap`,label:`Memory + swap`,type:`text`,placeholder:`= memory to disable swap`,primary:!0},{key:`pidsLimit`,label:`Max processes`,type:`number`,step:`1`,min:`1`,placeholder:`e.g. 200`,primary:!0},{key:`cpuShares`,label:`CPU shares (weight)`,type:`number`,step:`1`,min:`2`,placeholder:`default 1024`,primary:!1},{key:`cpusetCpus`,label:`Pin to CPUs`,type:`text`,placeholder:`e.g. "0,1" or "1-3"`,primary:!1},{key:`memoryReservation`,label:`Memory reservation`,type:`text`,placeholder:`soft floor, e.g. 256m`,primary:!1},{key:`oomScoreAdj`,label:`OOM score adjust`,type:`number`,step:`1`,min:`-1000`,max:`1000`,placeholder:`-1000 to 1000`,primary:!1}];function ge(e){try{let t=new Date(e).getTime();if(!Number.isFinite(t))return e;let n=Math.max(0,Math.floor((Date.now()-t)/1e3));if(n<5)return`just now`;if(n<60)return`${n}s ago`;let r=Math.floor(n/60);if(r<60)return`${r}m ago`;let i=Math.floor(r/60);return i<24?`${i}h ago`:`${Math.floor(i/24)}d ago`}catch{return e}}function _e(e){if(!e)return`No update data`;let{runningTag:t,currentVersion:n,latestVersion:r,updateAvailable:i,reason:a,fromCache:o}=e;return a===`offline`?o?`\u{1F4E1} Offline — last cached result shows ${i?`update available`:`up to date`}`:`📡 Offline — no cached result yet`:a===`newer-version`?`\u2191 Update available: ${n} \u2192 ${r}`:a===`digest-drift`?`\u21BB Rebuild available for :${t}${r?` (latest stable: ${r})`:``}`:a===`up-to-date`?`\u2705 Up to date${n?` (`+n+`)`:``}`:a===`older-than-pinned`?`\u2139 Pinned to ${n}, latest stable is ${r}`:a===`error`?`\u26A0 Check error: ${e.error||`unknown`}`:`State: ${a||`unknown`}`}function ve(e){if(!e||!e.reason)return null;let{reason:t,runningTag:n,currentVersion:r,latestVersion:i,fromCache:a}=e;return t===`newer-version`?{label:`\u2191 ${i||`update`} available`,bg:`#fef3c7`,fg:`#92400e`,title:`Update available: ${r} \u2192 ${i}`}:t===`digest-drift`?{label:`↻ rebuild available`,bg:`#fef3c7`,fg:`#92400e`,title:`Image rebuild available for :${n}${i?` (latest stable ${i})`:``}`}:t===`offline`?{label:a?`📡 offline (cached)`:`📡 offline`,bg:`#e5e7eb`,fg:`#4b5563`,title:a?`Network unreachable; showing last cached check result`:`Network unreachable; no cached result yet`}:t===`error`?{label:`⚠ check error`,bg:`#fee2e2`,fg:`#991b1b`,title:e.error||`Update check error`}:t===`up-to-date`?{label:`✅ up to date`,bg:`#dcfce7`,fg:`#166534`,title:`Up to date${r?` (`+r+`)`:``}`}:null}function ye(e){let t={};for(let n of $){let r=n.key,i=e[n.key];if(i===null){t[r]=null;continue}if(!(i===void 0||i===``))if(n.type===`number`){let e=Number(i);if(!Number.isFinite(e))continue;t[r]=e}else t[r]=i}return t}function be(e,t){if(t==null||t===``)return null;switch(e){case`cpus`:return`${t} CPU`;case`memory`:return`${t}`;case`memorySwap`:return`swap: ${t}`;case`memoryReservation`:return`reserve: ${t}`;case`pidsLimit`:return`${t} PIDs`;case`cpuShares`:return`shares: ${t}`;case`cpusetCpus`:return`cpus: ${t}`;case`oomScoreAdj`:return`oom: ${t}`;default:return`${e}: ${t}`}}function xe({containerName:e,effective:n,initialOverride:r,onApply:i,onResetToDefault:a,onClose:o}){let s=e=>{let t=e??n,r={};for(let e of $){let n=e.key,i=t?t[n]:void 0;i==null?r[e.key]=``:r[e.key]=String(i)}return r},[c,l]=j(()=>s(n)),[u,d]=j(()=>r?$.some(e=>!e.primary&&r[e.key]!==void 0):!1),[f,p]=j(!1),[m,h]=j(!1),[g,_]=j(null),v=(e,t)=>{l(n=>({...n,[e]:t}))},y=e=>{l(t=>({...t,[e]:t[e]===null?``:null}))},b=()=>{l(s(n)),_(null)},x=async()=>{p(!0),_(null);try{let e=await i(ye(c));_(e),e&&e.effective&&l(s(e.effective))}catch(e){_({error:e instanceof Error?e.message:String(e)})}p(!1)},S=async()=>{if(window.confirm(`Reset ${e} to the plugin's default resource limits? This will remove your override and may cause a brief container recreate (~5s of downtime) if memory limits need to be unset.`)){h(!0),_(null);try{let e=await a();_(e),e&&e.effective&&l(s(e.effective))}catch(e){_({error:e instanceof Error?e.message:String(e)})}h(!1)}},C=n=>{let r=c[n.key],i=r===null;return L(t.Fragment,{children:[I(`label`,{style:X.limitsEditorLabel,htmlFor:`lim-${e}-${n.key}`,children:n.label}),I(`input`,{id:`lim-${e}-${n.key}`,type:i?`text`:n.type,value:i?``:r,step:n.step,min:n.min,max:n.max,placeholder:i?`(unset — remove limit)`:n.placeholder,disabled:i,onChange:e=>v(n.key,e.target.value),style:{...X.limitsEditorInput,...i?X.limitsEditorInputDisabled:{}}}),I(`button`,{type:`button`,onClick:()=>y(n.key),title:i?`Click to set a value again`:`Click to explicitly unset (remove this limit)`,style:{...X.limitsEditorUnsetBtn,...i?X.limitsEditorUnsetBtnActive:{}},children:i?`↺`:`×`})]},n.key)},w=$.filter(e=>e.primary),T=$.filter(e=>!e.primary);return L(`div`,{style:X.limitsEditor,children:[I(`div`,{style:X.limitsEditorGrid,children:w.map(C)}),L(`span`,{onClick:()=>d(!u),style:X.limitsEditorAdvancedToggle,children:[u?`▾`:`▸`,` Advanced (`,T.length,` more fields)`]}),u&&I(`div`,{style:X.limitsEditorGrid,children:T.map(C)}),L(`div`,{style:X.limitsEditorActions,children:[I(`button`,{type:`button`,onClick:o,disabled:f||m,style:{...X.btn,padding:`6px 12px`,fontSize:12,background:`#fff`,color:`#6b7280`,border:`1px solid #d1d5db`,...f||m?X.btnDisabled:{}},children:`Close`}),I(`button`,{type:`button`,onClick:S,disabled:f||m,title:`Clear override and restore plugin-default limits`,style:{...X.btn,padding:`6px 12px`,fontSize:12,background:`#fff`,color:`#d97706`,border:`1px solid #f59e0b`,...f||m?X.btnDisabled:{}},children:m?`Resetting...`:`Reset to default`}),I(`button`,{type:`button`,onClick:b,disabled:f||m,title:`Discard unsaved changes in this form (does not touch the server)`,style:{...X.btn,padding:`6px 12px`,fontSize:12,background:`#fff`,color:`#6b7280`,border:`1px solid #d1d5db`,...f||m?X.btnDisabled:{}},children:`Revert`}),I(`button`,{type:`button`,onClick:x,disabled:f||m,style:{...X.btn,...X.btnPrimary,padding:`6px 14px`,fontSize:12,...f||m?X.btnDisabled:{}},children:f?`Applying...`:`Apply`})]}),g&&I(`div`,{style:{...X.limitsEditorResult,...g.error?X.limitsEditorResultError:g.method===`recreated`?X.limitsEditorResultRecreated:X.limitsEditorResultLive},children:g.error?L(F,{children:[I(`strong`,{children:`Error:`}),` `,g.error]}):L(F,{children:[I(`strong`,{children:g.method===`live`?`Applied live (no restart)`:`Container recreated`}),g.warnings&&g.warnings.length>0&&I(`div`,{style:X.limitsEditorWarning,children:g.warnings.map((e,t)=>L(`div`,{children:[`⚠ `,e]},t))})]})})]})}function Se(e){return e?U(e.status):`No container runtime found`}function Ce({configuration:e,save:t}){let n=e||{},[r,i]=j(n.runtime||`auto`),[a,o]=j(n.pruneSchedule||`weekly`),[s,c]=j(n.updateCheckInterval||`24h`),[l,u]=j(n.backgroundUpdateChecks!==!1),[d,f]=j(n.containerOverrides||{}),[p,m]=j(null),[h,g]=j(null),[_,v]=j([]),[y,b]=j({}),[x,S]=j({}),[w,T]=j({}),[E,ee]=j({}),[O,k]=j(new Set),[te,ne]=j(new Set),[re,ie]=j(null),[ae,A]=j(!1),[oe,se]=j(!0),[ce,M]=j(``),[N,P]=j(!1),[F,R]=j(null),z=C(async()=>{try{let[e,t]=await Promise.all([fetch(`/plugins/signalk-container/api/runtime`),fetch(`/plugins/signalk-container/api/containers`)]),n=!1;if(e.ok){let t=await e.json();m(t),n=t!==null}else m(null);if(n)g(null);else try{let e=await fetch(`/plugins/signalk-container/api/doctor/deployment`);e.ok?g(await e.json()):g(null)}catch{g(null)}let r=[];if(t.ok?(r=await t.json(),v(r)):v([]),r.length>0){let e={},t={};await Promise.all(r.map(async n=>{let r=Q(n.name);try{let n=await fetch(`/plugins/signalk-container/api/containers/${encodeURIComponent(r)}/resources`);if(n.ok){let i=await n.json();e[r]=i.effective||{},t[r]=i.override??null}}catch{}})),b(e),S(t)}try{let e=await fetch(`/plugins/signalk-container/api/updates`);if(e.ok){let t=await e.json();if(Array.isArray(t)){let e={},n={};for(let r of t)r&&r.containerName&&(n[r.containerName]=r,r.pluginId&&(e[r.containerName]=r.pluginId));T(e=>{let t={...n};for(let r of Object.keys(n)){let i=n[r],a=e[r];i.reason===`unknown`&&a&&a.reason&&a.reason!==`unknown`&&(t[r]=a)}return t}),ee(e)}}}catch{}}catch{m(null),v([])}se(!1)},[]);D(()=>{z();let e=setInterval(z,5e3);return()=>clearInterval(e)},[z]);let B=e=>{let t=Q(e);ne(e=>{let n=new Set(e);return n.has(t)?n.delete(t):n.add(t),n})},V=async(e,t)=>{let n=await fetch(`/plugins/signalk-container/api/containers/${encodeURIComponent(e)}/resources`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)}),r=await n.json().catch(()=>({}));return n.ok?(r.effective&&b(t=>({...t,[e]:r.effective})),S(t=>({...t,[e]:r.override??null})),f(t=>{let n={...t};return r.override&&Object.keys(r.override).length>0?n[e]=r.override:delete n[e],n}),{method:r.method,warnings:r.warnings,effective:r.effective}):{error:r.error||`${n.status} ${n.statusText}`}},H=async e=>{let t=E[e];if(!t){M(`${e}: no update service registered. The consumer plugin hasn't migrated to signalk-container's update detection yet.`),P(!0);return}k(t=>{let n=new Set(t);return n.add(e),n}),M(`Checking ${e} for updates...`),P(!1);try{let n=await fetch(`/plugins/signalk-container/api/updates/${encodeURIComponent(t)}/check`,{method:`POST`});if(n.ok){let t=await n.json();T(n=>({...n,[e]:t})),M(_e(t)),P(!1)}else M(`Check failed: ${(await n.json().catch(()=>({error:n.statusText}))).error}`),P(!0)}catch(e){M(`Check error: ${e instanceof Error?e.message:String(e)}`),P(!0)}k(t=>{let n=new Set(t);return n.delete(e),n})},U=async e=>{let t=await fetch(`/plugins/signalk-container/api/containers/${encodeURIComponent(e)}/resources`,{method:`DELETE`}),n=await t.json().catch(()=>({}));return t.ok?(n.effective&&b(t=>({...t,[e]:n.effective})),S(t=>({...t,[e]:null})),f(t=>{let n={...t};return delete n[e],n}),{method:n.method,warnings:n.warnings,effective:n.effective}):{error:n.error||`${t.status} ${t.statusText}`}},W=()=>{let e={};for(let[t,n]of Object.entries(x))n&&Object.keys(n).length>0&&(e[t]=n);t({...n,runtime:r,pruneSchedule:a,maxConcurrentJobs:n.maxConcurrentJobs||2,updateCheckInterval:s,backgroundUpdateChecks:l,containerOverrides:e}),M(`Saved! Plugin will restart.`),P(!1)},G=async e=>{M(`Starting ${e}...`),P(!1);try{let t=await fetch(`/plugins/signalk-container/api/containers/${encodeURIComponent(e)}/start`,{method:`POST`});t.ok?(M(`${e} started.`),z()):(M(`Failed: ${(await t.json().catch(()=>({error:t.statusText}))).error}`),P(!0))}catch(e){M(`Error: ${e instanceof Error?e.message:String(e)}`),P(!0)}},K=async e=>{M(`Stopping ${e}...`),P(!1);try{let t=await fetch(`/plugins/signalk-container/api/containers/${encodeURIComponent(e)}/stop`,{method:`POST`});t.ok?(M(`${e} stopped.`),z()):(M(`Failed: ${(await t.json().catch(()=>({error:t.statusText}))).error}`),P(!0))}catch(e){M(`Error: ${e instanceof Error?e.message:String(e)}`),P(!0)}},ue=async(e,t)=>{if(!(t===`running`&&!window.confirm(`${e} is running. Stop and remove it?`))){M(`Removing ${e}...`),P(!1);try{let t=await fetch(`/plugins/signalk-container/api/containers/${encodeURIComponent(e)}/remove`,{method:`POST`});t.ok?(M(`${e} removed.`),z()):(M(`Failed: ${(await t.json().catch(()=>({error:t.statusText}))).error}`),P(!0))}catch(e){M(`Error: ${e instanceof Error?e.message:String(e)}`),P(!0)}}},q=async()=>{M(`Pruning dangling images...`),P(!1),R(null);try{let e=await fetch(`/plugins/signalk-container/api/prune`,{method:`POST`});if(e.ok){let t=await e.json().catch(()=>({error:e.statusText}));R(t),M(`Pruned ${t.imagesRemoved} image(s), reclaimed ${t.spaceReclaimed}.`)}else M(`Prune failed: ${(await e.json().catch(()=>({error:e.statusText}))).error}`),P(!0)}catch(e){M(`Error: ${e instanceof Error?e.message:String(e)}`),P(!0)}};return L(`div`,{style:X.root,children:[I(`div`,{style:X.sectionTitle,children:`Runtime`}),oe?I(`div`,{style:X.empty,children:`Detecting container runtime...`}):p?L(`div`,{style:X.runtimeCard,children:[I(`div`,{style:{...X.runtimeIcon,background:p.runtime===`podman`?`#892ca0`:`#2496ed`,color:`#fff`},children:p.runtime===`podman`?`P`:`D`}),L(`div`,{style:X.runtimeInfo,children:[L(`div`,{style:X.runtimeName,children:[p.runtime.charAt(0).toUpperCase()+p.runtime.slice(1),p.isPodmanDockerShim?` (via docker shim)`:``]}),L(`div`,{style:X.runtimeVersion,children:[`Version `,p.version]})]}),I(`div`,{style:{...X.stateIndicator,background:`#10b981`},title:`Runtime available`})]}):L(`div`,{style:X.runtimeCard,children:[I(`div`,{style:{...X.runtimeIcon,background:`#fef2f2`,color:`#ef4444`},children:`!`}),L(`div`,{style:X.runtimeInfo,children:[I(`div`,{style:X.runtimeName,children:Se(h)}),h&&h.remediation.length>0&&I(`div`,{style:X.runtimeRemediation,children:h.remediation.join(`
|
|
10
|
+
`)}),I(`button`,{style:{...X.btn,...X.btnSecondary,marginTop:8},onClick:()=>A(!0),children:`Run Doctor`})]})]}),I(`div`,{style:X.sectionTitle,children:`Settings`}),I(Z,{label:`Preferred runtime`,value:r,onChange:i,options:[{value:`auto`,label:`Auto-detect (Podman preferred)`},{value:`podman`,label:`Podman`},{value:`docker`,label:`Docker`}]}),I(Z,{label:`Auto-prune images`,value:a,onChange:o,options:[{value:`off`,label:`Off`},{value:`weekly`,label:`Weekly`},{value:`monthly`,label:`Monthly`}]}),I(Z,{label:`Update check interval`,value:s,onChange:c,options:[{value:`1h`,label:`Every hour`},{value:`6h`,label:`Every 6 hours`},{value:`12h`,label:`Every 12 hours`},{value:`24h`,label:`Daily (recommended)`},{value:`48h`,label:`Every 2 days`},{value:`168h`,label:`Weekly`}],hint:`How often to check for new container images`}),I(he,{label:`Background update checks`,value:l,onChange:u,hint:`Disable on metered connections; manual check still works`}),I(`div`,{style:X.sectionTitle,children:`Managed Containers`}),_.length===0?I(`div`,{style:X.empty,children:oe?`Loading...`:`No managed containers. Other plugins will create them.`}):_.map(e=>{let t=Q(e.name),n=y[t]||{},r=x[t],i=r&&Object.keys(r).length>0,a=te.has(t),o=t.startsWith(`job-`),s=$.map(e=>be(e.key,n[e.key])).filter(Boolean),c=w[t],l=ve(c),u=!!E[t],d=O.has(t);return L(`div`,{style:X.containerCard,children:[L(`div`,{style:X.containerItemFlat,children:[I(`div`,{style:{...X.stateIndicator,background:pe[e.state]||`#94a3b8`},title:me[e.state]||e.state}),L(`div`,{style:X.containerInfo,children:[I(`div`,{style:X.containerName,children:e.name}),L(`div`,{style:X.containerMeta,children:[e.image,` · `,me[e.state]||e.state,e.ports&&e.ports.length>0&&e.ports[0]?` · ${e.ports.join(`, `)}`:``]})]}),L(`div`,{style:X.containerActions,children:[e.state===`stopped`&&I(`button`,{style:{...X.btn,...X.btnPrimary,padding:`6px 12px`,fontSize:12},onClick:()=>G(e.name),children:`Start`}),e.state===`running`&&I(`button`,{style:{...X.btn,...X.btnWarning},onClick:()=>K(e.name),children:`Stop`}),I(`button`,{style:{...X.btn,background:`#fff`,color:`#374151`,border:`1px solid #d1d5db`},onClick:()=>ie(e.name),title:`Stream the container's stdout+stderr log`,children:`Logs`}),I(`button`,{style:{...X.btn,...X.btnDanger},onClick:()=>ue(e.name,e.state),children:`Remove`})]})]}),L(`div`,{style:X.limitsRow,children:[s.length===0?I(`span`,{style:{color:`#9ca3af`,fontStyle:`italic`},children:`No resource limits set`}):s.map((e,t)=>I(`span`,{style:X.limitBadge,children:e},t)),i&&I(`span`,{style:X.overrideBadge,title:`You have a user override configured for this container`,children:`Override active`}),e.state===`running`&&!o&&I(`button`,{type:`button`,style:X.editLimitsBtn,onClick:()=>B(e.name),children:a?`Collapse ▾`:`Edit Limits ▸`})]}),u&&e.state===`running`&&L(`div`,{style:X.updatesRow,children:[l?I(`span`,{style:{...X.limitBadge,background:l.bg,color:l.fg},title:l.title,children:l.label}):I(`span`,{style:{color:`#9ca3af`,fontStyle:`italic`},children:`No update check yet`}),c?.lastSuccessfulCheckAt&&L(`span`,{style:{fontSize:10,color:`#9ca3af`},title:`Last successful check: ${c.lastSuccessfulCheckAt}`,children:[`checked`,` `,ge(c.lastSuccessfulCheckAt)]}),I(`button`,{type:`button`,onClick:()=>H(t),disabled:d,title:`Force a fresh update check now`,style:{...X.editLimitsBtn,marginLeft:`auto`,...d?X.btnDisabled:{}},children:d?`Checking...`:`Check now ↻`})]}),a&&I(xe,{containerName:t,effective:n,initialOverride:r,onApply:e=>V(t,e),onResetToDefault:()=>U(t),onClose:()=>B(e.name)})]},e.name)}),I(`div`,{style:X.sectionTitle,children:`Maintenance`}),L(`div`,{style:{display:`flex`,gap:8,flexWrap:`wrap`},children:[I(`button`,{style:{...X.btn,...X.btnSuccess},onClick:q,children:`Prune Dangling Images`}),I(`button`,{style:{...X.btn,...X.btnSecondary},onClick:()=>A(!0),children:`Doctor`})]}),ce&&I(`div`,{style:{...X.status,color:N?`#ef4444`:`#10b981`},children:ce}),I(`div`,{style:{...X.sectionTitle,marginTop:28},children:`\xA0`}),I(`button`,{style:{...X.btn,...X.btnSave},onClick:W,children:`Save Configuration`}),re&&I(le,{name:re,onClose:()=>ie(null)}),ae&&I(fe,{onClose:()=>A(!1)})]})}export{Ce as default};
|