Commit Graph

135 Commits

Author SHA1 Message Date
fb9722ccd6 feat(bandwidth-manager): Add Smart QoS, Device Groups, and Analytics (Phase 5)
Advanced Bandwidth Manager features v0.5.0

Smart QoS (DPI Integration):
- Real-time application detection via nDPId
- Smart traffic suggestions based on detected patterns
- One-click DPI rule creation for applications
- Gaming, streaming, video conferencing detection
- Heavy downloader identification

Device Groups:
- Create device groups (Family, IoT, Work, Gaming, Kids, Guests)
- Shared quota across group members
- Unified priority assignment per group
- Easy member management via drag-drop UI
- Group usage tracking and visualization

Analytics Dashboard:
- Traffic summary with download/upload totals
- Active client count and per-client averages
- Application traffic breakdown charts
- Protocol distribution pie chart
- Top bandwidth users leaderboard
- Download/upload ratio analysis
- Historical data retention (30 days)
- Period selection (1h, 6h, 24h, 7d, 30d)

Backend Enhancements:
- get_dpi_applications: Fetch detected apps from nDPId
- get_smart_suggestions: AI-powered QoS recommendations
- apply_dpi_rule: Create rules based on app detection
- list_groups/create_group/update_group/delete_group
- add_to_group/remove_from_group: Member management
- get_analytics_summary: Traffic statistics
- get_hourly_data: Historical trends
- record_stats: Cron-based data collection

Menu Additions:
- Smart QoS (order: 10)
- Device Groups (order: 11)
- Analytics (order: 12)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 14:07:54 +01:00
a9e5bc0262 feat: Add SecuBox Portal - Unified WebUI entry point (Phase 4)
New package: luci-app-secubox-portal v1.0.0

Creates unified entry point for all SecuBox applications with:

Portal Features:
- Top navigation bar with SecuBox branding
- Section-based navigation: Dashboard, Security, Network, Monitoring, System
- "Return to Standard LuCI" link for quick access to main LuCI interface
- Real-time service status detection for all apps

Dashboard Section:
- System overview with hostname, model, uptime, memory usage
- Quick stats showing running services count
- Featured apps grid with quick access cards
- Service status indicators (running/stopped)

App Registry:
- Security: CrowdSec, Client Guardian, Auth Guardian
- Network: Bandwidth Manager, Traffic Shaper, WireGuard, Network Modes
- Monitoring: Media Flow, nDPId, Netifyd, Netdata
- System: System Hub, CDN Cache, SecuBox Settings

Styling:
- Full dark theme with cyber aesthetic
- App cards with icon backgrounds and status dots
- Responsive design for mobile devices
- Smooth section transitions with animations

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 14:02:23 +01:00
b314cae528 feat(crowdsec): Add notification settings, interface config, and advanced filtering
Settings View:
- Add notification settings section with SMTP configuration
- Add notification type checkboxes (new bans, alerts, service down, mass events)
- Add firewall bouncer interface configuration (WAN/WAN6/LAN selection)
- Add firewall chain configuration (INPUT/FORWARD)
- Add deny action selector (DROP/REJECT)

Decisions View:
- Add advanced filtering panel with type, duration, and country filters
- Add export to CSV functionality
- Add filter badge showing active filter count
- Add clear filters button
- Enhanced duration parsing for better filtering

These changes align with the OpenWrt CrowdSec guide for proper
configuration management.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 13:56:11 +01:00
30926404dc feat(media-flow): Add nDPId integration for local DPI streaming detection
- Add media-flow-ndpid-collector script for collecting streaming data from nDPId
- Update RPCD backend to detect and use nDPId as primary DPI source
- Update frontend dashboard to show DPI source indicator (nDPId/netifyd/none)
- Add active streams table displaying real-time streaming activity
- Update init.d script to auto-detect and use best available collector
- Remove hard dependency on netifyd, make DPI engines optional
- Bump version to 0.6.0

