Commit Graph

620 Commits

Author SHA1 Message Date
6b3a9eb32d feat(migration): Add OpenWrt → SecuBox-DEB migration tools
Migration Data Saver v1.0.0:
- migration-export.sh: SSH export from SecuBox-OpenWrt
- migration-import.sh: Import with transformations + rollback
- migration-transform.py: UCI → TOML/netplan/nftables converter

Supported modules: network, firewall, wireguard, crowdsec, dhcp,
haproxy, nginx, certs, content, vhosts, users, state

Features:
- UCIParser for OpenWrt config format
- NetworkTransformer: UCI → netplan YAML
- FirewallTransformer: UCI → nftables rules
- DHCPTransformer: UCI → dnsmasq.conf
- AES-256 archive encryption
- SHA256 checksums
- Pre-import rollback snapshots (4R pattern)

Also adds plan for Eye Remote Recovery Boot System (kwboot, mvebu64boot,
Tow-Boot UEFI integration for MOCHAbin/ESPRESSObin recovery).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-29 12:45:47 +02:00
4bb573701e docs(faq): Mark issue #34 as resolved
All fixes for VM-x64 kiosk issues are in place:
- Chromium sandbox: --no-sandbox flag
- Unix socket: Changed to TCP port 8001
- Menu endpoint: Added public /api/v1/hub/public/menu
- Pydantic 1.x: Optional[HTTPAuthorizationCredentials] syntax

Closes #34

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-29 12:45:35 +02:00
a30397a945 docs(faq): Update issue #34 with fix resolution
- Menu/sidebar "Invalid menu data" error is now FIXED
- Added resolution steps and explanation
- Reference commit b2c9f01 for the fix

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-29 12:13:43 +02:00
b2c9f01a29 fix(hub): Add public menu endpoint for WebUI sidebar
- Add /api/v1/hub/public/menu endpoint (no auth required)
- Update sidebar.js to use public menu endpoint
- Resolves "Failed to load menu: Invalid menu data" error
- The protected /api/v1/hub/menu endpoint still requires JWT

The WebUI sidebar needs to load the menu before user authentication.
This adds a public version of the menu endpoint that returns the
same data without requiring a JWT token.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-29 12:00:17 +02:00
c4b7ac0f7f feat(eye-remote): Add multi-mode display system v1.9.0
Eye Remote Interactive UI enhancements:
- TTY mode: Serial terminal display from /dev/ttyGS0
- Flash mode: Progress bar with speed/ETA for USB transfers
- Auth mode: QR code generation for backup authentication
- Mode detection via /etc/secubox/gadget-mode

Hub service VM compatibility fix:
- Changed from Unix socket to TCP port 8001
- Updated nginx configs for TCP proxy
- Fixes 502 errors in VirtualBox VMs

Also includes:
- FAQ/Troubleshooting wiki page with GitHub issue links
- Kiosk launcher --no-sandbox fix for VMs
- Profile Generator GUI mockup

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-29 10:24:02 +02:00
33304e7b6f feat(build): Add kiosk mode + VirtualBox setup + Profile Generator architecture
VM-x64 Build Improvements:
- Enable kiosk mode by default with GRUB menu entries
- Increase image size to 8GB (5.5GB root) for full package set
- Add proper EFI boot configuration with 3 boot modes
- Pre-generate SSL certificates during build
- Add TTY2 autologin for emergency console access

VirtualBox Support:
- Add scripts/vbox-setup.sh for automated VM setup
- Add wiki/VirtualBox-Setup.md with comprehensive guide
- Support bridged, NAT, and host-only network modes
- Auto-detect network adapter for bridged mode

Architecture Documentation:
- Add docs/architecture/profile-generator.md (v0.2)
- Define tier × board × flavors resolution model
- Document 3 CLI tools: secubox-gen, secubox-build, secubox-fetch
- Add Phase 12-14 roadmap alignment for Ulule Campaign 1

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-29 09:16:36 +02:00
6f72146a4f fix(auth): Use Optional syntax for Pydantic 1.x compatibility
The require_jwt dependency used Python 3.10+ union syntax
(HTTPAuthorizationCredentials | None) with Annotated, which
causes FastAPI 0.92/Pydantic 1.10 to incorrectly require a
request body on GET endpoints.

