- 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.
132 lines
3.4 KiB
Markdown
132 lines
3.4 KiB
Markdown
# Building Complete Archipelago Node OS
|
|
|
|
## Status: In Progress
|
|
|
|
Currently building the Rust backend for Alpine Linux. Once complete, we'll have a fully functional Archipelago Bitcoin Node OS.
|
|
|
|
## What's Been Completed
|
|
|
|
### ✅ ISO Build System
|
|
- Custom ISO builder using pre-built Alpine Linux
|
|
- Hardware-specific builds (HP ProDesk, Start9, Dell OptiPlex, Generic)
|
|
- Fast builds (~2 seconds)
|
|
- No cross-compilation issues on ARM Mac
|
|
|
|
### ✅ Frontend (Vue.js)
|
|
- Production build complete
|
|
- Location: `image-recipe/build/frontend/`
|
|
- Size: ~14MB compressed
|
|
- Includes: Dashboard, Apps, Marketplace, Container management, Settings
|
|
|
|
### ⏳ Backend (Rust)
|
|
- Currently compiling in Alpine Docker container
|
|
- Native musl build for Alpine Linux
|
|
- Will output single binary: `archipelago`
|
|
- Includes: Container orchestration, RPC API, WebSocket support
|
|
|
|
### ✅ Integration Scripts
|
|
- `build-backend.sh` - Builds Rust backend in Docker
|
|
- `build-frontend.sh` - Builds Vue.js frontend
|
|
- `integrate-archipelago.sh` - Combines everything into ISO
|
|
- `build-custom-iso.sh` - Updated to include backend/frontend
|
|
|
|
## What Will Happen Next
|
|
|
|
Once the backend compiles:
|
|
|
|
1. **Integration Build**
|
|
```bash
|
|
./integrate-archipelago.sh
|
|
```
|
|
This will:
|
|
- Take the compiled backend binary
|
|
- Take the built frontend files
|
|
- Create new ISO with both included
|
|
- Configure nginx to serve UI
|
|
- Create OpenRC service for backend
|
|
- Set up auto-start on boot
|
|
|
|
2. **Result**
|
|
You'll have: `archipelago-3.19-hp-prodesk-x86_64.iso`
|
|
|
|
Which includes:
|
|
- Alpine Linux 3.19 base
|
|
- Podman + container tools
|
|
- Archipelago backend (`/usr/local/bin/archipelago`)
|
|
- Archipelago web UI (`/usr/share/archipelago/web/`)
|
|
- nginx configured on port 8100
|
|
- Backend API on port 8101
|
|
- Auto-start services
|
|
- DHCP networking
|
|
|
|
3. **Boot Experience**
|
|
- Boot from USB
|
|
- Login as root
|
|
- Run `/media/cdrom/archipelago/install.sh`
|
|
- System installs everything automatically
|
|
- Reboot
|
|
- Backend starts automatically
|
|
- Web UI accessible at `http://device-ip:8100`
|
|
|
|
## Features in the Complete OS
|
|
|
|
### Container Management
|
|
- Install containerized apps (Bitcoin Core, LND, etc.)
|
|
- Start/stop/remove containers
|
|
- View logs and status
|
|
- Resource monitoring
|
|
|
|
### Web UI
|
|
- Dashboard with system stats
|
|
- App marketplace
|
|
- Container app management
|
|
- Settings and configuration
|
|
- Onboarding flow
|
|
|
|
### Backend API
|
|
- RPC endpoints for all operations
|
|
- WebSocket for real-time updates
|
|
- Container orchestration
|
|
- App manifest parsing
|
|
- Dependency resolution
|
|
|
|
### Security
|
|
- Rootless Podman containers
|
|
- Separate user account (archipelago)
|
|
- SSH access
|
|
- Firewall ready
|
|
- Encrypted secrets storage (planned)
|
|
|
|
## File Sizes
|
|
|
|
- **Base ISO**: 208 MB (Alpine + packages)
|
|
- **Backend binary**: ~50-80 MB (estimated, includes all deps)
|
|
- **Frontend**: ~14 MB
|
|
- **Final ISO**: ~300 MB (estimated total)
|
|
|
|
## Next Session
|
|
|
|
If the backend build completes:
|
|
1. Run `./integrate-archipelago.sh`
|
|
2. Flash to USB
|
|
3. Boot on HP ProDesk
|
|
4. Test full system
|
|
|
|
If it doesn't complete:
|
|
- Resume the build
|
|
- Docker container maintains build cache
|
|
- Won't need to recompile dependencies
|
|
|
|
## Build Time Estimates
|
|
|
|
- Frontend: 3-4 seconds ✅ DONE
|
|
- Backend (first time): 5-10 minutes ⏳ IN PROGRESS
|
|
- Backend (incremental): 30-60 seconds
|
|
- ISO integration: 2-3 seconds
|
|
- Total: ~10-15 minutes for complete build
|
|
|
|
---
|
|
|
|
**Current Time**: Building backend...
|
|
**Estimated Completion**: 5-10 minutes from start
|