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>
This commit is contained in:
co-authored by
Claude Fable 5
parent
f2a94548ab
commit
c014c4b3ee
@@ -2482,6 +2482,12 @@ fi
|
||||
|
||||
if [ -d "$BOOT_MEDIA/archipelago/apps" ]; then
|
||||
cp -r "$BOOT_MEDIA/archipelago/apps" /mnt/target/etc/archipelago/
|
||||
# The backend loads disk manifests from /opt/archipelago/apps — copying
|
||||
# only to /etc/archipelago/apps left fresh installs with ZERO manifests,
|
||||
# so any app not covered by the signed catalog (e.g. netbird) could not
|
||||
# install at all. Ship them where the orchestrator actually looks.
|
||||
mkdir -p /mnt/target/opt/archipelago/apps
|
||||
cp -r "$BOOT_MEDIA/archipelago/apps/." /mnt/target/opt/archipelago/apps/
|
||||
fi
|
||||
|
||||
# Copy pre-bundled container images
|
||||
|
||||
Reference in New Issue
Block a user