Commit Graph

11 Commits

Author SHA1 Message Date
b6ab518e2a release: bump minor on the 87 modules converted to Wants=secubox-core (Phase 2)
Co-Authored-By: Gerald KERMA <devel@cybermind.fr>
2026-07-19 09:08:22 +02:00
2ec7cef1b2 feat(profiles): Phase 2 — Requires=secubox-core → Wants= on all units (remove hard cascade)
secubox-core.service is a Type=oneshot (mkdir+chown) that RemainAfterExit=yes. A hard
Requires= on ~108 units cascade-stops them all if core is restarted/fails (e.g. a
secubox-core package upgrade) — a thundering-herd outage. After= keeps the ordering;
Wants= keeps the soft dependency without the cascade. Prereq for mass native apply
(Phase 3). Scaffolds (new-module.sh/new-package.sh) updated so future units use Wants=.

Co-Authored-By: Gerald KERMA <devel@cybermind.fr>
2026-07-19 09:06:54 +02:00
238637e09a release(webui): bump 127 arch:all packages for hybrid-dark reskin bake-in 2026-07-10 09:07:42 +02:00
05bee75da4 fix(vortex-firewall): unmask + enable nftables at install so LXC NAT survives reboot (closes #150)
nftables.service was masked on the board, so /etc/nftables.conf (LXC MASQUERADE
+ include /etc/nftables.d/*.nft) never loaded at boot — every reboot dropped
outbound for all 10.100.0.0/24 LXCs (apt/DNS failures inside containers). The
firewall postinst now unmasks + enables nftables.service so it loads at boot,
ordered before the CrowdSec bouncer. Not force-started (avoids flushing live
CrowdSec tables). Bump 1.0.1 -> 1.0.2.
2026-05-29 09:37:06 +02:00
f522940509 docs(standalone,lxc): final naming-clarity sweep on 8 placeholder Descriptions (closes #387)
Final batch of the per-cluster Description-clarity work after #382
(dpi), #383 (dns+threats), #385 (identity+monitoring), and #386
(ai+dpi+mesh+soc). Fixes the last 8 "X Module" placeholder headlines
on master — all standalone utilities or LXC-service apps from the
don't-merge list. No cluster siblings to cross-reference, just
honest headlines + bodies.

Standalone utilities:
  - secubox-backup: "Backup Module" → "config + LXC-container
    backup manager"
  - secubox-config-advisor: "Config-advisor Module" → "security
    configuration audit + recommendations"
  - secubox-iot-guard: "Iot-guard Module" → "IoT device discovery
    + segmentation"
  - secubox-localrecall: "Localrecall Module" → "on-box AI memory
    store"
  - secubox-tor: "Tor Module" → "Tor relay + hidden-services
    manager"
  - secubox-vortex-firewall: "Vortex-firewall Module" → "nftables
    threat-feed enforcer"

LXC-service apps:
  - secubox-gitea: "Gitea Module" → "self-hosted Git server (LXC)"
  - secubox-nextcloud: "Nextcloud Module" → "self-hosted file sync +
    collaboration (LXC)"

Side fixes:
  - Maintainer corrected from "SecuBox <dev@secubox.local>" to
    "Gerald KERMA <devel@cybermind.fr>" on config-advisor,
    iot-guard, localrecall (3/8 had the placeholder).

Patch-version bump on each so apt sees the metadata change.

16 files, +106/-19. No code/endpoints/services/menu changes. All
changelogs parse cleanly.

After this commit + #383 + #385 + #386 + #382 land, NO secubox-*
package on master ships an "X Module" placeholder headline anymore.
Audit-doc consolidation work complete.
2026-05-27 09:13:36 +02:00
24000d67ea fix(services): add RuntimeDirectoryPreserve=yes to 96 secubox-* units
Hub + portal stayed `inactive (dead)` on real-hardware boot. The
journal error was `Failed to set up mount namespacing: /run/systemd/
unit-root/run/secubox: No such file or directory` at the NAMESPACE
step. Root cause: 96 services declare `RuntimeDirectory=secubox`
without the matching `RuntimeDirectoryPreserve=yes`. When any of them
stops (including any of the LXC-backed services that fail their
health probe and Restart=on-failure for a few cycles), systemd
removes /run/secubox on the way out. The next service with the same
RuntimeDirectory= that tries to namespace its inputs hits the gap
and falls into 226/NAMESPACE failure — Restart hammers a few times,
then the unit goes failed-permanent.

Earlier fmrelay + sentinelle units got the fix individually
(v2.12.0/v2.12.3 era). Now applied to all 96 remaining units in a
single sweep via:

  sed -i '/^RuntimeDirectory=secubox/a RuntimeDirectoryPreserve=yes' "$f"

No version bumps in changelog — `dpkg -i --force-depends` in the
live-USB slipstream picks up the new .deb regardless of version
number.
2026-05-26 09:50:22 +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
2d2870d8a9 fix(systemd): Add RuntimeDirectory for /run/secubox socket support
- Add RuntimeDirectory=secubox to all services using ProtectSystem
- Change ProtectSystem=strict to ProtectSystem=full for compatibility
- Add systemd overrides in build script for cached packages
- Create tmpfiles.d entry for /run/secubox

This fixes the namespace issue where services couldn't create sockets
in /run/secubox due to ProtectSystem=strict mount namespacing.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-03 08:54:19 +02:00
4901143c78 Reorganize Go daemon and fix module compliance
- Move Go mesh daemon code to daemon/ directory
  - secuboxd mesh daemon with mDNS discovery
  - secuboxctl CLI management tool
  - c3box situational awareness dashboard
  - GK-HAM-2025 ZKP authentication system

- Add Debian packaging for secubox-daemon and secubox-c3box

- Fix maintainer in 12 packages to Gerald KERMA <devel@cybermind.fr>
  - secubox-backup, device-intel, mesh, meshname, p2p
  - roadmap, soc, tor, vortex-dns, vortex-firewall
  - watchdog, zkp

- Add JWT authentication to secubox-mesh API

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-25 07:51:17 +01:00
ce81230b75 Add 4 new modules: device-intel, vortex-dns, vortex-firewall, meshname
New modules ported from OpenWRT:
- secubox-device-intel v1.0.0: Asset discovery, MAC vendor lookup, device tagging
- secubox-vortex-dns v1.0.0: DNS firewall with RPZ, blocklists, threat feeds
- secubox-vortex-firewall v1.0.0: nftables IP blocking with threat feeds
- secubox-meshname v1.0.0: Mesh DNS with Avahi/dnsmasq integration

Fixes:
- Remove duplicate WireGuard menu entry (21-wireguard.json)
- Fix vortex-firewall permission error on /etc/nftables.d

Total modules: 45

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-24 11:27:20 +01:00