Commit Graph

34 Commits

Author SHA1 Message Date
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
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
9516379e93 ci(eye-remote): Add v2.2.0 build workflow with menu system tests
- Add test-menu-system job for pytest validation
- Update VERSION to 2.2.0
- Add create_release manual trigger option
- Update release notes with radial menu features
- Change tag pattern to eye-remote-v* for clarity
- Add PR trigger for CI on changes

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-04-24 11:49:07 +02:00
be92d7df0b docs(eye-remote): Add hardware wiki + sync CI workflow
- Eye-Remote-Hardware.md: GPIO pinout, USB OTG, DPI timings, gadget modes
- Update CI workflow to v2.0.0
- Fix build script: add DNS for chroot network access

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-22 08:56:21 +02:00
8f3d446a07 feat(eye-remote): OFFLINE mode v1.9.0 - pre-install packages via QEMU
Complete rewrite of build-eye-remote-image.sh for pure offline boot:

- Use QEMU ARM chroot to pre-install all packages at build time
- Expand image by 1GB for pre-installed packages (~500MB)
- Pre-installed: chromium, nginx, lightdm, openbox, python3-pil
- Configure lightdm autologin, openbox autostart, nginx in chroot
- Create secubox user with all groups during build
- No rc.local/firstrun needed - boots directly into kiosk

Build requirements: qemu-user-static, binfmt-support

Boot time comparison:
- v1.8.x: ~10 min (package download required)
- v1.9.0: ~60 sec (ready immediately, no internet)

Closes #30

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-20 21:10:56 +02:00
5b6da8a588 ci: Add GitHub Action for Eye Remote image build
- Downloads RPi OS Lite automatically
- Builds complete Eye Remote SD card image
- Compresses with xz and generates checksums
- Uploads to releases on version tags
- Supports manual trigger with WiFi/hostname options
- Part of Eye Remote v1.8.0

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-20 12:12:11 +02:00
f4806bf7fa fix(ci): Fix eMMC image check and RPi multi-initrd copy
- build-all-live-usb.yml: Check for .img.gz first since build-image.sh
  already compresses and removes the .img file
- build-rpi-usb.sh: Handle multiple kernel/initrd files by selecting
  the latest version instead of globbing which breaks cp

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-15 09:22:23 +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
698a0c728f fix(ci): Fix matrix context in workflow job-level if condition
GitHub Actions doesn't allow matrix.* in job-level 'if' conditions.
Moved platform filtering to step-level with skip output variable.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-13 10:19:13 +02:00
6c7e6051bd feat(ci): Add unified multi-platform live USB workflow
- Add build-all-live-usb.yml with matrix for x64, EspressoBin V7, and RPi 400
- Update release.yml to include live USB builds in release pipeline
- Add RPi 400 netplan configuration for Ethernet and WiFi
- Deprecate build-live-usb.yml (now wrapper to unified workflow)

Platforms supported:
- x64 (amd64) - GRUB UEFI/BIOS boot
- EspressoBin V7 (arm64) - U-Boot distroboot with embedded eMMC image
- Raspberry Pi 400 (arm64) - Native Pi firmware boot

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-11 11:20:46 +02:00
17f4886a7f fix: Handle duplicate assets in release workflow retries
- Add step to delete existing assets before upload (handles workflow retries)
- Update to softprops/action-gh-release@v2
- Add fail_on_unmatched_files: false for graceful handling

Fixes 422 error when retrying failed release uploads.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-08 16:11:05 +02:00
5ebc80fc4b fix: Handle missing GPG_PRIVATE_KEY in CI publish job
Skip signing and deploy steps when secrets are not configured
instead of failing the entire workflow.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-08 10:07:11 +02:00
d7fdc4186e feat: Add QEMU ARM64 VM support and RPi 400 to releases
- Add create-qemu-arm64-vm.sh script for ARM64 emulation on x86 hosts
- Add wiki/QEMU-ARM64.md documentation
- Update CI workflows to include RPi 400 and VM scripts in releases
- Update release notes to document all platforms

Platforms now supported:
- MOCHAbin (Armada 7040)
- ESPRESSObin v7/Ultra (Armada 3720)
- Raspberry Pi 400 / Pi 4
- VirtualBox x64
- QEMU ARM64 emulation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-08 08:13:56 +02:00
c292685990 fix: Add chown after sudo build in ISO workflow
Files created by sudo are root-owned, preventing subsequent
steps from accessing them.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-07 07:29:32 +02:00
c7bf0b9447 feat: Add Raspberry Pi 400 support with boot menu
- Add rpi400 to default CI builds in build-image.yml
- Create board/rpi400/config.mk with Pi 400 settings
- Add build-image.sh redirect to build-rpi-usb.sh for RPi boards
- Add boot menu system to build-rpi-usb.sh:
  - Normal, Kiosk, Console, Bridge, Minimal modes
  - VT100/DEC PDP-style menu interface
  - Persistent mode selection across reboots
  - systemd integration for early boot
