- Added new entries to .gitignore for build artifacts and macOS output directories to streamline the build process. - Deleted outdated documentation files: AUTH_LOGIN_FIX.md, AUTBOOT_CONFIGURATION.md, BACKEND_FIXES.md, BACKEND_STARTUP_FIX.md, BITCOIN_CORE_HEADLESS_FIX.md, BITCOIN_CORE_UI_COMPLETE.md, BITCOIN_STANDALONE_UI_COMPLETE.md, BITCOIN_UI_COMPLETE.md, BOOT_SEQUENCE_DIAGRAM.txt, and BUILD_COMMANDS_REFERENCE.txt to declutter the repository and remove unnecessary content.
4.2 KiB
Building Archipelago OS Images
This guide explains how to build bootable Debian Linux OS images for Archipelago Bitcoin Node OS that can be flashed to x86_64 desktop computers (Dell OptiPlex, HP ProDesk 400 G4 DM, Start9 Server Pure, etc.).
Overview
The build system creates bootable ISO images containing:
- Debian Linux 12 (Bookworm) base system
- Podman container runtime
- Archipelago backend (Rust)
- Archipelago frontend (Vue.js)
- Systemd services
- Network configuration via NetworkManager
Prerequisites
macOS
- Docker Desktop: Install Docker Desktop
- xorriso:
brew install xorriso - 7zip:
brew install p7zip - Disk Space: At least 10GB free
- Memory: 8GB+ recommended
Linux
- Docker (optional, for building backend)
- xorriso:
apt-get install xorriso - 7zip:
apt-get install p7zip-full - Disk Space: At least 10GB free
Quick Start
cd image-recipe
./build-debian-iso.sh
This will:
- Download Debian Live ISO (if not cached)
- Extract and customize the ISO
- Add Archipelago components
- Create final bootable ISO
Output: results/archipelago-debian-12-x86_64.iso
Build Process
Step 1: Build Backend (Optional)
If you have local changes to the backend:
./scripts/build-backend.sh
This creates:
build/backend/archipelago- Compiled binary
Step 2: Build Frontend (Optional)
If you have local changes to the frontend:
./scripts/build-frontend.sh
This creates:
build/frontend/- Static files
Step 3: Build OS Image
./build-debian-iso.sh
Flashing to USB
Using dd (Recommended)
# macOS
./write-usb-dd.sh /dev/diskN
# Or manually:
sudo dd if=results/archipelago-debian-12-x86_64.iso of=/dev/rdiskX bs=4m status=progress
# Linux
sudo dd if=results/archipelago-debian-12-x86_64.iso of=/dev/sdX bs=4M status=progress
Using Balena Etcher
- Download Balena Etcher
- Select the ISO file
- Select target USB drive
- Click Flash
⚠️ Warning: Double-check the device path! Flashing to wrong device will destroy data.
Installation Methods
1. Live USB Boot
Boot from the USB to run Archipelago in live mode:
- Test the system without installing
- Changes don't persist after reboot
2. Full Disk Installation
From the live environment:
sudo /archipelago/install-to-disk.sh
This will:
- Partition the target disk (GPT with EFI)
- Install Debian via debootstrap
- Install Archipelago components
- Configure bootloader (GRUB)
Default Credentials
Live Mode
- Username:
user - Password:
live
After Installation
- Username:
archipelago - Password:
archipelago
⚠️ Change passwords immediately after installation!
Customization
Environment Variables
# Debian version
DEBIAN_VERSION=bookworm
# Architecture
ARCH=amd64
# Output directory
OUTPUT_DIR=./results
Troubleshooting
Docker Issues (macOS)
Problem: Docker daemon not running
# Start Docker Desktop application
open -a Docker
Problem: Out of disk space
# Clean Docker
docker system prune -a
Build Failures
Problem: Backend build fails
# Check Rust installation
rustc --version
# Install Rust if needed
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Problem: Frontend build fails
# Check Node.js
node --version # Need 18+
# Install dependencies
cd neode-ui
npm install
Image Boot Issues
Problem: Image doesn't boot
- Verify ISO integrity
- Check BIOS/UEFI settings
- Ensure correct architecture (x86_64)
- Try different boot mode (UEFI vs Legacy)
Problem: Services don't start
- Check logs:
journalctl -u archipelago - Verify network:
ip addr - Check Podman:
podman info
Next Steps
After building and flashing:
- Boot the device
- Access web UI: http://device-ip:8100
- Configure network (if needed)
- Install apps via UI
- Set up Bitcoin node (if desired)