archipelago c014c4b3ee fix(install): ship app manifests where the backend loads them + self-heal existing nodes
Fresh ISO installs had ZERO disk manifests: auto-install.sh copied
apps/ to /etc/archipelago/apps but the backend/orchestrator loads
/opt/archipelago/apps — so any app not overlaid by the signed catalog
(netbird: 'manifests not available on this node') could never install.

- installer now also populates /mnt/target/opt/archipelago/apps
- bootstrap gains run_apps_dir_repair(): when /opt/archipelago/apps is
  empty and the installer copy exists, populate it at startup — heals
  already-deployed ISO nodes via OTA without reinstalling
- bootstrap's bitcoin.conf repair now also ensures rpcbind=0.0.0.0
  (same fix as install.rs; duplicate rpcbind with a manifest command
  line is harmless — bitcoind binds the first and logs the rest)

Verified live on the framework node: /opt populated (56 dirs), backend
restart loaded '50 app manifest(s) (disk + registry catalog)', all
containers kept running (they live in user.slice, not the service
cgroup).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 07:44:26 -04:00
..

Archived ISO build recipes

These scripts built the Archipelago auto-installer ISO (bundled and unbundled variants). As of v1.7.43-alpha, ISOs are no longer part of the release deliverable. Releases ship as tarballs consumed by scripts/self-update.sh on existing nodes.

Archived here rather than deleted so they can be resurrected if ISO distribution is reintroduced.

Contents

  • build-auto-installer-iso.sh — orchestrator, bundles container images into squashfs
  • build-unbundled-iso.sh — thin wrapper that sets BUNDLE_IMAGES=0 and delegates
  • test-iso-qemu.sh — smoke-tests a built ISO under QEMU
  • scripts/convert-iso-to-disk.sh — converts an ISO to a raw disk image
  • BUILD-ISO-STATUS.md, ISO-BUILD-CHECKLIST.md — contributor guides
  • branding/isohdpfx.bin — isolinux MBR hybrid image
  • .gitea-workflows/build-iso-dev.yml — CI workflow that ran the build+smoke-test

To resurrect

  1. git mv image-recipe/_archived/* image-recipe/ (adjust paths back)
  2. Restore .gitea/workflows/build-iso-dev.yml
  3. Re-add release-process references (see scripts/create-release.sh, docs/BETA-RELEASE-CHECKLIST.md, docs/hotfix-process.md, README.md).

Why archived

The release flow is simpler and faster as tarball-only:

  • releases/vX.Y.Z-alpha/archipelago (backend binary)
  • releases/vX.Y.Z-alpha/archipelago-frontend-X.Y.Z-alpha.tar.gz (frontend + AIUI + filebrowser UI assets)
  • releases/manifest.json (pointers + changelog)

Nodes pull these via scripts/self-update.sh from either Gitea mirror. Filebrowser and AIUI remain bundled inside the frontend tarball and deployed atomically by self-update.sh.