Commit Graph

179 Commits

Author SHA1 Message Date
8bb92be81b docs(eye-remote): Add README and wiki implementation guide
- README.md: Quick start, architecture, configuration, troubleshooting
- Eye-Remote-Implementation.md: Full wiki with timeline, components,
  build system, display config, API reference, lessons learned

Documents the complete Eye Remote v2.0.0 framework implementation.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-21 22:05:36 +02:00
66d664fcc9 feat(secubox-eye-remote): Add Debian packaging
Add complete Debian packaging for the Eye Remote management module:
- debian/control: Package metadata and dependencies
- debian/rules: Build script for installing api/core/models/www
- debian/postinst: Service enablement and directory creation
- debian/prerm: Clean service shutdown
- debian/changelog: Initial v2.0.0 release
- debian/secubox-eye-remote.service: Systemd unit with uvicorn
- nginx/eye-remote.conf: Reverse proxy with WebSocket support
- menu.d/50-eye-remote.json: SecuBox dashboard menu entry

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-21 11:08:42 +02:00
447319a405 fix: Address code quality review issues
- pairing.py: Remove unused 'secrets' import, use timedelta for safe arithmetic,
  make port configurable via SECUBOX_EYE_REMOTE_PORT env var
- devices.py: Add UnpairResponse model for proper OpenAPI documentation
- build-eye-remote-image.sh: Fix glob quoting, add file validation, use symlink
  pattern for service enablement, secure config permissions

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-21 11:06:32 +02:00
5be24a704c feat(secubox-eye-remote): Add API routers for devices, pairing, metrics
Add FastAPI routers for Eye Remote module:
- devices.py: CRUD operations for paired devices with JWT auth
- pairing.py: QR code generation, discovery, and device pairing
- metrics.py: System metrics endpoint with device token validation

Update main.py to include routers at /api/v1/eye-remote prefix.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-21 11:00:50 +02:00
0cbef4f45d feat(secubox-eye-remote): Add device registry with JSON persistence
Implements DeviceRegistry class for managing paired Eye Remote devices:
- CRUD operations (add, get, remove, list)
- Thread-safe access via Lock
- JSON file persistence at /var/lib/secubox/eye-remote/devices.json
- Token validation and last_seen timestamp updates
- Singleton pattern for global access

Includes test suite with 8 passing tests covering all operations.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-21 10:56:22 +02:00
85cf748098 feat(secubox-eye-remote): Add token manager with SHA256 hashing
- Generate secure device tokens using secrets.token_hex
- Hash tokens with SHA256 (never store plain tokens)
- Verify tokens with constant-time comparison
- Generate 6-char pairing codes
- Create QR code URLs for pairing

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-21 10:56:09 +02:00
b01728370a fix: Add null-safety checks and fix datetime deprecation 2026-04-21 10:54:06 +02:00
4452f75874 feat(eye-remote): Add SecuBox module skeleton with Pydantic models
Create the SecuBox-side secubox-eye-remote module structure:
- api/main.py: FastAPI application with health check
- models/device.py: Pydantic models for device management
- Directory structure for routers, core, tests, debian, nginx, www

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-21 10:52:46 +02:00
8c07f0f90a feat(eye-remote): v1.8.0 - Eye Remote multi-mode USB gadget
- Add 5 USB gadget modes: Normal, Flash, Debug, TTY, Auth
- Add HID keyboard emulation for U-Boot automation
- Add FIDO2/U2F security key mode (Eye Remote)
- Add x64/amd64 live boot support
- Update README.md with Eye Remote documentation
- Update WIKI.md with mode mockups and technical details
- Add INFOGRAPHIC-PROMPT.md for Claude.ai image generation
- Bump version from 1.7.0 to 1.8.0

New files:
- secubox-hid-keyboard.sh: Virtual HID keyboard driver
- INFOGRAPHIC-PROMPT.md: 7 prompts for publicity infographics

Eye Remote transforms the Round UI from a status display
into a full remote control device with debugging, flashing,
and authentication capabilities.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-20 11:33:26 +02:00
65a30011f4 fix(services): Add LogsDirectory and fix menu icons
- Add LogsDirectory=secubox to systemd services for proper logging
- Fix systemd service security sandboxing (remove PrivateTmp issues)
- Replace text icons with emojis in menu.d JSON files
- Fixes navbar display issues (overlapping text from icon names)