nDPId provides local deep packet inspection without requiring cloud
subscription, enabling accurate streaming service detection (Netflix,
YouTube, Spotify, etc.) with quality estimation.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 13:51:15 +01:00
3d6b30875e chore: Bump package versions for v0.14.0 release
Version updates:
- luci-app-bandwidth-manager: 0.4.0 → 0.5.0
- luci-app-crowdsec-dashboard: 0.6.0 → 0.7.0
- luci-app-media-flow: 0.5.2 → 0.6.0
- luci-app-ndpid: 1.0.0 → 1.1.0
- luci-app-secubox-netifyd: 1.1.0 → 1.2.0
- secubox-core: 0.9.0 → 0.10.0

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 13:45:27 +01:00
ed52af6ab9 feat(theming): Add custom navigation tabs to Client Guardian and CrowdSec dashboards
- Create nav.js for Client Guardian with SecuBox themed tabs
- Create nav.js for CrowdSec dashboard with themed navigation
- Update all Client Guardian views to use CgNav.renderTabs()
- Update all CrowdSec views to use CsNav.renderTabs()
- Update Client Guardian menu.json paths from /client-guardian/ to /guardian/
- Hide default LuCI tabs via CSS injection for both dashboards

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 13:44:11 +01:00
fa02d44f8d feat: Replace RustDesk with rtty remote access in system-hub
- Add rtty support for reverse proxy terminal access to relay server
- Add ttyd web console with embedded iframe terminal
- Fix pgrep -x issues by replacing with pidof (BusyBox compatible)
- Update API.js to v0.4.0 with rtty parameters
- Rewrite remote.js view with rtty configuration UI:
  - Server host/port/token/description fields
  - SSL/TLS toggle
  - Connect/Disconnect controls
  - Device ID display (auto-generated from MAC)
- Add RPCD methods: ttyd_status, ttyd_install, ttyd_start, ttyd_stop, ttyd_configure
- Update ACL permissions for new methods

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 13:13:21 +01:00
50bd0c872e feat: Enhance monitoring page layout and fix nDPId detailed flows
Monitoring page:
- Move Current Statistics card above histogram charts
- Replace Network Throughput with System Load chart
- Fix API field mapping (usage_percent vs percent)
- Parse load from cpu.load string format

nDPId app:
- Add get_detailed_flows and get_categories RPCD methods
- Fix subshell variable scope bug in RPCD script
- Add interface scanning from /sys/class/net
- Update ACL permissions for new methods
- Enhance flows.js with Array.isArray data handling

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 12:43:01 +01:00
66f4f32655 fix: Handle null response in nDPId settings view
- Add catch() handler for getInterfaces() API call
- Provide fallback interface list if API returns null
- Bump release to r2

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 10:12:51 +01:00
458dd33ef5 fix: Update luci-app-ndpid to v0.9.1 and improve sync script
- Set luci-app-ndpid version to 0.9.1
- Fix sync-openwrt-packages.sh to search subdirectories (base/, packages/)
- Add missing packages: ndpid, crowdsec-firewall-bouncer, secubox-core, etc.
- Add all LuCI SecuBox apps to sync list
- Improve checksums handling

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 09:44:00 +01:00
c9af2b9980 fix: Use baseclass.extend() for nDPId API module
LuCI JavaScript modules must use baseclass.extend() pattern instead
of returning plain objects. This fixes the "factory yields invalid
constructor" error.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 09:40:37 +01:00
8b952523d9 fix: Move luci-app-ndpid to SecuBox menu
- Change path from admin/services/ndpid to admin/secubox/ndpid
- Rename menu title to "nDPId Intelligence"
- Set order 35 (between Network Intelligence and other apps)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 09:39:20 +01:00
c7daeec890 fix: Add execute permission to ndpid-compat init script
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 09:38:09 +01:00
e8e177d655 fix: Netdata Dashboard improvements and bug fixes
- Improve dashboard rendering and service status display
- Fix settings UI layout and validation
- Update RPCD backend for better error handling

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 09:32:36 +01:00
9ef0b6db18 feat: WireGuard Dashboard v0.5.0 - Bug fixes and enhancements
Bug fixes:
- Fix QR code generation with JavaScript fallback library
- Add missing API helper functions (getPeerStatusClass, shortenKey)
- Fix traffic stats subshell variable scope bug
- Fix peer add/remove UCI handling with unique section names

