secubox-deb/docs
CyberMind 122cd6cebc
WebUI Obfuscation - admin.HOSTNAME.secubox.in Only (#96)
* docs(spec+plan): WebUI obfuscation design and implementation plan (ref #44)

Spec: docs/superpowers/specs/2026-05-12-webui-obfuscation-design.md
Plan: docs/superpowers/plans/2026-05-12-webui-obfuscation.md

The design locks the SecuBox WebUI to admin.<HOSTNAME>.<DOMAIN_SUFFIX>
via strict-regex ACLs in HAProxy AND nginx, both driven by
/etc/default/secubox as the single source of truth. New package
secubox-defaults ships the env file; secubox-haproxy API exposes
/webui/admin-domain (info), /webui/nginx-config (JWT, rendered vhost),
/webui/refresh (JWT, cache invalidate). A safe renderer script writes
the nginx vhost atomically; haproxyctl + Python /generate both inject
the strict ACL at the top of http-in and https-in frontends.

Plan has 15 tasks with TDD steps, exact file paths, and complete code
in every step (no TBD/TODO). Acceptance criteria + integration test
script included.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* feat(secubox-defaults): scaffold package skeleton (ref #44)

* feat(secubox-defaults): ship /etc/default/secubox env file (ref #44)

* feat(secubox-defaults): postinst autodetect + dpkg-trigger (ref #44)

* feat(secubox-haproxy): webui_identity helper + tests (ref #44)

Implement webui_identity module that parses /etc/default/secubox
and exposes canonical admin URL + regex pattern for HAProxy acl.

New module:
- api/webui_identity.py: Parses SECUBOX_HOSTNAME and SECUBOX_DOMAIN_SUFFIX
  with LRU cache and invalidation support.

Tests (TDD):
- tests/test_webui_identity.py: 5 test cases covering basic parsing,
  missing hostname validation, custom suffix handling, comment handling,
  and cache invalidation.
- tests/conftest.py: sys.path bootstrap for api/ imports.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(webui_identity): catch OSError on defaults read + test (ref #44)

* feat(secubox-haproxy): GET /webui/admin-domain endpoint (ref #44)

* feat(secubox-haproxy): GET /webui/nginx-config rendered vhost (ref #44)

* feat(secubox-haproxy): POST /webui/refresh cache invalidation (ref #44)

* feat(secubox-haproxy): secubox-render-nginx-webui safe renderer (ref #44)

* feat(haproxyctl): inject strict-regex WebUI ACL at frontend top (ref #44)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(secubox-haproxy): /generate symmetry with strict WebUI ACL (ref #44)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(secubox-haproxy): dpkg-trigger refresh on secubox-defaults-changed (ref #44)

* build(secubox-haproxy): depend on secubox-defaults (ref #44)

* test(infra): integration test for WebUI obfuscation (ref #44)

* docs: HISTORY Session 159 — WebUI obfuscation (ref #44)

Records the complete WebUI obfuscation work: new secubox-defaults
package, three /webui/* endpoints, nginx renderer script, haproxyctl
+ Python generator symmetry, dpkg trigger plumbing, integration test.
Includes notes on the brainstorming → spec → plan → subagent-driven
execution flow and the 6 fix iterations caught by reviewers.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: CyberMind-FR <gandalf@Gk2.net>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 14:07:11 +02:00
..
architecture feat(build): Add kiosk mode + VirtualBox setup + Profile Generator architecture 2026-04-29 09:16:36 +02:00
assets feat(ci): Unified sync-all workflow + eyemote visual banner 2026-05-10 09:28:00 +02:00
design feat(eye-remote): Add recovery boot protocols + unified design charter 2026-04-29 13:01:43 +02:00
errata docs(wiki): Add financing model pages + errata BPI-R4 2026-05-03 18:46:42 +02:00
eye-remote docs(eye-remote): add U-Boot boot commands documentation 2026-04-23 11:32:07 +02:00
hardware feat(eye-remote): Add recovery boot protocols + unified design charter 2026-04-29 13:01:43 +02:00
reference feat(led): Add 3-tier LED HealthBump system with kernel timer triggers 2026-05-08 08:29:08 +02:00
references/gst docs(session106): Add GitHub Issues workflow + GST references 2026-05-06 14:52:44 +02:00
reports docs: Update report with Gitea fix (7.6GB → 2.1GB) 2026-04-30 12:02:15 +02:00
screenshots docs: Add Eye Remote Multigadget skill and wiki 2026-05-10 09:12:42 +02:00
superpowers WebUI Obfuscation - admin.HOSTNAME.secubox.in Only (#96) 2026-05-12 14:07:11 +02:00
wiki feat(ci): Unified sync-all workflow + eyemote visual banner 2026-05-10 09:28:00 +02:00
AI-BUILD-PROMPT.md docs: Add Eye Remote Multigadget skill and wiki 2026-05-10 09:12:42 +02:00
FAQ-BUSYBOX-RESCUE.md feat(kernel): Add complete nftables support + busybox rescue docs 2026-05-08 18:27:30 +02:00
LED-HEALTHBUMP.md feat(led): HealthBump v2.1.0 with activity detection and K2000 party 2026-05-08 11:15:09 +02:00
LIVE-USB.md Add Live USB documentation and wiki pages 2026-03-24 17:59:07 +01:00
MODULES.md Add comprehensive module documentation 2026-03-24 12:25:27 +01:00
OPENWRT-CRT-THEME.md Add OpenWrt implementation prompts for mesh daemon and CRT theme 2026-03-25 08:41:15 +01:00
OPENWRT-DEBIAN-COMPARISON.md Add OpenWRT vs Debian comparison and update migration status 2026-03-26 07:27:31 +01:00
OPENWRT-MASTERLINK.md Add OpenWRT Master-Link client implementation guide 2026-03-26 13:38:38 +01:00
OPENWRT-MESH-DAEMON.md Add OpenWrt implementation prompts for mesh daemon and CRT theme 2026-03-25 08:41:15 +01:00
PROMPT-BUSYBOX-TECHTIP.md feat(kernel): Add complete nftables support + busybox rescue docs 2026-05-08 18:27:30 +02:00
SCREENSHOTS-VM.md Update all module screenshots and documentation 2026-03-26 07:22:52 +01:00
SECUBOX-DEV-METHODOLOGY.md docs(methodology): Emancipate SecuBox-Dev methodology as standalone guide 2026-05-03 07:08:24 +02:00
TOOLS.md docs: Add TOOLS.md and missing README files 2026-04-26 20:38:29 +02:00
UI-GUIDE.md Add UI documentation with module list and theme guide 2026-03-26 07:20:23 +01:00