archy/image-recipe/SUMMARY.md
2026-01-24 22:59:20 +00:00

3.8 KiB

Archipelago OS Image Builder - Implementation Summary

What's Been Implemented

A complete system for building bootable Alpine Linux OS images for Archipelago Bitcoin Node OS, supporting both macOS and Linux build environments.

🎯 Key Features

  1. Multi-Platform Build Support

    • macOS via Docker
    • Linux native (Alpine)
    • Linux via Docker (fallback)
  2. Complete Build Pipeline

    • Backend compilation (Rust)
    • Frontend build (Vue.js)
    • APK package creation
    • Alpine image generation
    • ISO and disk image output
  3. Alpine Profile System

    • Custom mkimage profile
    • Systemd and OpenRC support
    • First boot automation
    • Service configuration
  4. Integration

    • Backend service installation
    • Frontend file deployment
    • Podman configuration
    • Network setup

📁 File Structure

image-recipe/
├── build-alpine-iso.sh          # Main orchestrator
├── build-macos.sh               # macOS wrapper
├── build-linux.sh               # Linux wrapper
├── build-alpine-native.sh       # Native Alpine build
├── Dockerfile.build             # Build container
├── docker-compose.build.yml     # Docker Compose config
├── Makefile                     # Build shortcuts
├── alpine-profile/              # Custom Alpine profile
│   ├── mkimg.archipelago.sh     # Profile definition
│   └── overlay/                 # Files to include
│       └── etc/                 # System configs
├── scripts/                     # Build helpers
│   ├── build-backend.sh
│   ├── build-frontend.sh
│   ├── create-backend-apk.sh
│   ├── install-archipelago.sh
│   ├── convert-iso-to-disk.sh
│   └── check-dependencies.sh
└── docs/                        # Documentation
    └── building-os-images.md

🚀 Quick Start

On Your macOS Machine

cd image-recipe
./build-macos.sh

On HP ProDesk 400 G4 DM (Linux)

cd image-recipe
./build-linux.sh

📦 Build Output

After successful build:

  • ISO Image: results/archipelago-0.1.0-x86_64.iso

    • Bootable from USB/DVD
    • ~200-500MB
  • Disk Image (optional): results/archipelago-0.1.0-x86_64.img

    • Ready for dd flashing
    • ~4GB (expandable)

🔧 What Happens During Build

  1. Dependency Check: Verifies Rust, Node.js, Docker
  2. Backend Build: Compiles Rust binary → build/backend/archipelago
  3. Frontend Build: Builds Vue.js → build/frontend/
  4. APK Creation: Packages backend → apks/archipelago-backend-*.apk
  5. Alpine Build:
    • Clones Alpine aports (first time only)
    • Creates custom profile
    • Builds base Alpine image
  6. Integration: Installs Archipelago components
  7. Output:** Creates ISO/image file

⚙️ Configuration

Environment variables:

ARCHIPELAGO_VERSION=0.1.0    # Version
ALPINE_VERSION=3.19         # Alpine version
ARCH=x86_64                 # Architecture
BUILD_TYPE=iso              # iso or disk
OUTPUT_DIR=./results        # Output location

📋 Prerequisites

macOS

  • Docker Desktop
  • 10GB+ disk space
  • 8GB+ RAM recommended

Linux

  • Alpine Linux (preferred) OR Docker
  • 10GB+ disk space
  • Build tools (auto-installed)

🎉 Ready to Build!

The system is complete and ready for testing. Start building with:

cd image-recipe
./build-macos.sh    # On macOS
# or
./build-linux.sh    # On Linux

First build will take 30-60 minutes (downloads Alpine aports). Subsequent builds are faster.

📚 Documentation