Enhancements:
- Add real-time auto-refresh with poll.add() (5s default)
- Add SVG-based traffic charts component
- Add peer configuration wizard with IP auto-suggestion
- Add multi-interface management with tabs

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 09:32:31 +01:00
e4a553a6d5 feat: Add nDPId package for lightweight DPI (alternative to netifyd)
- Add secubox-app-ndpid: nDPId daemon with bundled libndpi 5.x
- Add luci-app-ndpid: LuCI web interface for nDPId management
- Add migration documentation from netifyd to nDPId
- Uses git dev branch for latest libndpi API compatibility
- Builds nDPId + nDPIsrvd event broker for microservice architecture

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 09:32:23 +01:00
25385fc35d fix: Improve table rendering in Netifyd flows and applications views
- Replace div-based tables with native HTML tables for proper column alignment
- Add inline styles for consistent rendering across themes
- Fix Flow Activity by Interface table layout
- Fix Application List table layout with sortable headers
- Add pill-style badges and progress bars for better UX

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 06:57:14 +01:00
d5d263f3c5 fix: Correct netifyd service status detection in settings UI
The procd service uses 'instance1' as instance name, not 'netifyd'.
Update the status check to iterate all instances instead of looking
for a hardcoded instance name.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 06:35:28 +01:00
c9f3b2a5f8 fix: Update netifyd collector for netifyd 5.x stats format
- Collect available stats from status.json (flows_active, flow_count,
  cpu, memory, interface stats) instead of expecting individual flows
- Save current stats to /tmp/netifyd-stats.json
- Maintain history in /tmp/netifyd-stats-history.json (up to 24h)
- Fix architecture detection in plugin-setup script

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 06:31:23 +01:00
a9a01ced95 fix: Add architecture detection to netifyd-plugin-setup
Netify.ai only provides pre-built plugin packages for x86 architecture.
Add detection to warn users on ARM/MIPS systems and provide alternatives:
- Use netifyd's built-in flow sink for local export
- Base netifyd from OpenWrt includes DPI without plugins

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 06:27:18 +01:00
77a78053e2 feat: Add netifyd plugin support to luci-app-secubox-netifyd (v1.1.0)
- Add netifyd-plugin-setup script for Netify repository management
- Add ipset and kmod-nft-compat dependencies
- Add postinst to create plugin directories and ipsets
- Extend UCI config with new plugin sections:
  - flow_actions: Flow Actions processor plugin
  - streaming: Streaming services IP set (Netflix, YouTube, etc.)
  - category_block: Category-based blocking (malware, ads, tracking)
  - flow_rule: Custom flow rules support
- Update RPCD backend with apply_plugin_config for all plugins:
  - Auto-create ipsets (secubox-bittorrent, secubox-banned, secubox-streaming)
  - Auto-create nftables table/chain when enabled
  - Support for Flow Actions processor, IPSet, and nftables plugins
- Update settings UI with new plugin configuration sections
- Add plugin installation instructions in UI

Plugin packages (from netify.ai repository):
- netify-proc-flow-actions: Flow Actions processor
- netify-sink-socket: Socket sink for local export

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 19:15:49 +01:00
c9f719a8de feat: Update Media Flow for netifyd 5.x compatibility (v0.5.2)
- Adapt RPCD backend to use netifyd 5.x status.json structure
- Read flows_active/flow_count from proper fields
- Extract agent_version instead of version
- Parse interface stats from .stats object
- Add get_network_stats endpoint with CPU/memory metrics
- Update dashboard to show netifyd limitation notice
- Display flow count and network statistics instead of streams

Note: netifyd 5.x requires cloud subscription for application
detection. Local mode only provides aggregate flow statistics.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 18:54:19 +01:00
17bdd6e80b fix: Use pgrep without -x flag for netifyd detection 2026-01-08 18:19:36 +01:00
4909a0382e fix: Remove 'local' keyword from RPCD case blocks (v0.5.1)
POSIX sh doesn't support 'local' inside case statements.
Removed all 'local' declarations in the call handler.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 18:15:13 +01:00
c536c9c0f8 feat: Fix and enhance Media Flow module (v0.5.0)
Major improvements to the Media Flow streaming detection module:

Backend (RPCD):
- Rewrite JSON handling to avoid subshell issues
- Use jq for all JSON processing (more reliable)
- Add delete_alert, clear_history, get_settings, set_settings methods
- Expand streaming service patterns (more services detected)
- Better bandwidth/quality estimation from netifyd data

Data Collection:
- Add media-flow-collector script for periodic data collection
- Add init script with cron job management
- History persists across service restarts
- Configurable retention period

