- Replaced OS-specific build method with a custom ISO builder in the build-for-hardware.sh script. - Updated output file naming to reflect the correct Alpine version in the build process. - Adjusted build dates in hardware configuration files for HP ProDesk, merged, and Start9 Pure profiles to the latest timestamp.
5.2 KiB
5.2 KiB
✅ NEW APPROACH: Alpine Overlay ISO (apkovl)
What Changed
Previous method: Modified Alpine ISO contents directly → broke boot process
New method: Use Alpine's apkovl (Alpine Package Overlay) system → proper Alpine boot
How It Works
- ✅ Base Alpine ISO: Untouched, boots normally
- ✅ Overlay tarball:
archipelago.apkovl.tar.gzon ISO root - ✅ Boot parameter:
apkovl=/archipelago.apkovl.tar.gztells Alpine to load it - ✅ Auto-extracted: Alpine automatically extracts overlay at boot
What's Included
In the Overlay (59MB):
- Archipelago backend (5.7MB Rust binary)
- Vue.js frontend (web UI)
- 21 app manifests (Bitcoin, Lightning, Web5, etc.)
- Installation script:
/root/install-archipelago.sh - Welcome message: Shows at login
New ISO Details
Location: /Users/dorian/Projects/archy/image-recipe/results/archipelago-3.19-hp-prodesk-uefi-x86_64.iso
Size: 267MB (smaller than before!)
Created: Jan 31, 2026 22:03
Boot support:
- ✅ UEFI
- ✅ Legacy BIOS
- ✅ Hybrid bootable
How to Flash
Method 1: Balena Etcher
- Open Etcher
- Select the new ISO
- Flash to USB
Method 2: Terminal (dd)
diskutil list
diskutil unmountDisk /dev/diskN
sudo dd if=/Users/dorian/Projects/archy/image-recipe/results/archipelago-3.19-hp-prodesk-uefi-x86_64.iso of=/dev/rdiskN bs=1m status=progress
diskutil eject /dev/diskN
Expected Boot Sequence
1. Boot from USB
- F9 → Select "UEFI - General UDISK"
- Alpine boots normally ✅
- Overlay auto-loaded ✅
2. Login Prompt
Welcome to Alpine Linux 3.19
╔═══════════════════════════════════════════════════════════╗
║ ║
║ 🏝️ ARCHIPELAGO BITCOIN NODE OS ║
║ ║
║ To install to disk, login as root and run: ║
║ ║
║ # setup-alpine ║
║ # /root/install-archipelago.sh ║
║ ║
╚═══════════════════════════════════════════════════════════╝
localhost login: _
3. Login as root
- Username:
root - Password: (just press Enter)
4. Install to Disk
Option A: Quick Install (Recommended)
# Run automated installer
/root/install-archipelago.sh
This will:
- Install all required packages (Podman, nginx, etc.)
- Create
archipelagouser - Configure networking (DHCP)
- Set up all services
- Install backend, frontend, and app manifests
Option B: Manual Install
# First, install Alpine to disk
setup-alpine
# Answer the prompts:
# - Keyboard layout: us
# - Hostname: archipelago
# - Network: dhcp
# - Root password: (set one)
# - Timezone: (your timezone)
# - Disk: sda (your internal disk)
# - Mode: sys (install to disk)
# After Alpine is installed, run:
/root/install-archipelago.sh
# Reboot
reboot
5. After Reboot
- Remove USB drive
- Login as
archipelago/archipelago - Change password:
passwd - Access web UI:
http://<your-ip>:8100
Why This Works
Alpine Linux has a built-in overlay system called apkovl for customizing live systems:
- Preserved boot flow: Base Alpine ISO boots normally
- Automatic overlay: Alpine detects and loads
archipelago.apkovl.tar.gz - No manual mounting: Everything just works
- Standard Alpine: Uses official Alpine mechanisms, not hacks
Troubleshooting
If you still get emergency shell:
- Type:
ls / - You should see
archipelago.apkovl.tar.gzin the root - Type:
exit- Alpine should continue booting
If overlay doesn't load:
At the boot prompt, ensure you see:
apkovl=/archipelago.apkovl.tar.gz
To manually load overlay:
cd /
tar xzf archipelago.apkovl.tar.gz
mv archipelago-overlay/* /
/root/install-archipelago.sh
This is the proper Alpine Linux way to do it! Flash the new ISO and try booting. 🚀
Technical Details
Overlay Structure:
archipelago.apkovl.tar.gz
└── archipelago-overlay/
├── etc/
│ └── local.d/
│ └── 00-archipelago-welcome.start
├── root/
│ └── install-archipelago.sh
├── usr/
│ ├── local/bin/
│ │ └── archipelago
│ └── share/archipelago/web/
│ └── (Vue.js files)
└── var/lib/archipelago/
└── manifests/
└── (21 app manifests)
Boot Parameters:
- GRUB:
apkovl=/archipelago.apkovl.tar.gz - Syslinux:
apkovl=/archipelago.apkovl.tar.gz
Alpine's initramfs automatically:
- Detects the boot media
- Finds
archipelago.apkovl.tar.gz - Extracts it to
/(root) - Continues normal boot
This is the official Alpine Linux way to create custom live systems!