Services updated:
- secubox-system, secubox-hub, secubox-portal, secubox-watchdog
- ~70 other services with LogsDirectory directive

Menu icons fixed:
- ipblock, interceptor, cookies, dns-provider, homeassistant, etc.
- Changed from text strings to emojis for proper sidebar display

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-20 08:59:19 +02:00
9a10b7cdaa fix(hub): Dynamic module discovery and API path fixes
- Module discovery: Use systemctl list-units instead of list-unit-files
  to show only active/loaded modules, not all installed
- Auth router: Remove duplicate /auth prefix (secubox_core.auth already has it)
- Package versions: Cache batch queries to avoid blocking on slow ARM devices
- API paths (api.js): Fix frontend paths to match FastAPI routes
  - getStatus -> status
  - getModules -> modules
  - get_dashboard_data -> dashboard
  - etc.

Deployed and verified on EspressoBin V7.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-20 08:27:58 +02:00
3240e441c7 fix(ebin): EspressoBin eMMC boot fixes
- secubox-haproxy: Remove ReadWritePaths sandboxing causing NAMESPACE errors
- secubox-net-fallback: Skip lan* interfaces (DSA downstream ports)
- netplan: Add dummy0 with 10.55.255.1/24 to all board configs
- flash-emmc: Fix eMMC detection using boot0 partition
- flash-emmc.cmd: Support multiple image filenames

Fixes issues encountered when booting SecuBox from EspressoBin V7 eMMC.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-20 07:59:42 +02:00
76cd7c0d96 feat(remote-ui): Add HyperPixel 2.1 Round dashboard for RPi Zero W
Complete Remote UI implementation for SecuBox status display:

- Python/PIL dashboard with direct framebuffer rendering (no Chromium)
- KMS overlay support (vc4-kms-dpi-hyperpixel2r) - tested working
- USB OTG composite gadget (CDC-ECM + CDC-ACM) for host connection
- 6 concentric rings showing CPU, MEM, DISK, LOAD, TEMP, WiFi metrics
- Auto-start systemd service (secubox-dashboard.service)
- install_zerow.sh for SD card preparation with all fixes

Key fixes discovered during debugging:
- Use KMS overlay, not non-KMS (GPIO conflicts on Bookworm)
- Framebuffer is RGB565 (16-bit), not BGRA
- RPi OS Bookworm requires userconf file for SSH credentials
- NetworkManager ignores ifupdown; use direct IP config

Files:
- secubox_dashboard.py: PIL-based live metrics dashboard
- install_zerow.sh: SD card flasher with KMS overlay
- secubox-dashboard.service: Auto-start systemd unit
- 24 module icons (AUTH/WALL/BOOT/MIND/ROOT/MESH)

Tested on: RPi Zero W + HyperPixel 2.1 Round 480x480

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-15 17:54:09 +02:00
24296084c0 feat(soc): Add interactive threat map with Privacynex-style UI
- Dark theme with cyan/teal country highlighting by threat density
- Clickable countries with sidebar showing threat details
- Stats bar: total threats, countries, regions, critical
- Color legend: 1-3, 4-9, 10-19, 20+ threats
- Zoom controls (+/-)
- Continent/country filtering via dropdowns and URL params
- Country flags emoji in sidebar
- Enhanced /map/threats API with filtering support
- SVG map with 30+ countries across 6 continents

Inspired by privacynex.org/map interactive style.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-15 10:22:16 +02:00
cf7ea44c78 fix(kiosk): Skip X11 config on bare metal, disable service sandboxing
- X11 setup now exits early for bare metal (VM_TYPE=none) without
  creating config files - Intel/AMD/NVIDIA auto-detect perfectly
- Remove static fallback 10-modesetting.conf that caused conflicts
- Sanitize GPU_INFO in config comments to remove special chars
- Disable PrivateTmp and ProtectSystem for haproxy, metrics, threats
  services - causes Python symlink namespace errors on some kernels
- Add fix-namespace-errors.sh script for quick fixes on running systems

