- Added instructions to README.md for building an ISO from source and flashing it to USB. - Introduced a new RPC method for package installation, including security checks and container management. - Updated Docker and Podman integration in build scripts to support both container runtimes. - Enhanced Nginx configuration for improved timeout settings and WebSocket support. - Added new app metadata for additional applications in the Docker package scanner.
6.0 KiB
6.0 KiB
Archipelago Build System - Summary
✅ What We Created Today
1. Complete One-Script Build System (build-iso-complete.sh)
- Handles backend compilation (Rust)
- Handles frontend build (Vue.js)
- Creates bootable ISO image
- Supports local and remote builds
- Smart artifact caching
- Full error checking and validation
2. Comprehensive Documentation (BUILD-GUIDE.md)
- Quick start guide
- Detailed build options
- Troubleshooting section
- Development workflow
- CI/CD integration examples
3. Fixed ISO Auto-Start Issue
- Identified root cause:
read -pprompt blocking auto-launch - Restored working auto-start logic from previous builds
- Menu now launches automatically after 1 second
🚀 How to Use
Quick Build
# One command - builds everything and creates flashable ISO
./build-iso-complete.sh --remote archipelago@192.168.1.228
Flash to USB
# After build completes
./flash-to-usb.sh /dev/diskN
📦 What the Build Process Does
Source Code
│
├─→ Backend (Rust) ────→ Binary (10MB)
│ ↓
├─→ Frontend (Vue) ────→ Assets (5MB)
│ ↓
└─→ ISO Builder ────────→ Bootable ISO (1.2GB)
↓
Flash to USB
↓
Boot & Install
Build Steps
-
Backend Compilation (Rust → Native Binary)
core/archipelago/→image-recipe/build/backend/archipelago- Can build locally or on remote server
- Incremental builds supported
-
Frontend Build (Vue.js → Static Assets)
neode-ui/→image-recipe/build/frontend/- Includes PWA manifest
- Optimized production build
-
ISO Creation (Debian Live)
- Downloads base Debian 12 ISO (~352MB)
- Integrates backend + frontend
- Configures auto-start services
- Creates bootable image
-
Verification
- Validates all artifacts
- Generates MD5 checksum
- Reports sizes
🎯 Key Features
✅ Smart Caching
- Skip backend build:
--skip-backend - Skip frontend build:
--skip-frontend - Debian ISO cached after first download
✅ Remote Build Support
- Build on development server (recommended)
- Automatically syncs code
- Copies artifacts back
✅ Clean Build Option
--cleanflag removes all artifacts- Ensures fresh compilation
✅ Convenience Scripts
build-iso-complete.sh- Main build scriptflash-to-usb.sh- Quick USB flashing- Auto-generated after each build
📊 Build Time
| Build Type | Time |
|---|---|
| First build (clean) | 15-20 min |
| Incremental (code changes) | 3-5 min |
| ISO only (skip backend/frontend) | 2-3 min |
Breakdown:
- Debian ISO download: 5-10 min (first time only)
- Backend compile: 3-5 min (first time), ~30sec (incremental)
- Frontend build: 1-2 min
- ISO creation: 2-3 min
🔧 Development Workflow
Making Backend Changes
# Edit Rust code in core/archipelago/src/
# Then rebuild:
./build-iso-complete.sh --remote HOST --skip-frontend
Making Frontend Changes
# Edit Vue.js code in neode-ui/src/
# Then rebuild:
./build-iso-complete.sh --remote HOST --skip-backend
Making Both Changes
./build-iso-complete.sh --remote HOST
📝 Current Build Status
✅ Completed
- Build system scripts created
- Documentation written
- Auto-start issue fixed
- README updated
🔄 In Progress
- ISO build running on
archipelago@192.168.1.228 - Status: Downloading Debian ISO (34% complete)
- ETA: ~10 more minutes
⏳ Next
- Test new ISO on Dell OptiPlex
- Verify auto-start works
- Confirm Web UI accessible
🎯 What This Solves
Before
- Manual backend compilation
- Manual frontend build
- Manual file copying
- Complex multi-step process
- Easy to miss steps
- Inconsistent builds
After
- ✅ One command builds everything
- ✅ Automatic artifact management
- ✅ Smart caching for speed
- ✅ Consistent, reproducible builds
- ✅ Clear error messages
- ✅ Build verification
📂 File Structure
archy/
├── build-iso-complete.sh # Main build script (NEW)
├── flash-to-usb.sh # USB flash helper (auto-generated)
├── BUILD-GUIDE.md # Build documentation (NEW)
├── README.md # Updated with build info
├── core/archipelago/ # Rust backend
├── neode-ui/ # Vue.js frontend
└── image-recipe/
├── build/ # Build artifacts
│ ├── backend/ # Compiled binary
│ └── frontend/ # Built assets
├── results/ # Final ISO output
│ └── archipelago-debian-12-x86_64.iso
└── build-debian-iso.sh # ISO creation script
🔐 Security
Build system is designed to be secure:
- No hardcoded credentials
- SSH key authentication recommended
sudoonly when required (ISO creation)- Build artifacts isolated in
build/directory - Clean separation of build/source directories
🌟 Future Enhancements
Potential improvements:
- GitHub Actions CI/CD workflow
- Automatic version numbering
- Build signing for verification
- Multi-architecture support (ARM64)
- Docker-based builds
- Build caching improvements
- Parallel compilation
📚 Documentation
- BUILD-GUIDE.md - Comprehensive build guide
- README.md - Project overview with build quick start
- build-iso-complete.sh - Inline help with
--helpflag
🎉 Result
You now have a production-grade build system that:
- ✅ Builds from source with one command
- ✅ Handles all dependencies automatically
- ✅ Validates output
- ✅ Creates flashable ISO
- ✅ Supports iterative development
- ✅ Well-documented
- ✅ Easy to extend
Next step: Once the current ISO build completes, test it on the Dell OptiPlex to verify auto-start works!