Changed to Optional[HTTPAuthorizationCredentials] = Depends(_bearer)
which is compatible with older FastAPI/Pydantic versions.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-29 07:24:20 +02:00
1b7669124d feat(eye-remote): Implement OTG features 3-5 (gadget control, storage sync, setup wizard)
Complete Eye Remote OTG features implementation:

Feature 3 - Gadget Mode Control:
- Add gadget_config.py for TOML-based USB gadget configuration
- Add gadget_switcher.py for mode switching via configfs
- Add gadget_gesture.py for touch-based mode selection
- Add eye-gadget-switch.sh shell script for actual mode changes
- Add gadget.toml default configuration

Feature 4 - Storage Sync:
- Add storage_manager.py for USB mass storage partition management
- Add backup_manager.py with AES-256 encrypted backups
- Add config_sync.py for bidirectional SecuBox config sync
- Add storage.py API routes for backup/restore/sync operations

Feature 5 - Self-Setup Portal:
- Add setup.py wizard controller with 7-step state machine
- Add setup_wizard.py display renderer for HyperPixel round screen
- Add setup.py API routes for wizard navigation and configuration
- Steps: Welcome, Network, Security, Services, Mesh, Verify, Complete

API endpoints added:
- /gadget: status, mode, modes, config
- /storage: info, mount, files, backup, export, import
- /setup: status, start, next, back, detect, verify, complete

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-29 06:41:23 +02:00
fbae4a7660 docs(wiki): Update for v2.1.1 release
- Home.md: Add v2.1.1 release announcement
- Troubleshooting.md: Add API 502/pydantic fix section
- Eye-Remote.md: Add HyperPixel round dashboard documentation
- Live-USB-VirtualBox.md: Add pydantic troubleshooting
- HISTORY.md: Document Session 72 changes

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-28 20:57:11 +02:00
a697925a3f fix(build): Upgrade Python deps + CORS + login endpoint fixes
- Add CORS headers to nginx secubox-proxy.conf for cross-origin API requests
- Fix login.html endpoints: /auth/login -> /login
- Upgrade Python deps in build scripts: pydantic>=2.0, fastapi>=0.100, uvicorn>=0.25
- Add pip upgrade in secubox-core postinst for Debian bookworm compatibility
- Fix display/__init__.py to import existing modules only