Fixes: X11 "no screens found" on Intel HD Graphics 630
Fixes: "Failed to set up mount namespacing" for Python services

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-15 09:52:20 +02:00
84647e11f9 fix(dashboard): Display real data for memory, storage, network IPs and module versions
- Add IP address discovery to network_summary API endpoint
- Add _get_package_version() helper for fetching installed versions
- Update _svc() to include package versions in status data
- Fix loadNetwork() to use API data instead of hardcoded IPs
- Add loadMemory() and loadDisk() functions for actual used/total values
- Update modules table to display real versions from dpkg
- Make EspressoBin build consistent with AMD64 slipstream (check cache too)

Fixes dashboard showing placeholder values (Memory: -/-, Storage: -/-, etc.)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-14 17:43:28 +02:00
b6960559b1 fix(auth): Correct nginx proxy path and add login page (v1.7.0.3)
- Fix auth.conf nginx proxy to use /auth/ prefix (FastAPI root_path issue)
- Add explicit /api/v1/auth/auth/login location for login endpoint
- Create login.html page with proper authentication flow
- Add GRUB echo module to fix EFI boot error

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-14 17:11:53 +02:00
4165d6d66c feat(network): Smart auto-IP with ARP collision detection (v1.7.0.2)
- Add ARP-based IP collision detection for multi-device environments
- MAC-based pseudo-random IP offset to spread devices across range
- Gratuitous ARP announcement to prevent IP conflicts
- Fix EspressoBin DSA network: target wan interface, not eth0 CPU port
- Static IP fallback 192.168.255.250 when DHCP unavailable
- Sync all build scripts to version 1.7.0
- Add screenshot script with 90+ module URLs
- Add mock HTML screenshots for documentation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-14 16:28:02 +02:00
5f33410b53 fix(ui): Emoji icons not rendering in kiosk sidebar (v1.7.0.1)
- Add Noto Color Emoji font-family to all icon elements
- Separate category icon into .cat-icon element with emoji font
- Put 'Noto Color Emoji' first in font stack (installed on live USB)
- Add explicit emoji font installation in build script
- Update both light and dark sidebar themes

Fixes emoji/icon boxes showing as empty squares on real hardware.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-14 11:58:07 +02:00
3ee3931a89 feat(ui): Phase 11 version display & boot mode indicators (v1.7.0)
- Dashboard footer: version, boot mode, auth mode, uptime
- Login page: auth mode badge + version display
- Plymouth splash: version v1.7.0 + boot mode indicator
- GRUB menu: descriptive echo messages for each boot option
- New API endpoints: /boot_mode, /auth_mode, /public/info
- Version bump to 1.7.0 across all components

Phase 11 tasks completed: P11-01 through P11-04, P11-07 through P11-09

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-14 11:52:38 +02:00
7a34189ed4 feat(kiosk): Add VirtualBox debug logging for X11 troubleshooting
- Add generate_debug_report() to secubox-kiosk-launcher
- Capture system info, virtualization, graphics hardware
- Log DRM/KMS devices, kernel modules, Xorg status
- Enhanced error reporting with dmesg and VT status
- Debug reports saved to /tmp/kiosk-debug-*.log
- Add v1.6.7.2 overlay installer scripts
- Add emoji font fixes for navbar icons
- Add screenshots for v1.6.7.1

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-13 08:26:06 +02:00
35c93406e6 fix(auth): Remove duplicate /auth prefix from login endpoint
- Remove prefix="/auth" from secubox_core/auth.py router definition
- Add prefix="/auth" when including auth_router in hub main.py
- Fixes login endpoint from /auth/auth/login to /auth/login

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-12 21:09:21 +02:00
b86f8dd382 fix(hub): Fix secubox user creation and socket directory
- Create secubox user explicitly in build script before package install
- Configure tmpfiles.d for /run/secubox at boot time
- Add ExecStartPre with + prefix to hub service for root permissions
- Ensure hub.conf created in nginx secubox.d
- Fix service dependency chain (Wants instead of Requires)
- Change UMask to 0002 for proper socket permissions

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-11 10:15:23 +02:00
7a41b3d3a7 fix(auth): Remove duplicate /auth prefix from router
The auth_router already has prefix="/auth" defined in secubox_core.auth,
so adding prefix="/auth" again when including it caused double path
/api/v1/hub/auth/auth/login instead of /api/v1/hub/auth/login.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-11 07:58:03 +02:00
e402a53e82 feat(auth): Add login page and default auth config for live USB
- Add /portal/login.html with CRT-styled login form
- Create default auth.toml in build script for demo credentials
- Credentials: admin / secubox (same as SSH)
- Login page uses existing /api/v1/hub/auth/login endpoint
- Stores JWT in localStorage as sbx_token

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-11 07:37:51 +02:00
de77a1aa4e feat(build): Add modular build system and fix package dependencies
Build System:
- Add image/lib/common.sh with shared build functions
- Add profiles for vm-x64, x64-live, rpi400, espressobin-v7
- Add BUILD-SYSTEM.md documentation
- Add splash screens (boot.png, tui-splash.sh, kiosk-loading.sh)
- Add Plymouth theme for boot splash

