project-nomad/install
Ken Eucker 40ee026938 feat(install): add offline artifact installation mode
A normal install needs the internet: the installer fetches Docker from
get.docker.com, host packages from APT, container images from registries,
and its own helper scripts from GitHub. That leaves no way to provision a
machine that has no connectivity, or to rebuild one after connectivity is
gone.

Artifact mode closes that bootstrap gap without adding a second installer.
install_nomad.sh gains --artifacts <dir> (and NOMAD_ARTIFACT_PATH); with no
such argument it behaves exactly as before. When a bundle is selected every
dependency comes from that bundle and the installer is fail-closed: it
never falls back to the network, and a missing input is an error.

build_offline_bundle.sh prepares a bundle on a connected machine from a
source checkout, resolving the package closure and discovering images from
management_compose.yaml rather than hardcoding them, so the bundle tracks
the compose file. build_offline_bundle_docker.sh wraps it so the build only
needs Docker on the host. verify_offline_bundle.sh inspects a bundle before
transfer; capture_installed_images.sh exports images from a populated host.

APT is isolated to a bundle-local file: repository so package installation
cannot resolve through a configured remote, image archives are loaded from
disk, and Compose starts with pulls disabled via a generated override that
leaves the canonical management compose file untouched.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 14:17:03 -07:00
..
calibre-empty-library feat(supply-depot): per-app onboarding docs, install fixes, and in-app Docs links 2026-06-23 04:46:47 +00:00
sidecar-disk-collector chore: standardize brand name to Project NOMAD, retire backronym 2026-08-04 03:37:32 +00:00
sidecar-updater fix(updater): prune superseded images after update to reclaim disk (#1101) 2026-08-04 03:37:36 +00:00
tests feat(install): add offline artifact installation mode 2026-08-14 14:17:03 -07:00
build_offline_bundle.sh feat(install): add offline artifact installation mode 2026-08-14 14:17:03 -07:00
build_offline_bundle_docker.sh feat(install): add offline artifact installation mode 2026-08-14 14:17:03 -07:00
capture_installed_images.sh feat(install): add offline artifact installation mode 2026-08-14 14:17:03 -07:00
collect_disk_info.sh feat: disk info collection 2025-12-07 19:13:43 -08:00
entrypoint.sh fix: lazy-connect + retry for ioredis to avoid blocked startup 2026-06-23 17:40:10 +00:00
install_nomad.sh feat(install): add offline artifact installation mode 2026-08-14 14:17:03 -07:00
management_compose.yaml docs(install): make storage-relocation guidance accurate and consistent (#1103) 2026-08-04 03:37:37 +00:00
migrate-disk-collector.md chore: standardize brand name to Project NOMAD, retire backronym 2026-08-04 03:37:32 +00:00
migrate-disk-collector.sh chore: standardize brand name to Project NOMAD, retire backronym 2026-08-04 03:37:32 +00:00
run_updater_fixes.sh chore: standardize brand name to Project NOMAD, retire backronym 2026-08-04 03:37:32 +00:00
start_nomad.sh chore: standardize brand name to Project NOMAD, retire backronym 2026-08-04 03:37:32 +00:00
stop_nomad.sh chore: standardize brand name to Project NOMAD, retire backronym 2026-08-04 03:37:32 +00:00
uninstall_nomad.sh fix(install): define missing header_red + colors in uninstall/update scripts (#1098) 2026-08-04 03:37:35 +00:00
update_nomad.sh docs: document Ubuntu 26.04 LTS as the recommended OS in the in-app docs (#1159) 2026-08-04 03:39:59 +00:00
verify_offline_bundle.sh feat(install): add offline artifact installation mode 2026-08-14 14:17:03 -07:00
wikipedia_en_100_mini_2025-06.zim fix(ZIM): host initial zim download in GH repo 2025-09-02 22:44:01 -07:00
wikipedia_en_100_mini_2026-01.zim build: add latest initial zim file 2026-03-24 02:08:18 +00:00