project-nomad/admin
Ken Eucker f0c2269a01 fix(install): build bundles from Windows and onto removable drives
Running ./install/build_offline_bundle_docker.sh from a checkout on a USB stick
failed with "No Docker socket at /var/run/docker.sock" — advice that cannot be
followed, since Docker Desktop is reached over a named pipe. Three separate
faults sat behind it.

1. Windows was never supported despite the docs claiming otherwise. The socket
   test only means something where a socket file is what gets mounted; MSYS also
   rewrites the Unix-looking paths in every -v argument. Guard the test, convert
   mount sources with cygpath, and set MSYS_NO_PATHCONV so targets, the socket
   path and the workdir survive verbatim.

2. Identity mapping broke on Windows. The build starts further containers whose
   bind mounts are resolved by the host daemon, so a path must mean the same
   thing on both sides. On Linux that is free. On Windows it is not: the daemon
   speaks Windows paths and a Linux container cannot have a directory called
   C:/Users. Mount inside the container at /run/desktop/mnt/host/<drive>/… —
   the form Docker Desktop's VM resolves — and hand the inner script the same.

   Without this the APT resolver wrote 106 .debs into a phantom directory and
   the build died with "no package index was produced". That check happens to
   run host-side; had it run in the container, the result would have been a
   bundle that built, self-verified, and was empty.

3. Docker Desktop shares only fixed drives. Removable and exFAT volumes mount as
   an EMPTY directory instead of failing. Probe each path with a marker file, and
   work around what is found: stage the checkout when the source is unmountable,
   and build into staging then copy across when the output is. Writing a bundle
   straight to the USB stick it will travel on is the whole point of the tool, and
   the host can write there even when the daemon cannot read there.

Verified end to end on Windows/Git Bash from an exFAT checkout: a 978 MB bundle
with 106 .debs and 6 images landed on the removable drive, and
verify_offline_bundle.sh passes against that copy.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-15 22:47:45 -07:00
..
app fix(easy-setup): let the wizard run offline instead of 500ing and blocking Next 2026-08-15 19:40:37 -07:00
bin feat: curated content system overhaul 2026-02-11 15:44:46 -08:00
commands Add offline FDA drug reference (labels, interaction view, conditions, remedies) (#1040) 2026-08-04 03:38:33 +00:00
config fix: lazy-connect + retry for ioredis to avoid blocked startup 2026-06-23 17:40:10 +00:00
constants fix(KVStore): missing apps.homebox key 2026-08-04 03:38:32 +00:00
database feat(benchmark): official multi-arch sysbench, resolved digest, platform metadata (#1158) 2026-08-04 03:39:53 +00:00
docs fix(install): build bundles from Windows and onto removable drives 2026-08-15 22:47:45 -07:00
inertia fix(easy-setup): let the wizard run offline instead of 500ing and blocking Next 2026-08-15 19:40:37 -07:00
providers fix(kiwix): self-heal a missing or corrupt library XML on startup 2026-06-23 04:46:56 +00:00
public feat(creator-packs): add missing Modern Rogue banner asset (#1147) 2026-08-04 03:39:52 +00:00
resources chore: standardize brand name to Project NOMAD, retire backronym 2026-08-04 03:37:32 +00:00
scripts refactor(drug-reference): make collections JSON the single source for curated data (#1130) 2026-08-04 03:38:35 +00:00
start feat: auto-generating OpenAPI docs with Scalar UI (#1128) 2026-08-04 03:38:33 +00:00
tests fix(easy-setup): let the wizard run offline instead of 500ing and blocking Next 2026-08-15 19:40:37 -07:00
types fix(easy-setup): let the wizard run offline instead of 500ing and blocking Next 2026-08-15 19:40:37 -07:00
util Add offline FDA drug reference (labels, interaction view, conditions, remedies) (#1040) 2026-08-04 03:38:33 +00:00
views chore: standardize brand name to Project NOMAD, retire backronym 2026-08-04 03:37:32 +00:00
.editorconfig feat: initial commit 2025-06-29 15:51:08 -07:00
.env.example feat(creator-packs): gated per-creator video packs, offline via Kiwix (#1106) 2026-08-04 03:38:27 +00:00
ace.js feat: initial commit 2025-06-29 15:51:08 -07:00
adonisrc.ts feat(GPU): auto-remediate nomad_ollama passthrough loss on admin boot (#755) 2026-05-20 10:16:00 -07:00
eslint.config.js feat: openwebui+ollama and zim management 2025-07-09 09:08:21 -07:00
package-lock.json chore(deps): bump axios and systeminformation in /admin 2026-08-04 03:38:40 +00:00
package.json chore(deps): bump axios and systeminformation in /admin 2026-08-04 03:38:40 +00:00
tailwind.config.ts feat: initial commit 2025-06-29 15:51:08 -07:00
tsconfig.json Add offline FDA drug reference (labels, interaction view, conditions, remedies) (#1040) 2026-08-04 03:38:33 +00:00
vite.config.ts fix(Maps): ensure proper parsing of hostnames (#640) 2026-04-03 14:26:50 -07:00