Package Dependencies:
- Fix python3-uvicorn -> python3-uvicorn | python3-pip
- Fix python3-fastapi -> python3-fastapi | python3-pip
- Fix python3-httpx -> python3-httpx | python3-pip
- Allows packages to install when pip-provided deps are used

Documentation:
- Add Build-System.md wiki page
- Update _Sidebar.md with build system links
- Add VM-Testing.md improvements

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-10 17:31:24 +02:00
f9628d8aef fix(ui): Add sidebar navigation to 11 modules
Fixed UI guideline compliance for modules missing sidebar:
- secubox-cloner, wazuh, ossec, vault, magicmirror
- secubox-mmpm, redroid, rezapp, vm, ndpid, p2p

Changes per module:
- Added <nav class="sidebar" id="sidebar"></nav>
- Added body class="crt-light"
- Added sidebar.js script reference (ndpid)

Also added:
- REPORT-2026-04-10.md: Board/financer status report
- scripts/ui-screenshot-capture.py: Playwright UI capture
- scripts/ui-fix-checker.sh: UI guideline compliance checker

UI checker now passes 120/120 modules.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-10 13:20:24 +02:00
acde1344aa fix: Remove :9443 from internal kiosk URLs
The kiosk scripts were using port 9443 for internal connections,
but nginx listens on port 443 inside the VM. Port 9443 is only
used for host port forwarding (QEMU/VirtualBox NAT).

URLs changed:
- https://192.168.255.1:9443/https://192.168.255.1/
- https://localhost:9443/https://localhost/
- https://127.0.0.1:9443/https://127.0.0.1/

This fixes the kiosk "connection refused" error in VM environments.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-10 11:30:38 +02:00
d9d2eb4edf docs: Add modules architecture documentation
- modules-architecture.md: 6-domain module organization
- secubox_modules_architecture.svg: Visual diagram
2026-04-10 10:47:35 +02:00
9690412f29 feat: Add secubox-ui-manager, boot architecture docs, and plymouth theme
New features:
- secubox-ui-manager: Unified UI management with KUI/TUI/Console fallback
  - State machine for mode transitions
  - Hypervisor detection and optimization
  - Modular debug system (levels 0-5)
  - Health monitoring with automatic fallback

- Plymouth secubox-cube theme with CRT effects and module icons

- Boot architecture documentation (ANSSI CSPN reference)
  - Chain de boot diagram (SVG)
  - Execution modes: PROMPT/KIOSK/API

Fixes:
- build-live-usb.sh: Remove Type=idle from getty override
- build-live-usb.sh: Add StandardInput/StandardOutput for proper TTY

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-10 10:23:54 +02:00
33d287c563 fix: Disable PXE boot on VirtualBox NICs
Add --nicbootprio1 0 and --nicbootprio2 0 to prevent VirtualBox
from attempting network boot when hard disk boot fails.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-08 19:08:56 +02:00
1cddcf6732 chore: Bump version to v1.5.10
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-08 18:31:02 +02:00
34b51bbf8e feat: Implement 6-Module Design System across all UI components
Complete UI design compliance update based on SecuBox Charte Graphique:

Design System:
- Add design-tokens.css with 6-module color system (BOOT/AUTH/ROOT/MIND/MESH/WALL)
- Update crt-light.css, crt-system.css for light/dark theme tokens
- Update sidebar.css, sidebar-light.css with module accent colors
- Refactor crt-components.js web components to use CSS variables

Module CSS Updates (35 files):
- All module CSS files now import design-tokens.css
- Replace hardcoded P31 Phosphor colors with CSS variables
- Add shared symlinks from each package to hub shared assets

UI Components:
- Redesign login.html with 6-module design system
- Update hub index.html dashboard with design tokens
- Remove legacy P31 color variables

