Merge pull request #889 from CyberMind-FR/feat/profiles-phase2-core-wants
Some checks are pending
License Headers / check (push) Waiting to run

feat(profiles): Phase 2 — Requires=secubox-core → Wants= on all units (0.x minor)
This commit is contained in:
CyberMind 2026-07-19 09:10:51 +02:00 committed by GitHub
commit a8a3124387
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
183 changed files with 736 additions and 94 deletions

View File

@ -3,6 +3,16 @@
---
## 2026-07-19 — Profiles Phase 2: Requires=secubox-core → Wants= (branch feat/profiles-phase2-core-wants)
Removed the hard cascade coupling to `secubox-core.service` (a Type=oneshot mkdir+chown with RemainAfterExit). A hard `Requires=` on ~108 units cascade-stops them all when core restarts or fails (e.g. a secubox-core package upgrade) — a thundering-herd outage. `After=` keeps the boot ordering; `Wants=` keeps the soft dependency without the cascade. Prerequisite for the Phase-3 native mass-apply.
- **Source**: 91 units (`packages/*/{debian,systemd}/*.service`) + both scaffolds converted (every `Requires=` line was core-only → safe 1-line sed); future modules are scaffolded with `Wants=`.
- **Live (no herd)**: 162 installed units sed'd in place + `systemctl daemon-reload` only — no service restarts (Requires/Wants is a start-time dependency). Board stayed healthy.
- **Release**: minor bump on the 87 affected packages → CI build + publish to apt.secubox.in.
---
## 2026-07-17 — Session auditing + Companion auth/system/metrics + billets emoji hashtags (branch feat/sessions-companion-emoji)
Sessions became auditable, the two stub Companion modules became real, and billets gained emoji-hashtag quick views. All live-verified on gk2.

View File