Frontend:
- Remove unused Theme imports
- Fix history view to use correct field names
- Add Clear History button
- Add time period filter with refresh
- Improved table display with category icons

New streaming services detected:
- Video: Peacock, Paramount+, Crunchyroll, Funimation
- Audio: Amazon Music, YouTube Music
- Video calls: FaceTime, WhatsApp

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 18:02:39 +01:00
c68b1b2cc0 feat: Add persistent netifyd collector setup (v1.0.3)
The netifyd collector cron job now persists across reboots:

- Add collector_enabled option to UCI config (secubox-netifyd.sink)
- Create init script (secubox-netifyd-collector) to manage cron job
- Update netifyd-collector-setup with enable/disable/status commands
- Apply collector settings on first boot via uci-defaults

Usage:
  netifyd-collector-setup unix /tmp/netifyd-flows.json  # Enable
  netifyd-collector-setup disable                       # Disable
  netifyd-collector-setup status                        # Show status

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 17:50:28 +01:00
bb4ba0e217 fix: Fix UCI rule deletion to handle index shifting in WAN access
When deleting multiple UCI firewall rules by index, the indices shift
after each deletion. The previous method using section names didn't
work reliably with fw4's anonymous rules.

New approach uses a while loop that:
- Iterates through rules by index
- Deletes matching rule and restarts from beginning
- Continues until no matching rules found

This ensures all secubox_wan_* rules are properly removed before
reapplying new ones.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 17:34:38 +01:00
4eaf1cb27f fix: Simplify WAN access to DMZ-style open ports (v0.6.0-r36)
- Rewrite secubox-wan-access to use src="*" (all zones, DMZ style)
- Remove firewall include script (was causing loops)
- Keep only hotplug script for WAN interface up events
- Rules saved in UCI persist across reboots
- Firewall reload runs in background (&) to avoid blocking
- secubox-core bumped to 0.9.0-3

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 17:31:26 +01:00
512ed12178 fix: Prevent infinite loop in secubox-wan-access (v0.6.0-r35)
- Add apply-noreload command that skips firewall reload
- Firewall include now uses apply-noreload to avoid loop
- apply command still reloads firewall for manual use

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 17:27:09 +01:00
e6749f1b54 feat: Make WAN access rules persistent across firewall/network restarts (v0.6.0-r34)
- Add firewall include script (/etc/firewall.secubox-wan) for fw4 compatibility
- Add hotplug script (/etc/hotplug.d/iface/99-secubox-wan) for WAN interface events
- Configure firewall include in postinst (type=script for fw4)
- secubox-core bumped to 0.9.0-2

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 17:18:05 +01:00
4dc1a6b74c feat: Add WAN zone to default Client Guardian config 2026-01-08 17:01:46 +01:00
c162235268 chore: Bump luci-app-client-guardian to 0.4.0-5 2026-01-08 17:00:45 +01:00
f5c80869df feat: Add WAN/Internet zone to all Client Guardian profiles (v0.6.0-r33)
- Added "wan" zone to all network profiles (family_home, small_business, etc.)
- Zone provides internet access without local network access
- Allows users to easily grant internet-only access to clients

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 17:00:13 +01:00
1788dcf6d2 chore: Bump luci-app-client-guardian to 0.4.0-4 2026-01-08 16:54:49 +01:00
d8f5fcd6e4 fix: Client Guardian remove_client_rules now uses section names (v0.6.0-r32)
- Fix duplicate firewall rules issue by using section names instead of indices
- UCI section deletion now properly handles all rules for a MAC address
- Prevents index shifting problems when deleting multiple rules

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 16:54:23 +01:00
9c7bbe513c chore: Bump luci-app-client-guardian to 0.4.0-3 2026-01-08 16:30:09 +01:00
179224296a fix: Client Guardian zone changes now properly apply firewall rules (v0.6.0-r31)
- Remove duplicate apply_client_rules function (second definition was overriding first)
- Improve zone-based firewall rule application:
  - Proper MAC address normalization (uppercase)
  - Clean rule names without colons (CG_BLOCK_AABBCCDD)
  - Quarantine zone blocks WAN but allows DNS/DHCP
  - Zone settings (internet_access, local_access) properly applied
  - Firewall reload is now synchronous for immediate effect