System Branding:
- Add /etc/issue, /etc/issue.net, /etc/motd with 6-module branding
- Create Plymouth boot splash theme (secubox + secubox-text)
- Add generate-plymouth-assets.sh for theme image generation

Tools:
- Add update-css-design-tokens.py for batch CSS updates

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-08 18:29:36 +02:00
aa41893d4b feat: Complete Phase 8, 9, 10 - all modules done
Phase 8 (Applications): 21 modules complete
- jitsi, gotosocial, peertube, hexo, webradio, voip, simplex, torrent, newsbin

Phase 9 (System Tools): 22 modules complete
- Added READMEs for vault, cloner, vm, rtty, reporter, turn, smtp-relay

Phase 10 (Security Extensions): 10 modules complete
- Created secubox-netifyd package (DPI daemon)
- Added README for secubox-wazuh

Infrastructure fixes:
- Fixed uvicorn path in 29 service files (/usr/bin → /usr/local/bin)
- Fixed smtp-relay debian/control (Section: mail, added msmtp alternative)
- Added MODULE-COMPLIANCE.md with formal design rules
- Updated CLAUDE.md to reference compliance requirements

Total: 125 packages, all phases complete

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-08 14:46:58 +02:00
6a0b9f45a1 feat: Add secubox CLI tool
Provides common commands:
- secubox status - system and services overview
- secubox services - list all SecuBox services
- secubox logs [svc] - view service logs
- secubox restart/start/stop <svc> - manage services
- secubox info - system information
- secubox network - network configuration
- secubox version - version info

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-07 06:54:25 +02:00
7ead1ff77f fix: Slipstream path + conditional service startup
1. Fix slipstream path: Look for packages in output/ not just output/debs/
   - build-image.sh and build-live-usb.sh now check both locations
   - 73 packages now properly detected and installed

2. Add ConditionPathExists to 22 optional services:
   - Services only start if /etc/secubox/<module>/enabled exists
   - Prevents boot failures when backend apps aren't installed
   - Affected: ollama, jellyfin, zigbee, lyrion, localai, hexo,
     peertube, newsbin, webradio, gotosocial, torrent, domoticz,
     simplex, photoprism, homeassistant, matrix, jitsi, voip,
     magicmirror, mmpm, jabber, redroid

3. Add explicit parted/fdisk install in live USB build
   - Ensures disk tools available for secubox-install

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-06 19:50:11 +02:00
f281a19aae feat: Add debian packaging for secubox-system-hub
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-06 10:01:08 +02:00
932ef33be9 fix(ui): Correct module names in menu.d files
- AI Gateway (was: Ai-gateway)
- MCP Server (was: Mcp-server)
- WAF (was: Waf)
- Threat Analyst (was: Threat-analyst)
- Config Advisor (was: Config-advisor)
- DNS Guard (was: Dns-guard)
- IoT Guard (was: Iot-guard)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-04 11:22:16 +02:00
4acd982bac feat(phase10): Complete all 10 Security Extensions modules
New modules created (8):
- secubox-ai-insights: ML threat detection and anomaly analysis
- secubox-ipblock: IP blocklist manager with nftables integration
- secubox-interceptor: Traffic interception and SSL inspection
- secubox-cookies: Cookie tracking and GDPR compliance
- secubox-mac-guard: MAC address whitelist/blacklist control
- secubox-dns-provider: Multi-provider DNS API (OVH, Gandi, Cloudflare)
- secubox-threats: Unified threat dashboard with IOC management
- secubox-openclaw: OSINT reconnaissance tool

Previously built:
- secubox-wazuh: SIEM integration
- secubox-ossec: Host IDS

All modules include:
- FastAPI backend with JWT authentication
- P31 Phosphor light theme frontend
- Debian packaging with systemd integration
- nginx reverse proxy config
- Menu integration

Total packages: 93 (was 85)
All migration phases complete (8, 9, 10)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-04 10:26:16 +02:00
ce28d53918 feat(phase8): Complete all 21 Application modules
New modules created (13):
- secubox-hexo: Static blog generator (Hexo)
- secubox-webradio: Internet radio streaming
- secubox-torrent: BitTorrent client (Transmission)
- secubox-newsbin: Usenet downloader (SABnzbd)
- secubox-domoticz: Home automation
- secubox-gotosocial: Fediverse/ActivityPub server
- secubox-simplex: SimpleX secure messaging
- secubox-photoprism: Photo management
- secubox-homeassistant: IoT/Home automation hub
- secubox-matrix: Matrix chat server (Synapse)
- secubox-jitsi: Video conferencing
- secubox-peertube: Video platform
- secubox-voip: VoIP/PBX (Asterisk/FreePBX)