- Fix slipstream in build-rpi-usb.sh:
  - Use dpkg --force-depends (pip provides Python deps)
  - Skip failing apt-get -f install
  - Add more Python dependencies to pip install

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-07 06:32:56 +02:00
4772fc2b0f fix: Use board-specific image sizes for eMMC compatibility
Board configs now define IMG_SIZE:
- ESPRESSObin v7: 3584M (fits 4GB eMMC)
- ESPRESSObin Ultra: 4G (8GB eMMC)
- MOCHAbin: 4G (8GB eMMC + SATA)

CI workflow updated to use board defaults instead of hardcoded 8G.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-05 15:20:24 +02:00
38841a9640 fix(ci): Include all SecuBox packages in image builds
- build-image.yml: Download packages from build-packages workflow
  and pass --slipstream flag to include them in images
- build-live-usb.yml: Remove redundant cache copy, improve logging
- release.yml: Update package count from 93 to 124
- build-image.yml: Update package count from 33 to 124

All 124 SecuBox packages will now be slipstreamed into live USB
and system images when built via CI.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-04 12:49:11 +02:00
a2fd0e0cd6 feat(boot): CRT-style banners with colors and emoji indicators
Boot Banner Improvements:
- /etc/issue: Gold ASCII art pre-login banner with credentials
- /etc/motd: Colorful LIVE USB banner with access info
- secubox-status: New command showing system overview with CRT colors
- secubox-help: Quick reference for all secubox commands
- secubox-logs: Live security log viewer shortcut
- profile.d: Login status display with mode/service/IP indicators

Mode Switching:
- cmdline-handler: Fixed TUI mode to start (not just enable) service
- secubox-mode: Updated with CRT colors and emoji status indicators

GRUB Menu:
- Kiosk GUI is now default when --kiosk flag used
- All entries have emoji indicators (🖼️📟🌉🛡️💾🚀🔧🚨🐛)
- CRT-style menu colors (cyan on black, yellow highlights)

CI Workflows:
- build-live-usb.yml: Updated boot options and credentials in release notes
- release.yml: Updated to 93 packages, new boot options, correct credentials

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-04 12:16:40 +02:00
b372463fba fix(ci): Add workflow_call trigger to enable reusable workflows
- build-packages.yml: Add workflow_call with secrets
- build-image.yml: Add workflow_call with inputs, fix matrix for all event types
- publish-packages.yml: Add workflow_call with inputs and secrets

This fixes the release.yml workflow which was failing because it tried
to call these workflows as reusable workflows without the workflow_call
trigger defined.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-04 10:54:52 +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
2c179de6fe fix(ci): Add Node.js and Go setup for special packages
- Add Node.js 20 setup for secubox-soc-web (requires nodejs >= 18)
- Add Go 1.22 setup for secubox-daemon
- Build Go binaries in CI before dpkg-buildpackage

Fixes CI failures for secubox-daemon and secubox-soc-web.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-04 07:46:26 +02:00
d4fdc552c1 ci(workflows): Add kiosk mode and noninteractive flags
- Add kiosk input option to build-live-usb workflow
- Add DEBIAN_FRONTEND=noninteractive to prevent interactive prompts
- Copy debs to .cache/debs for slipstream consistency
- Increase timeout to 90 minutes for kiosk builds
- Use sudo -E to preserve environment

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-02 11:58:23 +02:00
bb5c30efbd feat(jitsi): Add Jitsi Meet video conferencing module
fix(live-usb): Improve UEFI boot compatibility

Jitsi module:
- LXC-based Jitsi Meet server
- Prosody + Jicofo + JVB stack
- Authentication support
- Let's Encrypt SSL
- Recording with Jibri

Live USB UEFI fixes:
- Add fallback to pre-built signed EFI
- Copy grubx64.efi for compatibility
- Copy grub.cfg to EFI/BOOT
- Add grub-efi-amd64-signed and shim-signed to CI

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-28 10:11:10 +01:00
8f3c2a100f Add Installer ISO CI workflow with wiki and release
- build-installer-iso.yml: New workflow for hybrid live/installer ISO
  - Builds ISO and IMG files
  - Slipstreams SecuBox packages
  - French AZERTY keyboard support
  - DHCP networking on live boot
  - Generates wiki documentation
  - Creates GitHub release with artifacts
