rust:1-slim-bookworm doesn't include dbus/ssl dev headers, and jmcorgan/fips upstream started linking against libdbus-sys + openssl at some recent commit. Observed during the 2026-04-19 v1.5.0-alpha rebuild: libdbus-sys's build.rs panics when pkg-config can't find dbus-1.pc, which kills the whole cargo build → the whole ISO build → ships an ISO without FIPS installed. Also mask nostr-vpn.service + archipelago-wg*.service in the rootfs Dockerfile: these have WantedBy=multi-user.target so systemd pulls them into the default boot target, but their EnvironmentFile + an ExecStartPre guard cause them to [FAILED] in the boot MOTD on every fresh install until onboarding writes their env files. Masking keeps the startup clean; the onboarding / install RPC handlers unmask + start them when prerequisites exist (same model as archipelago-fips). Bonus discovery from same diag: the default build was silently reusing a stale rootfs cache from Apr 12 — before the FIPS integration landed. So the v1.5.0-alpha ISO I shipped had no FIPS package at all. Rebuild pass with --rebuild forces fresh rootfs. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Archipelago OS Image Recipes
Build scripts for creating bootable Debian Linux OS images for Archipelago Bitcoin Node OS.
Quick Start
Build the ISO
# 1. Sync latest configs from live dev server
./sync-from-live.sh
# 2. Build components
./scripts/build-backend.sh
./scripts/build-frontend.sh
# 3. Build the ISO
./build-debian-iso.sh
This creates a bootable Debian Live ISO with Archipelago pre-installed.
Write to USB
# Using dd (recommended)
./write-usb-dd.sh /dev/diskN
# Or use Balena Etcher to flash the ISO
See the ISO-BUILD-CHECKLIST.md for a comprehensive build workflow.
See the Architecture documentation for detailed system information.
What's Included
- Debian Linux Base: Stable Debian 13 (Trixie) distribution
- Podman: Container runtime for apps (rootless by default)
- Archipelago Backend: Rust-based API server
- Archipelago Frontend: Vue.js web interface
- Systemd Services: Automatic service management
- Network Configuration: NetworkManager for easy setup
Build Output
results/archipelago-debian-13-x86_64.iso- Bootable hybrid ISO image
Supported Platforms
- x86_64: Dell OptiPlex, HP ProDesk 400 G4 DM, Start9 Server Pure, and other x86_64 machines
- Build Systems: macOS (requires Docker) and Linux (native or Docker)
Installation Methods
1. Live USB Boot
Boot from USB, run in live mode to test, or install to disk.
2. Full Disk Installation
From the live environment, run:
sudo /archipelago/install-to-disk.sh
This installs Archipelago to a target disk using debootstrap.
Directory Structure
image-recipe/
├── build-debian-iso.sh # Main ISO builder
├── write-usb-dd.sh # Write ISO to USB with dd
├── create-fat32-usb.sh # Alternative USB creation
├── archipelago-scripts/ # Scripts included in ISO
│ ├── install-to-disk.sh # Disk installer
│ └── setup-bitcoin.sh # Bitcoin Core setup
├── scripts/ # Build helper scripts
│ ├── build-backend.sh # Compile Rust backend
│ ├── build-frontend.sh # Build Vue.js frontend
│ └── check-dependencies.sh # Verify build requirements
└── results/ # Built ISO output
Requirements
- Docker (for macOS builds)
- xorriso (for ISO creation):
brew install xorriso - 7zip (for ISO extraction):
brew install p7zip