- 4-layer architecture visualization (Core, AI, MirrorNet, Certification) - 22+ features with dependency tracking (dependsOn/usedBy) - 80+ components with status indicators - Interactive filters: layer, status, category with localStorage persistence - Feature cards: click to expand and see full dependencies - Live RPCD data refresh (60s auto-refresh) - Standalone HTML page for public access (/dev-status.html) - ES5 compatible for older browsers - Milestone timeline to v1.0 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
12 KiB
Work In Progress (Claude)
Last updated: 2026-03-09 (Dev Status Widget v2.1)
Architecture Reference: SecuBox Fanzine v3 — Les 4 Couches
Recently Completed
2026-03-09
-
Dev Status Widget v2.1 (Dynamic Dashboard)
- Complete redesign with 4-layer architecture visualization
- 22+ features with dependency tracking (dependsOn/usedBy)
- 80+ components with status indicators
- Interactive filters: layer, status, category with localStorage persistence
- Feature cards: click to expand, show full dependencies/components
- Layer cards: click to filter features by layer
- Interconnection graph showing feature dependencies
- Milestone timeline to v1.0 with progress tracking
- Production stats display (185 packages, 226 vhosts, etc.)
- Auto-refresh with live RPCD data (60s interval)
- ES5 compatible for older browsers
- Standalone HTML page:
/dev-status.html(no auth required) - Files:
dev-status-widget.js,dev-status.js,dev-status-standalone.html
-
DNS Zone Configuration Sync
- Fixed BIND zone path mismatch:
/srv/dns/zones/→/etc/bind/zones/ - Added ganimed.fr zone declaration to
named.conf.zones - Synced zone files between LuCI-managed and BIND-loaded paths
- Fixed BIND zone path mismatch:
-
Mitmproxy WAF Memory Optimization
- Diagnosed memory leak (687MB RSS)
- Added flow limits:
--set flow_detail=0 --set hardlimit=500 - Reduced memory to 77MB
- Fixed
/srv/mitmproxy-in/haproxy-routes.jsonfor git.maegia.tv
-
Config Backups Repository
- Created
config-backups/directory with BIND zones - Created private
secubox-configsrepo on local Gitea - Git remote:
git@git.maegia.tv:reepost/secubox-configs.git
- Created
2026-03-08
-
RTTY Remote Control Module (Phase 3 - Web Terminal)
- Web Terminal view: Embeds ttyd (port 7681) via iframe
- Node selector: Local/remote target selection
- Remote detection: Direct ttyd connection or SSH fallback
- RPCD method: start_terminal for remote node terminal info
- Menu: Remote Control → Remote Support → Web Terminal
- Fullscreen and refresh controls
-
RTTY Remote Control Module (Phase 2 - Token-Based Shared Access)
- Token authentication: 6-character codes grant RPC/terminal access without LuCI login
- CLI commands:
rttyctl token generate/list/validate/revoke,rttyctl token-rpc - RPCD methods: token_generate, token_list, token_validate, token_revoke, token_rpc
- Support Panel: Generate code → Share → Support person connects without auth
- Configurable TTL (30m/1h/2h/4h), permission tracking, usage counter
- Local address detection: Direct ubus for local calls (bypasses HTTP auth limits)
- Deployed and tested: Token RPC works for all ubus methods
-
RTTY Remote Control Module (Phase 1 - RPCD Proxy)
- Backend:
secubox-app-rtty-remotewithrttyctlCLI - Frontend:
luci-app-rtty-remotewith KISS dashboard - RPCD Proxy: Execute remote ubus calls to mesh nodes over HTTP
- CLI commands:
rttyctl nodes/rpc/rpc-list/rpc-batch/auth/sessions - RPCD methods: status, get_nodes, rpc_call, rpc_list, get_sessions, connect
- Session tracking with SQLite database
- Master-link integration for authentication
- Tested:
rttyctl rpc 127.0.0.1 system boardworks
- Backend:
-
lldh360.maegia.tv BIND Zone Fix
- DNS was returning NXDOMAIN despite zone file existing
- Root cause: BIND (named) is the authoritative DNS, not dnsmasq
- Zone file
/srv/dns/zones/maegia.tv.zoneexisted but wasn't registered in BIND - Added zone entry to
/etc/bind/named.conf.zones - Restarted BIND (named), domain now resolves correctly
- Site accessible via HTTPS (HTTP 200)
-
HAProxy mitmproxy Port Fix
- Changed mitmproxy-in WAF port from 8890 to 22222
- Fixed UCI config regeneration issue (was overwriting manual edits)
- All vhosts now routing correctly through WAF
-
Vortex DNS Zone Management & Secondary DNS
- Added zone commands:
vortexctl zone list/dump/import/export/reload - Added secondary DNS commands:
vortexctl secondary list/add/remove - Zone dump generates BIND format zone files in
/srv/dns/zones/ - Supports OVH as secondary DNS with AXFR zone transfer
- RPCD methods: zone_list, zone_dump, zone_import, zone_export, zone_reload, secondary_list, secondary_add, secondary_remove
- ACL permissions updated for all new methods
- Enables importing zones from Gandi and becoming authoritative DNS master
- Added zone commands:
-
Maegia Domains Audit & Fix
- Fixed 3 broken domains (503 errors): crt.maegia.tv, git.maegia.tv, glances.maegia.tv
- Created missing vhost UCI configs for all 3 domains
- Added mitmproxy routes: crt→8503, git→3001, glances→61208
- Fixed ganimed.maegia.fr route IP: 127.0.0.1 → 192.168.255.1
- Fixed lldh360.maegia.tv WAF bypass: metablog_lldh360 → mitmproxy_inspector
- All 27 maegia domains now operational (4 have 404 content issues)
2026-03-07
-
HAProxy mitmproxy_inspector Backend Fix
- mitmproxy_inspector backend had NO server section (causing 503 for all WAF vhosts)
- Added UCI server section:
mitmproxy_inspector_srvpointing to 192.168.255.1:8890 - Fixed haproxyctl duplicate userlist warning and _emit_sorted_path_acls indentation
- All vhosts now correctly routing through WAF
-
Lyrion Routing Fix
- Changed lyrion vhost backend from
lyrion_webtomitmproxy_inspector - Was bypassing WAF, now properly routed through mitmproxy-in
- Changed lyrion vhost backend from
-
Jellyfin Route IP Fix
- Fixed mitmproxy route: 192.168.255.1 → 192.168.255.31 (container's actual IP)
- Jellyfin container has dedicated veth interface on br-lan
-
lldh360.maegia.tv Routing Fix + SSL
- Fixed mitmproxy routes: 127.0.0.1 → 192.168.255.1 (all 187 routes updated)
- Restored HAProxy config from backup (haproxyctl generate was corrupted)
- Installed Let's Encrypt SSL certificate (valid until 2026-06-05)
- Enabled HTTP→HTTPS redirect
- Site now accessible via HTTPS
- Site now accessible via HTTP on port 9003
-
cybaxe.gk2.secubox.in Port Conflict Fix
- Changed port from 9000 to 9004 (9000 reserved for Lyrion Music Server)
- Updated metablogizer, HAProxy backend, and mitmproxy routes
- Created placeholder index.html (site content needs gitea sync)
- Site now accessible via HTTPS
-
Mitmproxy-in Port Conflict Fix
- Changed mitmproxy-in WAF port from 8889 to 8890
- Port 8889 conflicted with avatar-tap Streamlit service
- Updated HAProxy mitmproxy_inspector backend configuration
- Fixed HAProxy runtime state caching via socket command
-
Vhosts Recovery
- Started stopped LXC containers: jellyfin, jitsi, peertube, gotosocial, glances
- Fixed glances container cgroup v2 config (cgroup.memory.limit_in_bytes → cgroup2.memory.max)
- Fixed mitmproxy route IPs: 127.0.0.1 → 192.168.255.1 (LXC can't reach host localhost)
- All 11 key vhosts now operational (jellyfin, social, glances, tube, meet, zoo, portal, cloud, photos, lyrion, streamlit)
-
Vhosts-Checker RPCD Fix
- Fixed XHR timeout issue in LuCI dashboard
- Root cause: jshn overhead for 226 vhosts + subshell issues with pipes
- Solution: Direct JSON output with printf, temp file instead of pipes
- Deployed ACL file for authentication
-
ROADMAP.md Generation
- Created comprehensive roadmap from WIP and HISTORY analysis
- Version milestones: v0.19 → v0.20 → v0.21 → v0.22 → v1.0
- Critical path analysis and dependency graph
- Resource requirements and risk register
-
Avatar-Tap Session Capture & Replay
- Backend:
secubox-avatar-tap- passive network tap via mitmproxy - CLI:
avatar-tapctlwith start/stop/list/replay/label/delete commands - LuCI:
luci-app-avatar-tapKISS dashboard with session table - Features: Cookie/auth header capture, session replay, SQLite storage
- Runs in Streamlit LXC container on port 8889 (mitmproxy-in moved to 8890)
- Future: Nitrokey/GPG integration for secure replay authorization
- Backend:
-
PhotoPrism Photo Gallery Deployment
- Linked /mnt/PHOTO (673GB, 391k photos) to PhotoPrism originals
- Fixed HFS+ read-only mount issue (sidecar writes to storage/)
- Indexing in progress: HEIC conversion, thumbnail generation, AI labels
- HAProxy vhost + SSL cert for photos.gk2.secubox.in
-
Service Fixes & HAProxy Vhosts
- Fixed Lyrion music mount: /mnt/MUSIC (1.6TB) now accessible
- Fixed Portal routing (was 503, now working)
- Added missing vhosts: lyrion.gk2.secubox.in, streamlit.gk2.secubox.in
- Requested and installed SSL certs for all 3 new domains
- Fixed ACME webroot configuration (uhttpd home path)
-
Source Code Updates
- Updated default paths: Lyrion→/mnt/MUSIC, PhotoPrism→/mnt/PHOTO
- Committed and pushed to master
2026-03-06
-
PhotoPrism Private Photo Gallery
- Backend:
secubox-app-photoprismwith LXC container (Debian Bookworm) - CLI:
photoprismctlwith install/start/stop/index/import/emancipate commands - LuCI:
luci-app-photoprismKISS dashboard with stats and actions - Features: AI face recognition, object detection, places/maps
- HAProxy integration via mitmproxy (WAF-safe, no bypass)
- SQLite database (simpler, no external DB), FFmpeg transcoding, HEIC support
- Dependencies: libvips42 for image processing
- Backend:
-
AI Gateway
/loginCommand- CLI:
aigatewayctl login [provider]- Interactive or scripted provider authentication - Validates credentials against provider API before saving
- Rollback on validation failure (preserves previous credentials)
- Format warnings: Claude keys should start with
sk-ant-, OpenAI withsk- - RPCD:
loginmethod for LuCI frontend integration - ACL: Added write permission for
loginmethod
- CLI:
2026-03-04
-
SBOM Pipeline for CRA Annex I Compliance
scripts/check-sbom-prereqs.sh- Prerequisites validationscripts/sbom-generate.sh- Multi-source SBOM generationscripts/sbom-audit-feed.sh- PKG_HASH/PKG_LICENSE feed audit.github/workflows/sbom-release.yml- GitHub Actions with CVE gatingSECURITY.md- CRA Art. 13 §6 compliant vulnerability disclosure
-
AI Gateway Full-Stack Implementation
- 3-tier data classification: LOCAL_ONLY, SANITIZED, CLOUD_DIRECT
- Provider routing: LocalAI > Mistral EU > Claude > OpenAI > Gemini > xAI
aigatewayctlCLI with classify/sanitize/provider/audit commandsluci-app-ai-gatewaywith 4 KISS-themed views
2026-03-03
-
Comprehensive Service Audit
- WAF Enforcement: Disabled
waf_bypasson 21 vhosts - Container Autostart: Enabled on 9 essential containers
- Glances Fix: Resolved cgroup mount issue
- 18 LXC Containers Running
- WAF Enforcement: Disabled
-
Vortex DNS Firewall Phases 1-4
- Threat intel aggregator, SQLite blocklist, dnsmasq integration
- HTTP/HTTPS sinkhole server for infected client detection
- DNS Guard AI detection integration
- Mesh threat sharing via secubox-p2p blockchain
-
Image Builder Validation
- Validated
secubox-image.sh,secubox-sysupgrade.sh - Fixed curl redirect issue: Added
-Lflag
- Validated
2026-03-02
- Reverse MWAN WireGuard v2 - Phase 2
- LuCI Dashboard for Mesh Uplinks
- 9 RPC methods for uplink management
- 10-second live polling
2026-03-01
-
Reverse MWAN WireGuard v2 - Phase 1
- WireGuard mesh peers as backup internet uplinks via mwan3 failover
wgctlCLI: uplink list/add/remove/status/test/failover- UCI config for global and per-uplink settings
-
Nextcloud Integration Enhancements
- WAF-safe SSL routing, scheduled backups, SMTP integration
- CalDAV/CardDAV/WebDAV connection info display
In Progress
- RTTY Remote Control Module (Phase 4 - Session Replay)
- Avatar-tap integration for session capture
- Replay captured sessions to target nodes
- Session export/import functionality
Next Up
v1.0 Release Prep
- Session Replay - Avatar-tap integration for session capture/replay
- Remote ttyd Deployment - Auto-install ttyd on mesh nodes
v1.1+ Extended Mesh
- WAF Auto-Ban Tuning (optional, as-needed)
- Sensitivity threshold adjustment based on production traffic
Backlog
- SSMTP / mail host / MX record management (v2)
Strategic Documents
SecuBox_LocalAI_Strategic_Analysis.html— AI Management Layer roadmapSecuBox_AI_Gateway_Hybrid_Architecture.html— Hybrid Local/Cloud architectureSecuBox_MirrorNetworking_Paradigm_Reversal.html— EnigmaBox autopsy → MirrorNetSecuBox_Fanzine_v3_Feb2026.html— 4-layer architecture overview
Blockers / Risks
- No automated regression tests for LuCI views; manual verification required after SCP deploy.
- Guacamole ARM64 pre-built binaries not readily available.