- Triggered on: tag push (v*), workflow_dispatch, after package build
- Publishes: compressed ISO/IMG, SHA256SUMS, GPG signatures

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-27 07:37:35 +01:00
b4438d539a Fix build-image permission issue for checksums
- Add chown after sudo build to fix file ownership
- Ensures checksum step can write SHA256SUMS

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-24 19:06:33 +01:00
7a290be88f Fix build-image workflow checksum step
- Remove duplicate compression (build-image.sh already creates .gz)
- Fix checksum generation to only look for .img.gz files
- Update artifact upload and release to match

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-24 18:30:25 +01:00
d76d57a8cf Fix CI arm64 builds and live USB directory creation
- Skip arm64 builds for Architecture: all packages (redundant)
- Remove QEMU cross-compilation setup (not needed for arch-all)
- Fix missing /esp/live directory in build-live-usb.sh

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-24 17:40:56 +01:00
62f591e23d Fix arm64 cross-compilation for Python packages
- Add arm64 architecture and install python3-all:arm64
- Detect Architecture: all packages (Python/noarch)
- Use -d flag to skip cross-build deps for arch-all packages
- Fixes secubox-core, secubox-hardening, secubox-repo arm64 builds

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-24 17:31:22 +01:00
3f512b27f6 Add CI workflow for live USB build, enable slipstream by default
New workflow: .github/workflows/build-live-usb.yml
- Triggers on: workflow_dispatch, tag push, after build-packages success
- Downloads .deb artifacts from build-packages workflow
- Slipstreams all SecuBox packages into live image
- Creates GitHub Release with live USB on tag

Script changes:
- Slipstream enabled by default (all local .deb included)
- Added --no-slipstream option to disable
- All 47+ SecuBox modules included in live USB

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-24 16:35:52 +01:00
2f33cc3576 Add dh-python and python3-all to CI build dependencies
Required for Python-based packages:
- secubox-core
- secubox-repo
- secubox-hardening

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-24 16:29:56 +01:00
c3b8e153e8 Fix build-image.yml matrix expression for tag pushes
- Single-line fromJson expression to avoid YAML parsing issues
- Handle push events (tags) separately from workflow_dispatch
- Build all boards on tag push, selected board on manual dispatch

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-24 16:26:18 +01:00
6d0e866db2 Add secubox-metrics package and fix CI build dependencies
- Add secubox-metrics package ported from luci-app-metrics-dashboard
  - FastAPI backend with cached system metrics
  - Real-time dashboard with live updates
  - Overview stats, WAF metrics, connection counts
  - Service status monitoring
- Fix CI workflow: add build-essential to apt dependencies

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-24 15:40:47 +01:00
d7c8cc19e9 Add secubox-repo and secubox-hardening modules, CI/CD workflows
New modules (35 total):
- secubox-repo v1.0.0: APT repository management
  - repoctl CLI for package management
  - GPG key generation and signing
  - Multi-distribution support (bookworm, trixie)
  - Web dashboard for repository status

- secubox-hardening v1.0.0: Kernel and system hardening
  - hardeningctl CLI for security management
  - Sysctl hardening (ASLR, kptr_restrict, SYN cookies)
  - Module blacklist (uncommon protocols, filesystems)
  - Security benchmark with 100% score on VM

CI/CD workflows:
- build-packages.yml: Dynamic matrix for all packages
- build-image.yml: 5 board images with compression
- publish-packages.yml: APT repo publishing
- release.yml: Unified release orchestration

APT repository scripts:
- export-secrets.sh: Export GPG/SSH keys for GitHub Actions
- local-publish.sh: Local test server
- install.sh: User installation script

Security (Phase 5):
- AppArmor profiles for all services
- Audit rules for SecuBox services
- build-all.sh for local builds

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-22 22:15:01 +01:00
bf1babb37c Initial commit: SecuBox-DEB migration from OpenWrt to Debian
Includes all package APIs with public dashboard endpoints:
- secubox-system: System Hub with /info, /resources, /security
- secubox-crowdsec: CrowdSec dashboard with /status, /hub, /metrics, actions
- secubox-wireguard: WireGuard VPN with /interfaces, /peers, start/stop
- secubox-netdata: Monitoring with /stats, /processes, /alerts

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-21 09:41:06 +01:00