- Improve remove_client_rules to find and delete all CG_ prefixed rules
- Add debug logging for troubleshooting

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 16:25:10 +01:00
8255cc6f39 feat: Add scheduled backups, live logs, and component detection (v0.6.0-r30)
System Hub enhancements:
- Add cron-based scheduled backup configuration (daily/weekly/monthly)
- Add backup schedule RPCD methods (get_backup_schedule, set_backup_schedule)
- Add live streaming logs with LIVE badge, play/pause, 2s refresh
- Add real component installation detection from secubox state field
- Add service running status detection for components
- Add category-based icons for components (security, network, monitoring)
- Fix status emoji display ( ⚠️ ) for Quick Status Indicators

UI improvements:
- New Scheduled Backups card in backup page with enable/disable toggle
- Time picker for backup schedule (hour/minute selectors)
- Day of week/month selectors for weekly/monthly backups
- Live indicator badge with pulse animation for logs
- Play/Pause button for log streaming control
- New log highlighting with fade-in animation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 15:37:50 +01:00
327cc5b285 feat: Add smart action buttons and fix CrowdSec settings display (v0.6.0-r29)
- Add service control RPCD method (start/stop/restart/reload)
- Add smart action buttons to CrowdSec Settings (Service Control, Register Bouncer, Hub Update)
- Add CrowdSec Console quick access link button
- Fix LAPI status check (use lapi_status field)
- Fix collections display (handle nested response structure)
- Fix System Hub Quick Status Indicators layout (label/value stacking)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 15:02:03 +01:00
e5b6d1dd87 feat: Add CrowdSec Console enrollment to setup wizard (v0.6.0-r28)
- Add console_status, console_enroll, console_disable RPCD methods
- Insert Console enrollment as Step 2 in the 7-step wizard
- Add API declarations and ACL permissions for console operations
- Enable share_manual_decisions, share_tainted, share_context by default on enrollment

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 14:40:24 +01:00
4078b4d7a4 feat: Add LAPI auto-repair and SecuBox theming to CrowdSec Dashboard (v0.6.0-r27)
- Add repair_lapi() RPCD method to auto-fix LAPI configuration issues:
  - Creates /srv/crowdsec/data directory if missing
  - Fixes data_dir and db_path in config.yaml
  - Re-registers localhost machine if needed
  - Restarts CrowdSec and verifies LAPI is working

- Fix register_bouncer() to handle existing bouncers:
  - Deletes existing bouncer before re-registering
  - Gets fresh API key on re-registration

- Fix update_firewall_bouncer_config() UCI path:
  - Changed from crowdsec.bouncer.$key to crowdsec.@bouncer[0].$key
  - Added api_key to allowed parameters

- Rewrite metrics.js with SecuBox cyber-card theming:
  - Use Theme.init() for proper theme initialization
  - Replace cs-* classes with cyber-* classes
  - Add CSS variable fallbacks for light/dark theme support
  - Fix hub data parsing for proper component counts

