Commit Graph

10 Commits

Author SHA1 Message Date
CyberMind
5e93c73600
feat(navbar): consolidate to 6 charter categories + fix dropped menu entries (closes #306) (#307)
The hub's `_compute_menu_sync()` drops menu entries lacking an `id`
field. 6+ packages (lyrion, yacy, zigbee, rustdesk, grafana, authelia)
shipped a different schema (`title/url/section/module`) so they NEVER
appeared in the navbar. Plus the existing CATEGORY_META declared 12
sections (dashboard/security/network/system/core/users/services/
privacy/monitoring/publishing/apps/admin), not the 6 SecuBox charter
modules.

Changes:
* All 121 packages/secubox-*/menu.d/*.json normalised to the canonical
  schema (id, name, path, category, icon, order, description). Legacy
  schema aliases (title/url/module/section) preserved as fallbacks then
  dropped from the file.
* Each menu entry's category remapped to one of the 6 charter modules:
  AUTH (auth/users/identity/zkp/nac/openclaw),
  WALL (crowdsec/waf/mitmproxy/hardening/threat-* /cve-triage/...),
  BOOT (kernel-build/eye-remote/master-link/droplet/cloner/backup/...),
  MIND (ai-gateway/mcp-server/grafana/ndpid/netifyd/glances/...),
  ROOT (system/hub/portal/console/admin/vault/vm/rtty/...),
  MESH (wireguard/dns/tor/matrix/gitea/nextcloud/mail/lyrion/yacy/
        zigbee/dns-provider/rustdesk/... — all network + comms apps).
* secubox-hub v1.4.0 — CATEGORY_META rewritten with the 6 charter
  modules carrying their official color from DESIGN-CHARTER.md and
  the complementary-pair order. DEFAULT_MENU fallback remapped too.
* secubox-zigbee v2.5.3 — www/zigbee/index.html rewritten with the
  canonical SecuBox scaffold (body display:flex, sidebar 220px fixed,
  .main reserving 48px for the global-menu-bar). MESH palette.

Browser side: operators need to clear localStorage sbx_menu_cache (or
hard-refresh after the 1h TTL) to see the new sections after deploy.

Co-authored-by: CyberMind-FR <gandalf@Gk2.net>
2026-05-21 10:03:05 +02:00
bd7dda0c6f feat(secubox): complete meta-script generator Tasks 14-17
Task 14: Arch Profiles
- Add profiles/arch/arm64.yaml and profiles/arch/amd64.yaml
- Add ResolveWithArch() to merger for base → arch → tier chain
- Add tests for arch profile resolution

Task 15: Package secubox.yaml for All Packages
- Add scripts/generate-secubox-yaml.py generator script
- Generate 131 debian/secubox.yaml files with:
  - Category detection (security, network, system, etc.)
  - Tier assignment (all, lite, standard, pro)
  - API socket and UI path detection

Task 16: APT Repository Setup
- Add apt/conf/ reprepro configuration (multi-arch arm64/amd64)
- Add apt/hooks/lintian-check pre-publish validation
- Add scripts/apt-publish.sh and scripts/apt-sync.sh
- Add apt/README.md documentation

Task 17: CI Integration
- Add .github/workflows/build-secubox-cli.yml
- Build for linux-amd64 and linux-arm64
- Version injection via ldflags
- GitHub releases on tag push

Code Quality Fixes (Tasks 10-13):
- Add atomic writes for OTA boot control files (0600 perms)
- Fix NVME device extraction (nvme0n1p2 → nvme0n1)
- Add scanner.Err() checks in hardware detection
- Fix URL injection validation in fetch command
- Add proper cleanup on checksum failures

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-05-11 05:32:29 +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
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
0bfcef01c1 fix(console): Remove hard dependency on python3-textual
- Remove python3-textual (>= 0.40.0) from Depends (Debian bookworm has 0.1.13)
- Add textual pip install in postinst script (checks version >= 0.40)
- Pre-install textual via pip in build-live-usb.sh before dpkg install

Fixes console package removal during live image build due to unmet dependency.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-03 04:29:21 +02:00
8a8c6f9989 fix(image): Integrate kiosk and console fixes into build
- Fix kiosk user shell: use /bin/bash instead of /usr/sbin/nologin
  (required for X11 su commands)
- Add X11 modesetting config for VirtualBox/VM compatibility
- Install textual dependency for console TUI
- Fix secubox-console systemd path: use /usr/lib/systemd/system/

Tested on VirtualBox VM:
- Kiosk GUI working on VT7 (Ctrl+Alt+F7)
- Console TUI working on TTY1 (Ctrl+Alt+F1)
- Emergency shell on TTY2 (Ctrl+Alt+F2)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-02 19:34:25 +02:00
5425dbc9a8 docs(image): Add comprehensive README for all image scripts
Document all image building and deployment scripts:
- build-image.sh, build-live-usb.sh, build-installer-iso.sh
- build-rpi-usb.sh, build-c3box-clone.sh, export-c3box-clone.sh
- create-vbox-vm.sh, firstboot.sh, preseed-apply.sh
- Helper scripts: secubox-net-detect, secubox-cmdline-handler,
  secubox-kiosk-setup

Includes usage examples, options tables, boot parameters,
default credentials, and troubleshooting guide.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-01 10:04:55 +02:00
c0f5b4b4e8 feat(console): Standalone mode + tools documentation
- secubox-console v1.2.0: Works without secubox-core installed
- Fallback board detection for non-SecuBox systems
- secubox-core moved from Depends to Recommends
- Simplified systemd service for standalone mode
- Added TOOLS.md: comprehensive documentation for image/ and scripts/

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-01 07:22:30 +02:00
39791d4259 fix(console): Fix BoardHeader import in SOC screens
Replace non-existent SecuBoxHeader with BoardHeader in SOC screens.
Remove unused get_board_colors import.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-01 07:14:54 +02:00
f5b114590c feat(soc): Add hierarchical SOC system with multi-tier deployment
Implements complete Security Operations Center architecture with:

Phase 1-4: Base SOC packages
- secubox-soc-agent: Edge node metrics collector with HMAC-signed push
- secubox-soc-gateway: Central aggregation hub with node registry
- secubox-console: TUI dashboard with SOC screens (fleet/alerts/node)
- secubox-soc-web: React web dashboard with cyberpunk theme

Phase 5: Hierarchical Mode
- Mode configuration (edge/regional/central)
- Regional SOC enrollment with token-based auth
- Regional-to-central aggregation with signed push
- Cross-region threat correlation
- Global view for central SOC with regional breakdown

New packages: secubox-soc-agent, secubox-soc-gateway, secubox-soc-web
Updated: secubox-console v1.1.0

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