@ -3,6 +3,21 @@
---
## ✅ 2026-07-19 : Profils Phase 2 — `Requires=secubox-core``Wants=` (branche feat/profiles-phase2-core-wants)
Retrait de la cascade dure sur `secubox-core.service` (Type=oneshot mkdir+chown, RemainAfterExit) : un `Requires=` sur ~108 units les cascade-stoppait tous si core redémarre/échoue (ex. upgrade du paquet secubox-core) = thundering-herd. `After=` garde l'ordre, `Wants=` garde la dépendance souple **sans** la cascade. Prérequis de l'apply de masse natif (Phase 3).
- **Source** : 91 units (`packages/*/{debian,systemd}/*.service`) + 2 scaffolds (`new-module.sh`/`new-package.sh`) convertis → les futurs modules naissent en `Wants=`. Chaque ligne `Requires=` était core-only ⇒ sed 1-ligne sûr.
- **Live (Option A, sans herd)** : 162 units installés sed en place + `systemctl daemon-reload`**aucun restart**. Board saine (admin/billets 200). Cascade retirée immédiatement.
- **Release** : bump minor sur les 87 paquets affectés → CI build + publish apt.secubox.in.
### ⬜ Next
- **Phase 3 native mass-apply** désormais débloqué (le cascade-stop ne peut plus entraîner d'autres units).
- **Réconciliation boot** (`secubox-profile-apply.service`, décidée enforce/auto-apply).
- **Surfaces API/panel/Companion profiles** + sudoers scopé (guideline webui→ctl).
---
## ✅ 2026-07-17 : Sessions auditables + Companion auth/system/metrics + billets hashtags emoji (branche feat/sessions-companion-emoji)
Sessions traçables, les 2 modules Companion stubs deviennent réels, billets gagne les vues rapides par hashtag emoji. Live-vérifié gk2. Détail dans HISTORY.md.

View File

@ -467,7 +467,7 @@ exit 0
[Unit]
Description=SecuBox <Module> API
After=network.target secubox-core.service
Wants=secubox-core.service
Wants=secubox-core.service # NOT Requires= — see note below
[Service]
UMask=0007
@ -492,6 +492,14 @@ ReadWritePaths=/run/secubox /var/lib/secubox /etc/secubox /var/log/secubox
WantedBy=multi-user.target
```
**Depend on `secubox-core` with `Wants=`, never `Requires=`.** `secubox-core.service`
is a `Type=oneshot`/`RemainAfterExit=yes` that just does `mkdir -p`/`chown` for the
shared runtime dirs. `After=` gives the ordering; `Wants=` gives the soft dependency.
A hard `Requires=secubox-core.service` cascade-STOPS a module whenever core restarts
or fails — and a single `secubox-core` package upgrade would then take down every
module at once (thundering herd). Phase 2 (2026-07-19) converted the ~108 units that
had drifted to `Requires=` back to `Wants=`; the scaffolds emit `Wants=`.
Board-specific units (Pi/MOCHAbin I2C/LED) **must** gate on `ConditionArchitecture=arm64` to skip silently on x86_64 (see #226).
### Slipstream into the system image

View File

@ -1,3 +1,10 @@
secubox-ad-guard (1.1.0-2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-ad-guard (1.0.0-2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox Ad Guard API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
Type=simple

View File

@ -1,3 +1,10 @@
secubox-admin (1.1.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-admin (1.0.0-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox Admin Dashboard API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
UMask=0000

View File

@ -1,3 +1,10 @@
secubox-ai-gateway (1.1.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-ai-gateway (1.0.1-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox Ai-gateway API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
Type=simple

View File

@ -1,3 +1,10 @@
secubox-ai-insights (1.1.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-ai-insights (1.0.0-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox AI Insights - ML Threat Detection API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
UMask=0000

View File

@ -1,3 +1,10 @@
secubox-annuaire (0.4.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-annuaire (0.3.3-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox Annuaire-Miroir — federated trust substrate API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
Type=simple

View File

@ -1,3 +1,10 @@
secubox-appstore (0.4.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-appstore (0.3.3-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox App Store — module catalog API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
Type=simple

View File

@ -1,3 +1,10 @@
secubox-auth (1.1.0-1~bookworm1) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-auth (1.0.4-1~bookworm1) bookworm; urgency=medium
* feat: admin-TOTP requirement is now toggleable from the webui and defaults

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox Auth Guardian API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
UMask=0000

View File

@ -1,3 +1,10 @@
secubox-avatar (1.1.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-avatar (1.0.0-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox Avatar Identity Manager API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
UMask=0000

View File

@ -1,3 +1,10 @@
secubox-backup (1.1.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-backup (1.0.1-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox Backup API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
Type=simple

View File

@ -1,3 +1,10 @@
secubox-c3box (1.1.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-c3box (1.0.0-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox C3box API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
Type=simple

View File

@ -1,3 +1,10 @@
secubox-cdn (1.1.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-cdn (1.0.4-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox SecuBox CDN Cache API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
UMask=0000

View File

@ -1,3 +1,10 @@
secubox-config-advisor (1.1.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-config-advisor (1.0.1-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox Config-advisor API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
Type=simple

View File

@ -1,3 +1,10 @@
secubox-crowdsec (1.1.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-crowdsec (1.0.7-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox SecuBox CrowdSec Dashboard API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
UMask=0000

View File

@ -1,3 +1,10 @@
secubox-cve-triage (1.2.0-1~bookworm1) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-cve-triage (1.1.2-1~bookworm1) bookworm; urgency=medium
* Fix the WAF-probes panel: the aggregator-served routes (User=secubox) could

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox Cve-triage API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
Type=simple

View File

@ -1,3 +1,10 @@
secubox-cyberfeed (1.1.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-cyberfeed (1.0.0-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox CyberFeed - Threat Intelligence API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
Type=simple

View File

@ -1,3 +1,10 @@
secubox-device-intel (1.3.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-device-intel (1.2.2-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox Device-intel API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
Type=simple

View File

@ -1,3 +1,10 @@
secubox-dns-guard (1.1.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-dns-guard (1.0.1-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox Dns-guard API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
Type=simple

View File

@ -1,3 +1,10 @@
secubox-dns-provider (1.1.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-dns-provider (1.0.3-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox DNS Provider API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
Type=simple

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox DNS Provider API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
Type=simple

View File

@ -1,3 +1,10 @@
secubox-dns (1.1.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-dns (1.0.1-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox Dns API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
Type=simple

View File

@ -1,3 +1,10 @@
secubox-dpi (1.3.0-1~bookworm1) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-dpi (1.2.0-1~bookworm1) bookworm; urgency=medium
* #812 Media Buffer — DPI side. Phase 1: media-buffer list/replay/thumb API

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox DPI Dashboard API
After=network.target secubox-core.service netifyd.service
Requires=secubox-core.service
Wants=secubox-core.service
Wants=netifyd.service
[Service]

View File

@ -1,3 +1,10 @@
secubox-droplet (1.2.0-1~bookworm3) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-droplet (1.1.1-1~bookworm3) bookworm; urgency=medium
* postinst now owns /etc/secubox/droplet.toml as secubox:secubox 0640 (was root:root 0600 -> PermissionError).

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox Droplet File Publisher API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
UMask=0000

View File

@ -1,3 +1,10 @@
secubox-fmrelay (0.2.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-fmrelay (0.1.0-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -2,7 +2,7 @@
Description=SecuBox FM Relay — host control plane API (issue #377)
Documentation=https://github.com/CyberMind-FR/secubox-deb/issues/377
After=network.target
Requires=secubox-core.service
Wants=secubox-core.service
# Soft dep: icecast2 must be up before any /start call can succeed,
# but the API itself runs without it (it'll report `red` overall).
Wants=icecast2.service

View File

@ -1,3 +1,10 @@
secubox-frigate (0.2.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-frigate (0.1.0-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox Frigate API shim
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
Type=simple

View File

@ -1,3 +1,10 @@
secubox-gitea (1.5.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-gitea (1.4.3-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox Gitea API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
Type=simple

View File

@ -1,3 +1,10 @@
secubox-glances (1.1.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-glances (1.0.0-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox Glances Dashboard API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
UMask=0000

View File

@ -1,3 +1,10 @@
secubox-haproxy (1.4.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-haproxy (1.3.1-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox HAProxy Dashboard API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
UMask=0000

View File

@ -1,3 +1,10 @@
secubox-hardening (1.1.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-hardening (1.0.2-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox Hardening API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
Type=simple

View File

@ -1,3 +1,10 @@
secubox-identity (1.1.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-identity (1.0.1-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox Identity API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
Type=simple

View File

@ -1,3 +1,10 @@
secubox-iot-guard (1.1.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-iot-guard (1.0.1-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox Iot-guard API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
Type=simple

View File

@ -1,3 +1,10 @@
secubox-ipblock (1.1.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-ipblock (1.0.0-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox IPBlock API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
Type=simple

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox IPBlock API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
Type=simple

View File

@ -1,3 +1,10 @@
secubox-ksm (1.1.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-ksm (1.0.0-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox KSM Memory Optimization API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
UMask=0000

View File

@ -1,3 +1,10 @@
secubox-localrecall (1.1.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-localrecall (1.0.1-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox Localrecall API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
Type=simple

View File

@ -1,3 +1,10 @@
secubox-mac-guard (1.1.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-mac-guard (1.0.0-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox MAC Guard API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
UMask=0000

View File

@ -1,3 +1,10 @@
secubox-mail (2.4.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-mail (2.3.2-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox Mail API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
Type=simple

View File

@ -1,3 +1,10 @@
secubox-matrix (1.1.0-2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-matrix (1.0.0-2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -3,7 +3,7 @@
ConditionPathExists=/etc/secubox/matrix/enabled
Description=SecuBox Matrix API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
Type=simple

View File

@ -3,7 +3,7 @@
ConditionPathExists=/etc/secubox/matrix/enabled
Description=SecuBox Matrix API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
Type=simple

View File

@ -1,3 +1,10 @@
secubox-mcp-server (1.1.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-mcp-server (1.0.1-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox Mcp-server API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
Type=simple

View File

@ -1,3 +1,10 @@
secubox-mediaflow (2.3.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-mediaflow (2.2.0-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox SecuBox Media Flow API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
UMask=0000

View File

@ -1,3 +1,10 @@
secubox-meshname (1.1.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-meshname (1.0.1-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox Meshname API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
Type=simple

View File

@ -1,3 +1,10 @@
secubox-metablogizer (1.4.0-1~bookworm1) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-metablogizer (1.3.0-1~bookworm1) bookworm; urgency=medium
* Publisher wizard: upload zip/html -> gitea version -> sbxwaf route via new

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox MetaBlogizer API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
Type=simple

View File

@ -1,3 +1,10 @@
secubox-metabolizer (1.1.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-metabolizer (1.0.0-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox Metabolizer - Log processor and analyzer API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
UMask=0000

View File

@ -1,3 +1,10 @@
secubox-metacatalog (1.1.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-metacatalog (1.0.0-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox Metacatalog - Service catalog and registry API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
UMask=0000

View File

@ -1,3 +1,10 @@
secubox-mirror (1.1.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-mirror (1.0.0-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox Mirror/CDN Cache API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
UMask=0000

View File

@ -1,3 +1,10 @@
secubox-mitmproxy (1.1.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-mitmproxy (1.0.10-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox Mitmproxy WAF API
After=network.target secubox-core.service lxc.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
Type=simple

View File

@ -1,3 +1,10 @@
secubox-modem (1.1.0-2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-modem (1.0.0-2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox Modem API
After=network.target secubox-core.service ModemManager.service
Requires=secubox-core.service
Wants=secubox-core.service
Wants=ModemManager.service
[Service]

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox Modem API
After=network.target secubox-core.service ModemManager.service
Requires=secubox-core.service
Wants=secubox-core.service
Wants=ModemManager.service
[Service]

View File

@ -1,3 +1,10 @@
secubox-nac (3.1.0-1~bookworm1) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-nac (3.0.0-1~bookworm1) bookworm; urgency=medium
* Device Guardian consolidation (#817): secubox-nac becomes the single

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox SecuBox NAC / Client Guardian API
After=network.target secubox-core.service
Requires=secubox-core.service
Wants=secubox-core.service
[Service]
UMask=0000

View File

@ -1,3 +1,10 @@
secubox-ndpid (1.1.0-1~bookworm1) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-ndpid (1.0.3-1~bookworm1) bookworm; urgency=medium
* feat: bridge the dashboard to the ndpiReader/dpi collector output. nDPId is

View File

@ -1,7 +1,7 @@
[Unit]
Description=SecuBox nDPId API
After=network.target secubox-core.service ndpid.service
Requires=secubox-core.service
Wants=secubox-core.service
Wants=ndpid.service
[Service]

View File

@ -1,3 +1,10 @@
secubox-netdata (1.1.0-1~bookworm2) bookworm; urgency=medium
* Phase 2: Requires=secubox-core.service -> Wants= on this module's unit
(remove the hard cascade-stop when secubox-core restarts/fails).
-- Gerald KERMA <devel@cybermind.fr> Sun, 19 Jul 2026 12:00:00 +0200
secubox-netdata (1.0.4-1~bookworm2) bookworm; urgency=medium
* webui: hybrid-dark cyan reskin (WebUI Panel Guidelines) baked into the package.

Some files were not shown because too many files have changed in this diff Show More