All modules include:
- FastAPI backend with JWT authentication
- P31 Phosphor light theme frontend
- Docker/Podman container management
- Debian packaging (control, rules, postinst, prerm)
- nginx reverse proxy config
- systemd service unit
- Menu integration

Total packages: 85 (was 72)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-04 10:04:25 +02:00
17e40e00e3 feat(phase9): Complete all 22 System Tools modules
New modules (7):
- secubox-metabolizer — Log processor/analyzer
- secubox-metacatalog — Service catalog/registry
- secubox-cyberfeed — Threat feed aggregator
- secubox-mirror — Mirror/CDN caching
- secubox-saas-relay — SaaS API proxy
- secubox-rezapp — App deployment manager
- secubox-picobrew — Homebrew/fermentation controller

Documentation added:
- secubox-ksm/README.md
- secubox-admin/README.md

Phase 9 is now 22/22 complete.
Total packages: 72 (was 65)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-04 09:04:48 +02:00
a1c0d563f4 fix(ci): Handle non-existent directories in build-live-usb.sh
With set -euo pipefail, find on non-existent directories causes script
failure even with stderr redirected. Add directory existence checks
before running find commands to prevent CI failures.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-04 08:48:32 +02:00
20ce5548c3 fix(daemon): Skip dh_strip and dh_dwz for cross-compiled Go binaries
Go binaries are cross-compiled (arm64 on x86_64 runner) and already
stripped with -ldflags "-s -w". The native strip tool can't recognize
the ARM64 binary format, causing build failures.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-04 08:22:26 +02:00
8d5e71f98b fix(core): Set /run/secubox world-writable for service sockets
- Add tmpfiles.d/secubox.conf with mode 1777 (sticky + world-writable)
- Update postinst to create /run/secubox with correct permissions
- Run systemd-tmpfiles --create on package install

This fixes permission denied errors when services try to create
Unix sockets in /run/secubox directory.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-04 08:14:51 +02:00
bcc6a781d0 fix(hub): Correct login redirect path to /login.html
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-04 08:08:58 +02:00
675ee58e75 fix(hub/api): Require JWT auth on all dashboard endpoints
Add require_jwt dependency to all public endpoints:
- /dashboard
- /alerts
- /network_summary
- /system_health
- /network_mode (GET)
- /menu
- /board_summary

Only /health remains public for monitoring.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-04 08:08:07 +02:00
07c8fa65c8 fix(hub): Require authentication before loading dashboard
- Add checkAuth() function to verify token on page load
- Redirect to login if no token present
- Clear invalid tokens on 401 response
- Block page content until auth verified

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-04 08:05:46 +02:00
1ece04a618 feat(phase9): Add rtty, smtp-relay, routes, reporter modules
New Phase 9 System Tools modules:
- secubox-rtty: Remote terminal access via web interface
- secubox-smtp-relay: SMTP relay status and queue monitoring
- secubox-routes: Routing table viewer with IPv4/IPv6 support
- secubox-reporter: System report generation and scheduling

All modules include:
- FastAPI backend with JWT auth
- P31 Phosphor CRT-style web interface
- Auth verification and auto-refresh
- Nginx reverse proxy configuration
- Systemd service and menu integration

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-04 07:58:44 +02:00
8abe743c40 fix(ci): Build Go c3box binary and pre-build soc-web in CI
- Add c3box binary build alongside secuboxd and secuboxctl
- Pre-build React app for soc-web before dpkg-buildpackage
- Update soc-web debian/rules to skip npm if dist/ pre-built
- Remove nodejs/npm Build-Depends (now pre-built in CI)

Fixes build failures for secubox-daemon and secubox-soc-web packages.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-04 07:56:45 +02:00
a466f87386 fix(auth): Add checkAuth() and improve auto-refresh in new modules
- Add checkAuth() function to redirect to login if no token
- Check auth before page initialization
- Improve auto-refresh intervals (10-30 seconds)
- Fix token retrieval to check both sbx_token and secubox_token

Fixes auth not requested and auto-refresh issues.

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