diff --git a/.claude/HISTORY.md b/.claude/HISTORY.md index 6ac6f8d5..7b5ec5e5 100644 --- a/.claude/HISTORY.md +++ b/.claude/HISTORY.md @@ -5,6 +5,53 @@ ## 2026-04-28 +### Session 72 — v2.1.1 Release: Build and API Fixes + +**Release:** v2.1.1 — Critical fixes for VirtualBox and ESPRESSObin builds + +**Issues Fixed:** + +1. **Python Dependencies (Debian Bookworm Compatibility)** + - Debian ships pydantic v1, but SecuBox requires v2 + - Added pip upgrade in build scripts: `pydantic>=2.0`, `fastapi>=0.100`, `uvicorn>=0.25` + - Updated `secubox-core` postinst to auto-upgrade on install + +2. **CORS Headers** + - Added CORS headers to `common/nginx/secubox-proxy.conf` + - Fixes cross-origin API requests from web UI + +3. **Login Endpoint Path** + - Fixed `login.html`: `/auth/login` → `/login` + - Affects both main and portal login pages + +4. **Eye Remote Display Imports** + - Fixed `display/__init__.py` to import existing modules only + - Changed service to use `display_manager.py` instead of `main.py` + +5. **Eye Remote Rainbow Dashboard** + - Icons in rainbow circle: BOOT, AUTH, WALL, ROOT, MESH, MIND + - Radar sweep syncs with targeted module glow + - Metric arcs aligned with corresponding icon colors + - Concentric rings: red (outer) → purple (inner) + +**Files Modified:** +- `common/nginx/secubox-proxy.conf` — CORS headers +- `packages/secubox-core/debian/postinst` — pip upgrade +- `packages/secubox-hub/www/login.html` — endpoint fix +- `packages/secubox-hub/www/portal/login.html` — endpoint fix +- `image/build-live-usb.sh` — version constraints +- `image/build-ebin-live-usb.sh` — version constraints +- `image/multiboot/build-amd64-rootfs.sh` — pip upgrade +- `remote-ui/round/agent/display/__init__.py` — import fix + +**Wiki Updated:** +- `Home.md` — v2.1.1 announcement +- `Troubleshooting.md` — API 502/auth fix section +- `Eye-Remote.md` — HyperPixel dashboard info +- `Live-USB-VirtualBox.md` — troubleshooting section + +--- + ### Session 71 — Eye Remote Display System v2.3.0 **Feature:** Complete display state machine with fallback, splash, and radar modes diff --git a/wiki/Eye-Remote.md b/wiki/Eye-Remote.md index 2264a7e4..421688e9 100644 --- a/wiki/Eye-Remote.md +++ b/wiki/Eye-Remote.md @@ -183,6 +183,29 @@ Access at `http://10.55.0.1:8080`: - Boot media status - Storage swap controls +### HyperPixel Round Display (v2.1.1+) + +The Eye Remote supports the Pimoroni HyperPixel 2.1 Round (480×480) for a dedicated dashboard: + +``` +┌────────────────────────────────┐ +│ 🔴 🟠 🟡 🟢 🔵 🟣 │ ← Rainbow icon ring +│ ╭─────╮ │ +│ ╭──│TIME │──╮ │ ← Center clock +│ ╭───│DATE │───╮ │ +│ ╭────│HOST │────╮ │ ← Concentric metric rings +│ ╭─────│ UP │─────╮ │ (red→purple outer→inner) +│ ╰─────╰─────╯─────╯ │ +│ RADAR ⟳ │ ← Rotating radar sweep +└────────────────────────────────┘ +``` + +**Features:** +- 6 module icons in rainbow order (BOOT, AUTH, WALL, ROOT, MESH, MIND) +- Radar sweep syncs with targeted module glow +- Metric arcs aligned with corresponding icon colors +- Concentric rings: red (outer) → purple (inner) + --- ## API Reference diff --git a/wiki/Home.md b/wiki/Home.md index fafdbc97..8cfc7a56 100644 --- a/wiki/Home.md +++ b/wiki/Home.md @@ -6,15 +6,21 @@ Complete security appliance solution ported from OpenWrt to Debian bookworm. Des --- -> **NEW v2.2.3 — Multi-Boot Live OS with Eye Remote Integration** +> **NEW v2.1.1 — Build and API Fixes** > -> Dual-architecture bootable image (ARM64 + AMD64) with RAM-based execution and shared persistent storage. Boot from USB or use Pi Zero Eye Remote as USB gadget to boot ESPRESSObin/MOCHAbin. +> Critical fixes for VirtualBox and ESPRESSObin builds: +> - CORS headers for cross-origin API requests +> - Python dependencies upgraded: pydantic≥2.0, fastapi≥0.100, uvicorn≥0.25 +> - Login endpoint path fixes +> - Eye Remote rainbow dashboard with radar sync > -> **Features:** -> - Boot any ARM64 (U-Boot) or AMD64 (UEFI) system from one USB stick -> - Pi Zero presents multiboot image as USB storage for ESPRESSObin boot -> - RAM-based live execution — minimal I/O, perfect for USB gadgets -> - Shared data partition accessible from both architectures +> See [[Troubleshooting]] for details | [Download v2.1.1](https://github.com/CyberMind-FR/secubox-deb/releases/tag/v2.1.1) + +--- + +> **Multi-Boot Live OS with Eye Remote Integration (v2.2.3)** +> +> Dual-architecture bootable image (ARM64 + AMD64) with RAM-based execution and shared persistent storage. > > See [[Multiboot]] for documentation | [Download v2.2.3](https://github.com/CyberMind-FR/secubox-deb/releases/tag/multiboot-v2.2.3) diff --git a/wiki/Live-USB-VirtualBox.md b/wiki/Live-USB-VirtualBox.md index 2122cb77..13f4dccf 100644 --- a/wiki/Live-USB-VirtualBox.md +++ b/wiki/Live-USB-VirtualBox.md @@ -166,6 +166,18 @@ echo "Wait 30-60 seconds for boot to complete." ## Troubleshooting +### API errors / "Invalid credentials" (v2.1.1 Fix) + +If you see API 502 errors or "Invalid credentials" after login, upgrade Python packages: + +```bash +ssh -p 2222 root@localhost +pip3 install --break-system-packages 'pydantic>=2.0' 'fastapi>=0.100' 'uvicorn>=0.25' +systemctl restart secubox-hub secubox-auth secubox-system +``` + +This issue is fixed in v2.1.1+ images. + ### VM won't boot (black screen) ```bash diff --git a/wiki/Troubleshooting.md b/wiki/Troubleshooting.md index c260ffae..a2b58010 100644 --- a/wiki/Troubleshooting.md +++ b/wiki/Troubleshooting.md @@ -20,6 +20,36 @@ secubox-netdiag ## Common Issues +### API 502 Bad Gateway / Authentication Errors (v2.1.1 Fix) + +**Symptoms:** Web UI shows "Invalid credentials", "NetworkError", or API returns 502 + +**Cause:** Debian bookworm ships pydantic v1, but SecuBox requires pydantic v2. + +**Solutions:** + +1. Upgrade Python dependencies: + ```bash + pip3 install --break-system-packages 'pydantic>=2.0' 'fastapi>=0.100' 'uvicorn>=0.25' + ``` + +2. Restart all SecuBox services: + ```bash + systemctl restart secubox-hub secubox-auth secubox-system + ``` + +3. Verify sockets are created: + ```bash + ls -la /run/secubox/*.sock + ``` + +4. Check service logs: + ```bash + journalctl -u secubox-hub --no-pager -n 20 + ``` + +**Note:** This issue is fixed in v2.1.1+ builds. Upgrade your image or run the pip command above. + ### Cannot Access Web UI **Symptoms:** Browser shows connection refused or timeout