Fixes authentication and API issues in VBox and ebin builds.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-28 20:53:40 +02:00
d34b07db33 feat(eye-remote): Reorder rings + fix arc-icon color alignment
- Rings order (outer→inner): rouge, orange, jaune, vert, bleu, violet
- MODULES array reordered: BOOT, AUTH, WALL, ROOT, MESH, MIND
- Fixed PIL angles for arc bases to face matching colored icons

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-28 18:06:30 +02:00
bb73adfede feat(eye-remote): Align metric arcs with icon directions
- Each colored arc now points toward its corresponding icon
- Fixed green/purple and red/yellow position mapping

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-28 17:47:54 +02:00
3e1818be56 feat(eye-remote): Rainbow icon layout with radar sync
- Icons in circle: rouge, orange, jaune, vert, bleu, violet
- Color fixes: BOOT=red, AUTH=orange, WALL=yellow
- Direct radar targeting sync (no offset)
- Complementary colors opposite each other

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-28 17:43:28 +02:00
40d66e222d feat(eye-remote): v2.3.0 - Auto-fallback dashboard with splash
- Remove old display modes (mode_dashboard, mode_flash, mode_gateway, mode_local, renderer)
- Add display_manager.py with boot/halt splash screens
- Update fallback_manager.py with double-buffered API fetch
- Fix icon/radar alignment (-1 offset)
- Enable ONLINE mode with local metrics fallback when API unavailable
- Add logo_fallback.py for endless animated logo
- Bump version to 2.3.0

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-28 16:39:59 +02:00
aa47157a00 feat(system): Add public /metrics endpoint for Eye Remote Dashboard
- GET /api/v1/system/metrics returns all metrics without JWT
- CPU, MEM, DISK, LOAD, TEMP, WIFI for 6 module rings
- Extended metrics: uptime, network I/O, connections, processes
- Compatible with Eye Remote HyperPixel 2.1 Round display

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-28 15:43:29 +02:00
787af5f89d feat(eye-remote): Add API metrics and radar-targeted module display
- Fetch metrics from SecuBox gateway API (OTG/WiFi fallback)
- Radar sweep targets icons - highlights current module
- Display specific metrics for targeted module in center
- OFFLINE: single centered icon cycling with its metric value
- ONLINE: all icons with targeted one highlighted + metrics
- Module-specific metrics mapping (CPU/MEM/DISK/LOAD/TEMP/NET)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-28 15:41:42 +02:00
f7beb33d44 feat(eye-remote): Improve dashboard with 48px icons and cycling mode
- Use 48px PNG icons (double size) for better visibility
- Icons positioned further from center (r=62)
- OFFLINE mode: same radar with single cycling icon (2s interval)
- ONLINE mode: all 6 icons displayed in hexagon
- Remove central texts (SECUBOX, time, status)
- Add cursor hiding on framebuffer console
- Tube-style metric arcs (darker outside, lighter inside)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-28 15:36:29 +02:00
3f9bc2f41f feat(eye-remote): Add tube-style arcs and PNG module icons
- Thinner rings (14px) with larger center area
- Tube effect: darker outside, lighter inside highlight
- Load PNG icons (22px) for center and cube faces
- Radar sweep colored by crossed metric rings
- Static icon positions in ONLINE mode (no rotation)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-28 15:30:06 +02:00
34208d15ab refactor(eye-remote): Clean radar display - remove shadows and dots
- Remove all shadow effects for CPU efficiency
- Remove garbage dots at arc endpoints
- Remove alpha transparency (causes rendering issues)
- Simplify sweep line rendering
- Add metric-blended color to radar sweep
- Clean center hub and icon rendering
- Keep dice for OFFLINE, icons for ONLINE modes

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-28 15:22:29 +02:00
ea107a5d0a feat(eye-remote): Add 2.5D lighting with sweep as light source
Display improvements:
- Real Pi Zero metrics (CPU, MEM, DISK, LOAD, TEMP, NET)
- Logarithmic scale for LOAD and NETWORK metrics
- 2.5D depth effect with shadows and highlights
- Sweep line acts as dynamic moving light source
- Shadows cast opposite to sweep direction
- Specular highlights intensify when facing light
- Rainbow clock dots with 3D sphere effect
- Inset center hub with glossy edge
- Status LED with glass reflection

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-28 15:05:55 +02:00
61f0df1957 feat(eye-remote): Add display manager with logo fallback
Display priority system:
1. First boot sensor - touchpad noise calibration
2. Fallback manager - main OFFLINE/ONLINE dashboard
3. Logo fallback - endless breathing phoenix animation

Logo is the ultimate fallback when all dashboards stop.
Display manager auto-restarts crashed displays.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-28 14:57:16 +02:00
dd384da66a feat(eye-remote): Add display state machine with splash and fallback modes
Display system for Pi Zero Eye Remote (HyperPixel 2.1 Round 480x480):

Splash Screen (splash.py):
- Animated phoenix logo for boot/halt/start/reboot states
- Pulsing glow effects with fire colors
- Progress indicator ring with rotating dots
- Fallback phoenix symbol if logo image missing

Fallback Display Manager (fallback_manager.py):
- Connection state detection (OTG 10.55.0.1, WiFi secubox.local)
- Four modes: OFFLINE, CONNECTING, ONLINE, COMMUNICATING
- Local metrics radar with 6 concentric rings
- 3D rotating cube with module icons when connected
- Rainbow sweep line animation

Touch Analysis Tools:
- touch_analyzer.py: Noise pattern analysis (Y-axis oscillation at stable X)
- touch_calibrate.py: Corner target display for manual calibration
- touch_filter.py: X-stable noise filtering

Radar Variants:
- radar_flashy.py: Vibrant colors with 3D cube
- radar_concentric.py: Balanced metric arcs centered at 12 o'clock
- radar_rainbow.py: Rainbow colorization with sweep
- radar_full.py: Complete feature set

Also includes:
- Hardware Smart-Strip module specs (SBX-STR-01)
- Host configuration for USB OTG network
- Systemd service for USB auto-mode

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-28 14:48:00 +02:00
e73039c633 fix(eye-remote): Auto-detect framebuffer format (32-bit BGRA)
HyperPixel 2.1 Round uses 32-bit BGRA framebuffer, not 16-bit RGB565.
The renderer now auto-detects the bits-per-pixel and converts:
- 32 bpp: BGRA32 (HyperPixel DPI displays)
- 24 bpp: BGR
- 16 bpp: RGB565