- Add theme require to wizard.js

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 14:11:16 +01:00
b7fb268f71 feat: Fix Client Guardian RPC, redesign Netifyd devices UI (v0.6.0-r26)
- Fix Client Guardian JS files: replace invalid 'require X as Y' syntax
  with direct RPC declarations (LuCI doesn't support as alias)
- Add factory default profile to Client Guardian profiles.json
- Redesign Netifyd devices page with modern card-based UI:
  - Device type detection with emoji icons
  - Gradient summary cards for stats
  - Responsive grid layout
  - Traffic distribution bars
  - Real-time refresh with pulse animation
- Fix Netifyd RPC calls: use correct luci.secubox-netifyd object name
- Add WAN access control feature to secubox-admin

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 13:52:45 +01:00
b610239551 ok 2026-01-08 09:08:46 +01:00
47975483c5 feat: Add wizard integration to Client Guardian (v0.6.0-r25)
- Add wizard.js view for setup wizard integration
- Profile-based configuration (family, iot, secure, business templates)
- Apply zone settings from wizard profiles
- Integration with SecuBox Admin wizard system

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-08 08:48:22 +01:00
0564de0811 feat: Remove captive portal and add auto-zoning to Client Guardian (v0.6.0-r24)
Major enhancements to Client Guardian:

**Removed Captive Portal:**
- Deleted portal.js and captive.js views
- Removed portal configuration from UCI
- Removed portal RPC methods (get_portal, update_portal, list_sessions, authorize_client, deauthorize_client)
- Cleaned menu and ACL definitions
- Updated default policy from 'captive' to 'quarantine'

**Added Auto-Zoning System:**
- Implemented get_vendor_from_mac() for OUI lookups
- Added apply_auto_zoning() with rule-based zone assignment
- Support for vendor, hostname pattern, and MAC prefix matching
- 8 pre-configured auto-zoning rules (IoT devices, mobile, guests)
- Auto-parking zone for unmatched clients
- GridSection UI for managing auto-zoning rules

**Threat Intelligence Integration:**
- Added threat_policy UCI section
- Auto-ban/quarantine based on threat score thresholds
- Threat indicators on client displays
- Integration with Security Threats Dashboard

**Dashboard Improvements:**
- Fixed boolean conversion (UCI "true"/"false" to JSON 0/1)
- Fixed RPC expect parameter issues causing empty arrays
- Added real-time polling with configurable intervals
- Removed all window.location.reload() calls
- Smooth DOM updates without page flickers

**Settings Enhancements:**
- Added reactiveness section (auto-refresh toggle, interval)
- Added threat intelligence settings
- Removed captive portal settings section
- Updated policy descriptions

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-08 08:44:39 +01:00
91a7227b82 feat: Add wizard manifests for internal LuCI apps (v0.6.0-r23)
CrowdSec Dashboard Wizard:
- Created manifest.json with wizard configuration
- Fields: API URL, API Key, auto-refresh interval, metrics toggle
- Allows quick setup of CrowdSec monitoring dashboard
- UCI config: crowdsec.settings

Netifyd DPI Dashboard Wizard:
- Created manifest.json with wizard configuration
- Fields: socket type, socket path/address/port
- Flow tracking, app detection, max flows settings
- Allows quick setup of deep packet inspection
- UCI config: secubox-netifyd.settings and monitoring sections

Total Wizards Now Available:
- CrowdSec Dashboard (new)
- Netifyd DPI Dashboard (new)
- Domoticz (docker app)
- Lyrion Media Server (docker app)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-07 13:32:43 +01:00
6345268dd8 fix: Filter wizard apps and fix profile apply/rollback (v0.6.0-r22)
Wizard App Filtering:
- Only show apps with has_wizard=true in App Wizards section
- Previously showed all 39 catalog apps, now shows only 2 with wizards
- Improved user experience by hiding apps without configuration wizards

Profile Application Fixes:
- Fixed API method name: apply_profile → applyProfile (camelCase)
- Fixed parameter name: profile_id → profile
- Added proper JSON response handling with success/message fields
- Fixed rollback_profile → rollbackProfile method name
- Implemented rollbackProfile RPC method using secubox-recovery
- Added rollbackProfile to RPC method list registration
- Profile apply now returns structured success/error responses
- Rollback restores last snapshot created before profile application

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-07 13:24:04 +01:00
8b3627777f fix: Add standalone manifest apps to list_apps wizard display (v0.6.0-r20)
- Modified list_apps RPC method to include apps from plugin manifests
- Previously only catalog apps could have has_wizard flag
- Now scans /usr/share/secubox/plugins/*/manifest.json files
- Adds apps with wizard.fields to the apps list even if not in catalog
- If app exists in catalog, adds has_wizard flag
- If app not in catalog, creates new app entry with manifest data
- Fixes wizard page showing "No manifests detected"
- Apps domoticz and lyrion now appear with Configure button

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-07 13:15:56 +01:00
0577410c42 fix: Detect app wizards and return full profile objects (v0.6.0-r16)
- Updated list_apps RPC to scan /usr/share/secubox/plugins/*/manifest.json
- Apps with wizard.fields configuration now get has_wizard: true flag
- Updated secubox-profile to return full JSON profile objects instead of filenames
- Fixes wizard page showing "No profiles available" and "No manifests detected"

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-07 12:34:35 +01:00
937e57c3e7 feat: Add default SecuBox configuration profiles (v0.6.0-r15)
- Add home.profile.json: Residential setup with parental controls, media, smart home
- Add gateway.profile.json: Enterprise security with IDS/IPS, VPN, traffic analysis
- Add dmz.profile.json: Isolated DMZ for self-hosted services with reverse proxy
- Each profile includes recommended apps and network mode configuration

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-07 12:31:00 +01:00