Enhance README and build scripts for hardware-specific optimizations
- Updated README.md to clarify development setup for macOS/Docker and added production build instructions for specific hardware. - Introduced new build scripts for optimized OS images targeting Start9 Server Pure, HP ProDesk 400 G4 DM, and Dell OptiPlex. - Enhanced Dockerfile to specify platform compatibility and improved Alpine profile for Archipelago builds. - Updated configuration files and init scripts to support new hardware profiles and ensure proper service management.
This commit is contained in:
@@ -0,0 +1,225 @@
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────────┐
|
||||
│ ARCHIPELAGO BOOT SEQUENCE │
|
||||
│ Automatic Network Connection & Server Startup │
|
||||
└─────────────────────────────────────────────────────────────────────────┘
|
||||
|
||||
POWER ON
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────────────────────────────────────────────────┐
|
||||
│ STAGE 1: SYSTEM INIT (sysinit) │
|
||||
├─────────────────────────────────────────────────────────────────────────┤
|
||||
│ ✓ Load kernel modules │
|
||||
│ ✓ Initialize device filesystem (/dev) │
|
||||
│ ✓ Detect hardware (CPU, RAM, Storage, Network) │
|
||||
│ ✓ Mount filesystems │
|
||||
└─────────────────────────────────────────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────────────────────────────────────────────────┐
|
||||
│ STAGE 2: BOOT SERVICES (boot) │
|
||||
├─────────────────────────────────────────────────────────────────────────┤
|
||||
│ 00-boot-services.start │
|
||||
│ ├─ Enable networking service │
|
||||
│ ├─ Enable hostname service │
|
||||
│ ├─ Enable syslog service │
|
||||
│ └─ Enable archipelago service │
|
||||
│ │
|
||||
│ ✓ Set hostname: "archipelago-node" │
|
||||
│ ✓ Start system logging │
|
||||
│ ✓ Sync hardware clock │
|
||||
└─────────────────────────────────────────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────────────────────────────────────────────────┐
|
||||
│ STAGE 3: NETWORK CONFIGURATION (boot) │
|
||||
├─────────────────────────────────────────────────────────────────────────┤
|
||||
│ 01-network-setup.start │
|
||||
│ │
|
||||
│ Step 1: Configure Network Interfaces │
|
||||
│ ┌────────────────────────────────────────────────────────┐ │
|
||||
│ │ auto eth0 │ │
|
||||
│ │ iface eth0 inet dhcp │ │
|
||||
│ │ hostname archipelago-node │ │
|
||||
│ │ │ │
|
||||
│ │ # Also configures: enp0s3, enp0s25, ens0 │ │
|
||||
│ └────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ Step 2: Start Networking Service │
|
||||
│ ✓ Bring up Ethernet interface │
|
||||
│ ✓ Send DHCP request │
|
||||
│ ✓ Wait for IP address (max 30 seconds) │
|
||||
│ ✓ Configure default route │
|
||||
│ │
|
||||
│ Step 3: Configure DNS │
|
||||
│ ┌────────────────────────────────────────────────────────┐ │
|
||||
│ │ nameserver 8.8.8.8 # Google DNS │ │
|
||||
│ │ nameserver 8.8.4.4 # Google DNS backup │ │
|
||||
│ │ nameserver 1.1.1.1 # Cloudflare DNS │ │
|
||||
│ └────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ Step 4: Test Internet Connectivity │
|
||||
│ → ping -c 2 8.8.8.8 │
|
||||
│ ✓ Internet connection established │
|
||||
│ │
|
||||
│ Step 5: Display Network Information │
|
||||
│ ┌────────────────────────────────────────────────────────┐ │
|
||||
│ │ Network Configuration: │ │
|
||||
│ │ IP Address: 192.168.1.100/24 │ │
|
||||
│ │ │ │
|
||||
│ │ Access the Archipelago UI at: │ │
|
||||
│ │ http://192.168.1.100:8100 │ │
|
||||
│ └────────────────────────────────────────────────────────┘ │
|
||||
└─────────────────────────────────────────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────────────────────────────────────────────────┐
|
||||
│ STAGE 4: HARDWARE OPTIMIZATION (default) │
|
||||
├─────────────────────────────────────────────────────────────────────────┤
|
||||
│ 00-hardware-detect.start │
|
||||
│ │
|
||||
│ ┌──────────────────────┐ ┌──────────────────────┐ │
|
||||
│ │ CPU Detection │ │ Storage Detection │ │
|
||||
│ ├──────────────────────┤ ├──────────────────────┤ │
|
||||
│ │ • Intel i7-10710U │ │ • NVMe SSD detected │ │
|
||||
│ │ • 6 cores, 12 threads│ │ • Set I/O scheduler │ │
|
||||
│ │ • Load microcode │ │ • Enable TRIM │ │
|
||||
│ └──────────────────────┘ └──────────────────────┘ │
|
||||
│ │
|
||||
│ ┌──────────────────────┐ ┌──────────────────────┐ │
|
||||
│ │ Graphics Detection │ │ Memory Detection │ │
|
||||
│ ├──────────────────────┤ ├──────────────────────┤ │
|
||||
│ │ • Intel UHD Graphics │ │ • 32GB RAM detected │ │
|
||||
│ │ • Load i915 driver │ │ • Configure caching │ │
|
||||
│ │ • Enable accel │ │ • Set limits │ │
|
||||
│ └──────────────────────┘ └──────────────────────┘ │
|
||||
│ │
|
||||
│ ✓ Hardware profile: hp-prodesk (or start9-pure, dell-optiplex) │
|
||||
│ ✓ Log saved to: /var/log/archipelago-hardware.log │
|
||||
└─────────────────────────────────────────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────────────────────────────────────────────────┐
|
||||
│ STAGE 5: ARCHIPELAGO SERVER START (default) │
|
||||
├─────────────────────────────────────────────────────────────────────────┤
|
||||
│ /etc/init.d/archipelago start │
|
||||
│ │
|
||||
│ Pre-Start Checks: │
|
||||
│ ✓ Network is ready (verified) │
|
||||
│ ✓ Create data directories │
|
||||
│ - /var/lib/archipelago/ │
|
||||
│ - /var/lib/archipelago/apps/ │
|
||||
│ - /var/lib/archipelago/secrets/ │
|
||||
│ - /var/lib/archipelago/logs/ │
|
||||
│ - /var/lib/archipelago/backups/ │
|
||||
│ ✓ Set permissions (archipelago:archipelago) │
|
||||
│ │
|
||||
│ Start Backend Server: │
|
||||
│ ┌────────────────────────────────────────────────────────┐ │
|
||||
│ │ $ /usr/bin/archipelago-backend │ │
|
||||
│ │ │ │
|
||||
│ │ Environment: │ │
|
||||
│ │ RUST_LOG=info │ │
|
||||
│ │ ARCHIPELAGO_DATA_DIR=/var/lib/archipelago │ │
|
||||
│ │ ARCHIPELAGO_PORT=8100 │ │
|
||||
│ │ │ │
|
||||
│ │ User: archipelago (unprivileged) │ │
|
||||
│ │ PID: [written to /var/run/archipelago.pid] │ │
|
||||
│ └────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ Backend Components: │
|
||||
│ ┌─────────────────────────────────────────────────┐ │
|
||||
│ │ │ │
|
||||
│ │ ┌──────────────┐ ┌──────────────┐ │ │
|
||||
│ │ │ Rust API │◄────►│ Vue.js UI │ │ │
|
||||
│ │ │ Server │ │ (Static) │ │ │
|
||||
│ │ │ :8100 │ │ │ │ │
|
||||
│ │ └──────┬───────┘ └──────────────┘ │ │
|
||||
│ │ │ │ │
|
||||
│ │ ▼ │ │
|
||||
│ │ ┌──────────────────────────────────┐ │ │
|
||||
│ │ │ Container Orchestration │ │ │
|
||||
│ │ │ (Podman Client) │ │ │
|
||||
│ │ └──────┬───────────────────────────┘ │ │
|
||||
│ │ │ │ │
|
||||
│ │ ▼ │ │
|
||||
│ │ ┌──────────────────────────────────┐ │ │
|
||||
│ │ │ App Management │ │ │
|
||||
│ │ │ - Bitcoin Core │ │ │
|
||||
│ │ │ - Lightning Network │ │ │
|
||||
│ │ │ - Self-hosted apps │ │ │
|
||||
│ │ └──────────────────────────────────┘ │ │
|
||||
│ │ │ │
|
||||
│ └─────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ Post-Start: │
|
||||
│ ✓ Service running │
|
||||
│ ✓ Web UI accessible │
|
||||
│ ✓ Display access URL │
|
||||
└─────────────────────────────────────────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────────────────────────────────────────────────┐
|
||||
│ READY! 🏝️ │
|
||||
├─────────────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ ✅ Ethernet connected via DHCP │
|
||||
│ ✅ Internet connectivity verified │
|
||||
│ ✅ Hardware optimized │
|
||||
│ ✅ Archipelago backend running │
|
||||
│ ✅ Web UI available │
|
||||
│ │
|
||||
│ Access: http://192.168.1.100:8100 │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────────────┘
|
||||
|
||||
═══════════════════════════════════════════════════════════════════════════
|
||||
TIMING (Approximate)
|
||||
═══════════════════════════════════════════════════════════════════════════
|
||||
|
||||
Stage 1: System Init → 5-10 seconds
|
||||
Stage 2: Boot Services → 2-5 seconds
|
||||
Stage 3: Network Configuration → 5-30 seconds (DHCP timeout)
|
||||
Stage 4: Hardware Optimization → 2-5 seconds
|
||||
Stage 5: Archipelago Server → 5-10 seconds
|
||||
|
||||
Total Boot Time: 20-60 seconds (depends on DHCP)
|
||||
|
||||
═══════════════════════════════════════════════════════════════════════════
|
||||
WHAT RUNS AUTOMATICALLY
|
||||
═══════════════════════════════════════════════════════════════════════════
|
||||
|
||||
ON EVERY BOOT:
|
||||
✅ Ethernet connection via DHCP
|
||||
✅ DNS configuration (Google, Cloudflare)
|
||||
✅ Internet connectivity test
|
||||
✅ Hardware detection and optimization
|
||||
✅ Archipelago backend server (port 8100)
|
||||
✅ Web UI serving
|
||||
✅ Container runtime (Podman) ready
|
||||
|
||||
NO MANUAL INTERVENTION REQUIRED!
|
||||
|
||||
═══════════════════════════════════════════════════════════════════════════
|
||||
ACCESSING THE UI
|
||||
═══════════════════════════════════════════════════════════════════════════
|
||||
|
||||
From Local Network:
|
||||
1. Boot the device
|
||||
2. Wait 30-60 seconds
|
||||
3. Find IP address:
|
||||
• Check router DHCP leases
|
||||
• Look for "archipelago-node"
|
||||
• Or check console output
|
||||
4. Open browser: http://[IP-ADDRESS]:8100
|
||||
|
||||
Example:
|
||||
http://192.168.1.100:8100
|
||||
http://192.168.0.50:8100
|
||||
http://10.0.0.100:8100
|
||||
|
||||
═══════════════════════════════════════════════════════════════════════════
|
||||
|
||||
RESULT: Plug in, power on, and access your node! 🚀
|
||||
```
|
||||
Reference in New Issue
Block a user