This fixes the "two small circles" display bug.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-28 11:27:13 +02:00
dc9c41188f fix(eye-remote): Copy agent subdirectories and add missing deps
Build script improvements:
- Copy agent/display/, agent/secubox/, agent/system/, agent/web/
  subdirectories (were missing, causing import errors)
- Add pip install for httpx, fastapi, uvicorn, websockets
  (not available in Debian repos)
- Disable old fb-dashboard service (use secubox-eye-agent instead)
- Add vt.global_cursor_default=0 to cmdline.txt to hide cursor
  (keeps tty for console access)

This fixes the agent crash loop on first boot.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-28 11:17:24 +02:00
905db3997c fix(eye-remote): Remove SecuBox slipstream and fix APT errors
Eye Remote is a standalone gadget addon - it should not install
SecuBox packages. It connects to SecuBox via USB OTG and displays
metrics from the main appliance.

Changes:
- Remove entire SecuBox package slipstream section (was erroneously
  trying to install amd64 packages on armhf Pi Zero)
- Add APT/dpkg cleanup before package installation to fix corruption
  from previous failed builds
- Fix removes/cleans corrupted apt lists and dpkg status

This fixes GitHub Actions builds that were failing due to APT errors
in the QEMU chroot environment.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-28 10:54:47 +02:00
555600d5dd fix(multiboot): Ensure kernel files are properly copied to EFI partition
- Fix glob pattern in bash test (glob in [[ -f ]] doesn't work correctly)
- Use find command instead of glob for reliable kernel detection
- Add fallback to extract ARM64 kernel from live USB image if not in rootfs
- Add verification step in GitHub Actions to check boot files after build
- Sort kernel files by version to get latest when multiple exist

Fixes missing vmlinuz/Image on multiboot USB issue.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-27 19:29:09 +02:00
372c6e32d6 feat(scripts): Add flash-multiboot.sh download/flash tool
- Download latest multiboot image from GitHub releases
- SHA256 checksum verification
- Flash to USB with progress and confirmation
- Supports --list, --download, --release, --force options
- Document in scripts/README.md

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-27 19:12:23 +02:00
55d36c66af docs(wiki): Add Device Categories page for 6-icon system
- Add Device-Categories.md documenting AUTH→MESH Hamiltonian path
- Document color palette, HID mapping, I²C registers
- Update _Sidebar.md with new WALL — Hardware section
- Link to Smart-Strip and Eye-Remote device pages

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-27 19:10:27 +02:00
32fecbf010 feat(hardware): Add Smart-Strip HMI module (SBX-STR-01) + fix lite profile build
Smart-Strip v1.1:
- RP2350A MCU with TrustZone-M + AT42QT2120 touch IC
- 6× RGB LEDs (SK6812-MINI-E) + 6 capacitive touch zones
- Dual-mode: USB-C 2.0 (HID+CDC) / I²C (0x42)
- Hamiltonien sweep AUTH→MESH following SecuBox charte
- Parser CDC with whitelist grammar (no eval, no dynamic alloc)
- Interactive HTML simulator included

Build fixes:
- Skip X11/kiosk packages for SECUBOX_LITE=1 profiles
- Skip netdata/glances for lite profiles (ESPRESSObin)
- Skip LXC for lite profiles (limited storage)
- ESPRESSObin image now fits in 3584M (548M compressed)

Files:
- docs/hardware/smart-strip-v1.1.md (550-line spec)
- docs/hardware/smart-strip/simulator.html
- packages/secubox-smart-strip/firmware/{parser,ring_buffer}.{c,h}
- packages/secubox-smart-strip/host/secubox_smart_strip.py
- wiki/Smart-Strip.md

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-27 19:03:08 +02:00
55166bb258 fix(build): Move complex Python packages to post-debootstrap
python3-cryptography and python3-jose fail during debootstrap due
to complex dependencies. Moving to post-debootstrap apt-get install.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-27 17:12:21 +02:00
bfe2e9cb98 release: Version 1.9.0
Changes in this release:
- Added comprehensive package dependencies to all build scripts
- Firmware images now fully ready with all deps pre-installed
- Fixed package conflicts (iputils-arping, python3-zmq)
- Build scripts include: Python deps, network tools, security
  services (crowdsec, netdata, glances), X11 packages

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-27 17:09:29 +02:00
6149354fed fix(build): Move python3-zmq to post-debootstrap installation
python3-zmq has complex dependencies that fail during debootstrap.
Moving it to post-debootstrap apt-get installation resolves this.

Also removed from INCLUDE_PKGS in build-image.sh - installed via pip.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-27 17:06:47 +02:00
b4415de8a7 fix(build): Use iputils-arping instead of arping
The 'arping' and 'iputils-arping' packages conflict with each other.
Using iputils-arping which provides the arping command needed by
the network fallback scripts.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-27 17:00:32 +02:00
cadd993862 fix(build): Add all missing package dependencies to build scripts
All build scripts now include comprehensive package lists so firmware
images are fully ready with all dependencies pre-installed. No need
for apt --fix-broken install after boot.

Added packages:
- Python deps: python3-fastapi, python3-uvicorn, python3-httpx,
  python3-psutil, python3-aiosqlite, python3-cryptography,
  python3-jinja2, python3-jwt, python3-aiofiles, python3-pil,
  python3-tomli, python3-pydantic, python3-jose, python3-toml,
  python3-netifaces, python3-zmq
- Network tools: bridge-utils, traceroute, dnsutils, whois, mtr-tiny,
  nmap, arping, avahi-daemon, avahi-utils, haproxy, qrencode
- Services: crowdsec, glances, netdata, mosquitto, coturn, lxc
- X11 packages: kbd, xinit, xserver-xorg-core, chromium, unclutter,
  x11-xserver-utils
- Additional pip: pillow, zmq, pyjwt, textual

Files updated:
- image/build-image.sh (main ARM/x64 builder)
- image/build-live-usb.sh (x64 live USB)
- image/build-rpi-usb.sh (Raspberry Pi ARM64)
- image/build-ebin-live-usb.sh (ESPRESSObin ARM64 live)
- image/profiles/x64-live.conf (profile with package lists)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-27 16:51:56 +02:00
b115e966b1 fix(network): Remove dummy0 interface causing routing issues
The dummy0 interface was creating unwanted default routes that
interfered with proper network connectivity.

Removed from:
- board/espressobin-v7/netplan/00-secubox.yaml
- board/espressobin-ultra/netplan/00-secubox.yaml
- board/mochabin/netplan/00-secubox.yaml
- image/build-image.sh (systemd-networkd config)
- image/build-live-usb.sh (systemd-networkd config)
- image/profiles/x64-live.conf (kiosk dummy network)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-27 16:45:31 +02:00
d42745aac3 feat(live-boot): Complete live RAM boot implementation v2.2.4-live
- Install live-boot package and rebuild initramfs with live-boot scripts
- Create squashfs filesystem (878MB) on data partition sda4
- Update boot.scr with live boot parameters (boot=live, toram)
- Fix wiki sidebar links from [[Page|Display]] to [Display](Page)
- Add Eye-Remote wiki page documentation
- Add sync-wiki.sh script for wiki repository sync
- Add patch-multiboot-efi.sh for post-build EFI patching

Partition layout:
- sda1 (512MB): EFI with kernel, initrd, dtbs, boot.scr
- sda2 (3GB): ARM64 rootfs reference
- sda3 (3GB): x86 rootfs for VirtualBox/QEMU
- sda4 (9.5GB): Data + /live/filesystem.squashfs

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-27 13:30:50 +02:00
8a473cc1c2 docs(wiki): Add Multiboot Live OS announcement and documentation
- Add announcement banner on wiki home for v2.2.3 multiboot release
- Create wiki/Multiboot.md with full multiboot documentation
- Add Multiboot and Eye Remote links to sidebar navigation
- Update sidebar version to v2.2.3
- Document Eye Remote Pi Zero as USB gadget for ESPRESSObin boot
- Add partition layout, boot flow, and troubleshooting docs

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-27 11:22:41 +02:00
2e24fbb5fd ci(multiboot): Add GitHub Action for multiboot image builds
- Create build-multiboot.yml workflow with manual dispatch
- Support configurable image sizes (8/16/32GB)
- Build .deb packages first, then create multiboot image
- QEMU user-mode for cross-arch debootstrap
- XZ compression and GitHub Release integration
- Optional desktop environment inclusion

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-27 11:04:28 +02:00
6d58ae0ac6 fix(multiboot): Use local deb slipstream instead of apt repo
- Removed apt.secubox.in dependency (not ready)
- Install SecuBox packages from output/debs/ directory
- Handles missing debs gracefully

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-27 10:40:04 +02:00
494e6def67 fix(multiboot): Fix set -e early exit with [[ ]] && pattern
- Changed [[ -z "$VAR" ]] && err to if/then/fi pattern
- This prevents early exit when condition is false with set -e
- Removed --minimal flag to install full SecuBox packages

Note: SecuBox packages on AMD64 still require apt.secubox.in SSL fix

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-27 10:39:04 +02:00
60e46ae4ca docs: Update tracking files for multiboot system v2.2.2
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-27 10:14:09 +02:00
5cf69c0ce1 feat(multiboot): Add multi-architecture boot system with shared data
Create a multi-boot storage system for Pi Zero Eye Remote that supports:
- ARM64: ESPRESSObin/MOCHAbin via U-Boot boot.scr
- AMD64: Any x86_64 UEFI system via GRUB
- Shared data: Cross-architecture application data on partition 4

Partition layout (16GB+ recommended):
- P1: EFI/FAT32 (512MB) - Boot files for both architectures
- P2: ext4 (3GB) - ARM64 rootfs
- P3: ext4 (3GB) - AMD64 rootfs
- P4: ext4 (remaining) - Shared SecuBox configs, state, logs

Features:
- Automatic bind mounts for /etc/secubox, /var/lib/secubox, /srv/secubox
- eMMC flasher image included in EFI partition
- Debootstrap-based AMD64 rootfs builder
- U-Boot script with USB/MMC detection

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-27 10:13:31 +02:00
52c6b42665 fix(hub): Add /auth prefix to auth_router include
The auth router has routes like /login, so needs prefix="/auth"
to create proper /auth/login endpoint.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-27 09:50:25 +02:00
fc3ae48db1 docs: Update tracking files for HAProxy restart loop fix
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-27 09:08:05 +02:00
9f47e544a3 fix(haproxy): Create /etc/haproxy and remove RuntimeDirectory=haproxy
- postinst creates /etc/haproxy if haproxy package not installed
- Remove RuntimeDirectory=haproxy to avoid NAMESPACE errors
- Fixes systemd namespace setup failure when haproxy not present

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-27 09:05:39 +02:00
4321a7ce6f fix(haproxy): Prevent service restart loop
- Move directory creation from import-time to startup event
- Add try/except to handle permission errors gracefully
- Create haproxy data directories in postinst
- Increase RestartSec from 5s to 30s
- Add StartLimitBurst to prevent rapid restart spam

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-27 08:55:47 +02:00
79dd8715f2 docs: Update tracking files for Session 65 Eye Remote USB boot fix
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-27 00:23:16 +02:00
942196b937 fix(boot): Add mv88e6085 and initcall_blacklist to boot scripts
Extended mv88e6xxx blacklist to include mv88e6085 subdriver and added
initcall_blacklist for built-in driver scenarios. Fixes detection loop
on ESPRESSObin v7 during USB boot via Eye Remote.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-27 00:21:43 +02:00
b0ae4f1f23 docs(wiki): Add missing wiki pages for complete navigation
Add placeholder pages for sidebar links:
- Architecture-Modules.md
- Architecture-Security.md
- Configuration-Advanced.md
- Modules-Networking.md
- Modules-Security.md
- QEMU-ARM64.md

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-26 21:33:29 +02:00
223fce6c19 docs(wiki): Reorganize to focus on SecuBox OS Appliance
- Home.md: SecuBox OS as main product with full documentation
- _Sidebar.md: Eye Remote moved to "Addons" section
- Eye-Remote.md: Marked as optional addon, not main feature

The wiki now presents SecuBox OS as the core product with:
- Complete module stack (125 modules)
- ARM64 + x86_64 support
- Security features (firewall, IDS, WAF, DPI)
- Eye Remote as optional monitoring addon

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-26 20:41:06 +02:00