Commit Graph

164 Commits

Author SHA1 Message Date
709fb7a66c fix: Fix JSON syntax error in zigbee2mqtt manifest
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 20:11:23 +01:00
a6a306b021 fix: Remove duplicate packages and disable sheeva64 device
- Remove secubox-app-crowdsec (conflicts with feeds/packages/crowdsec)
- Remove secubox-app-netifyd (conflicts with feeds/packages/netifyd)
- Fix Makefile dependencies: crowdsec-firewall-bouncer, syslog-ng
- Fix luci-app-secubox-portal Makefile (correct luci.mk path)
- Fix luci-app-secubox-security-threats (add BuildPackage)
- Disable sheeva64 device in GitHub Actions and local-build.sh
- Update documentation with correct package names

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 20:02:45 +01:00
7975b22ca3 fix: Improve LAPI repair with retries and better error handling
- Stop CrowdSec before repair for clean state
- Create all required directories with proper permissions
- Regenerate local_api_credentials.yaml if missing
- Wait for LAPI port 8080 with retries before machine registration
- Use 30s timeout for repair operations
- Add retry logic for final LAPI verification
- Better error reporting with detailed steps

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 18:05:48 +01:00
252341e045 feat: Add complete CrowdSec integration for OpenWrt 24.10+
New packages:
- secubox-crowdsec-setup: Automated installation script with:
  - Prerequisites verification (RAM, flash, OpenWrt version)
  - syslog-ng4 configuration for log forwarding
  - CAPI registration and hub setup
  - nftables firewall bouncer configuration
  - Backup/rollback, repair, and uninstall modes

- luci-app-secubox-crowdsec: LuCI dashboard with:
  - Service status and statistics dashboard
  - Active decisions (bans) management
  - Security alerts viewer
  - Collections and bouncers management
  - UCI-based settings configuration

Enhanced existing packages:
- luci-app-crowdsec-dashboard: Added acquisition configuration wizard
- secubox-app-crowdsec: Improved defaults and configuration

Documentation:
- CROWDSEC-OPENWRT-24.md with architecture, installation, and troubleshooting

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 17:58:17 +01:00
2950bc9b2f fix: Use secubox-appstore for app installation status in appstore
Instead of trying to parse opkg output directly, use the same
secubox-appstore list --json command that the modules page uses.
This ensures consistent installation detection across both views.

The get_appstore_apps method now:
1. Gets modules list from secubox-appstore (which properly detects installed packages)
2. Merges installation status into catalog apps
3. Returns apps with correct installed/enabled/status fields

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 16:57:03 +01:00
bcda9a9193 fix: Add installation status check to get_appstore_apps
The app store was showing all apps as not installed because the
get_appstore_apps RPC method didn't check installation status.

Now it:
- Gets list of installed packages via opkg list-installed
- Adds 'installed: true/false' to each app based on whether
  its required package is in the installed list

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 16:53:39 +01:00
229afecffb feat: Add Portal, Hub, Admin sections to portal navigation
Update portal.js sections to include:
- Portal (home page)
- Hub (SecuBox dashboard)
- Admin (Admin Control Panel)
- Security, Network, Monitoring, System (existing)

Update index.js to render Portal/Hub/Admin as links to separate
pages while keeping Security/Network/Monitoring/System as tabs.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 16:48:38 +01:00
3e86952d48 feat: Add SecuBox portal header to Media Flow views
Add portal header and dark theme styling to all Media Flow subviews:
- clients.js: Client statistics with portal header
- services.js: Service statistics with portal header
- history.js: Stream history with portal header
- alerts.js: Streaming alerts with portal header

Each view now includes:
- SecuBox global header with Hub, Admin, Security, Network, Monitoring, System navigation
- Internal Media Flow navigation (Dashboard, Clients, Services, History, Alerts)
- Consistent dark theme styling

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 16:40:00 +01:00
48da7d71ad fix: Add MutationObserver to continuously hide OpenWrt header
- Added startHeaderObserver() for continuous DOM monitoring
- Observer watches for new header elements and hides them immediately
- Added interval-based backup hiding every 100ms
- Ensures OpenWrt header stays hidden even after dynamic content loads

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 16:33:14 +01:00
a604b2da61 fix: More aggressive hiding of OpenWrt header in SecuBox mode
- Enhanced CSS selectors to hide all non-SecuBox headers
- Added visibility:hidden and height:0 for complete removal
- Added JavaScript detection for cyan/blue background headers
- Hide headers that are siblings of secubox-page-wrapper
- Target OpenWrt-specific elements like .showSide and .darkMask

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 16:31:52 +01:00
b88f54d841 feat: Integrate Admin Control Panel and SecuBox Hub into portal navigation
- Added 'Hub' link pointing to main SecuBox dashboard (luci-app-secubox)
- Added 'Admin' link pointing to Admin Control Panel (luci-app-secubox-admin)
- Updated section detection for proper active state highlighting
- Organized sections: Portal, Hub, Admin, Security, Network, Monitoring, System
- Improved path detection for all SecuBox apps and modules

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 16:29:15 +01:00
4b4d1be2f5 feat: Add SecuBox portal header and navigation to luci-app-secubox-admin
- Added SecuBox portal header (SbHeader) to all 9 admin views
- Added internal ADMIN_NAV navigation bar with dark theme styling
- Added Theme.init() for consistent theming across views
- Updated wrapper pattern for proper header/nav/content structure

Views updated:
- dashboard.js (Control Panel)
- cyber-dashboard.js (Cyber Console)
- apps.js (Apps Manager)
- updates.js (Updates)
- catalog-sources.js (Catalog)
- health.js (Health)
- logs.js (Logs)
- settings.js (Settings)
- advanced-settings.js (Advanced Settings)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 16:24:20 +01:00
eb48d9995b fix: Change settings path to /admin/secubox/settings
- Add menu entry for admin/secubox/settings in portal menu
- Update portal.js to use the shorter settings path

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 16:19:16 +01:00
4bb638a2ec fix: Dark theme for internal navigation bars in nDPId and Netifyd
- Change nav bar background from rgba(255,255,255,0.05) to solid #141419
- Add subtle border for visual separation
- Ensures proper dark theme appearance for navigation tabs

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 16:15:27 +01:00
fbbcd86e62 feat: Add internal navigation and dark theming to nDPId and Netifyd apps
- Add internal navigation bars to nDPId (Dashboard, Flows, Settings)
- Add internal navigation bars to Netifyd (Dashboard, Flows, Devices, Applications, Settings)
- Complete dark theme CSS for Netifyd with LuCI element overrides
- Add CSS loading to all Netifyd views
- Version bumps: luci-app-ndpid 1.1.1, luci-app-secubox-netifyd 1.2.1

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 16:10:14 +01:00
a73157846e feat: Add SecuBox portal header to Netifyd views
Add unified SecuBox header navigation to all 5 Netifyd views:
- dashboard.js, devices.js, flows.js, applications.js, settings.js

Pattern: Wrap view content with secubox-page-wrapper and prepend
SbHeader.render() to hide LuCI sidebar when in portal context.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 16:02:07 +01:00
9e1b841d98 feat: Add SecuBox portal header to nDPId views
Add unified SecuBox header navigation to all 3 nDPId views:
- dashboard.js, flows.js, settings.js

Pattern: Wrap view content with secubox-page-wrapper and prepend
SbHeader.render() to hide LuCI sidebar when in portal context.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 15:58:43 +01:00
fec4b5a128 feat: Add Apps section to SecuBox portal navigation
- Add "Apps" tab to header navigation for extended applications
- Create apps.js view showing app categories: Administration, Services, IoT
- Include SecuBox Admin, Cyber Dashboard, vHost Manager, Zigbee2MQTT,
  MagicMirror, and MQTT Bridge
- Move ndpid and netifyd detection to Monitoring section
- Add menu entry for /admin/secubox/apps

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 15:57:26 +01:00
20619fd241 fix: Improve SecuBox theming - dark mode default and hide LuCI tabs
- Change CSS default from light to dark mode in :root selector
  (System Hub common.css in both theme and app)
- Add CSS rules to hide LuCI view tabs (.cbi-tabmenu, ul.tabs, etc.)
  when in SecuBox mode
- Update hideOpenWrtUI() to also hide view tabs via JavaScript

This ensures consistent dark theme styling without depending on
data-secubox-theme attribute timing, and hides LuCI's native
navigation tabs when displaying SecuBox header.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 15:52:38 +01:00
29d5174dcb fix: Correct CDN Cache redirect URL in system-hub link
Remove '/overview' from the redirect path to let the menu's
firstchild action handle the navigation properly.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 15:49:26 +01:00
66aa12d6b6 feat: Add SecuBox portal header to all System Hub views
Add unified SecuBox header navigation to all 10 System Hub views
for consistent portal integration when accessed from SecuBox Portal:
- overview.js, health.js, services.js, diagnostics.js
- logs.js, backup.js, components.js, settings.js
- dev-status.js, remote.js

Pattern: Wrap view content with secubox-page-wrapper and prepend
SbHeader.render() to hide LuCI sidebar when in portal context.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 15:46:48 +01:00
3eacc6c4e7 feat: Add SecuBox portal header to all Network Modes views
Add unified SecuBox header navigation to all 12 Network Modes views
for consistent portal integration when accessed from SecuBox Portal:
- overview.js, router.js, accesspoint.js, doublenat.js
- multiwan.js, relay.js, sniffer.js, travel.js
- vpnrelay.js, dmz.js, wizard.js, settings.js

Pattern: Wrap view content with secubox-page-wrapper and prepend
SbHeader.render() to hide LuCI sidebar when in portal context.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 15:39:13 +01:00
7df952c2a7 feat: Add SecuBox portal header to Client Guardian, Media Flow, and Netdata views
Adds the unified SecuBox portal header navigation to:
- Client Guardian: overview, clients, zones, logs, alerts, parental, settings
- Media Flow: dashboard
- Netdata Dashboard: dashboard, settings

This hides the LuCI sidebar and provides consistent SecuBox navigation
across all dashboards when accessed from the SecuBox Portal.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 15:33:14 +01:00
56ec6f4483 feat: Redesign Media Flow dashboard with dark theme styling
- Complete rewrite of Media Flow dashboard with modern dark theme
- Add inline CSS similar to nDPId dashboard style
- Add stats grid with flow count, stream count, service status
- Add clean cards for active streams display
- Add SecuBox header to CrowdSec overview page
- Fix sidebar visibility in CrowdSec pages

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 15:25:08 +01:00
c4acbe074c fix: Render Media Flow stats directly from initial load data
- Render flow count and streaming count immediately from load() data
- No longer rely on async update after DOM insertion
- Use setTimeout fallback for periodic updates
- Fixes data not appearing on initial page load

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 15:20:42 +01:00
acbed6797a fix: Fix timing issue in Media Flow dashboard data display
- Move updateFlowStats/updateServiceStats calls after DOM is ready
- Use requestAnimationFrame to ensure elements exist before updating
- Fixes "0 flows" display bug when data was actually available

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 15:17:03 +01:00
6624cf5e6e fix: Apply dark theme to Media Flow dashboard
- Fix notice boxes with dark theme compatible colors
- Fix flow stats section background (was white on dark)
- Fix donut chart center fill color for dark theme
- Fix progress bars and text colors throughout
- Use rgba() for semi-transparent backgrounds

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 15:13:10 +01:00
428644e290 fix: Add missing PKG_NAME and PKG_LICENSE in Makefiles
- Add PKG_NAME to luci-app-secubox-portal Makefile
- Add PKG_LICENSE to luci-app-zigbee2mqtt Makefile

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 14:56:30 +01:00
d9511420d3 fix: CrowdSec wizard recovery mode and SecuBox Portal improvements
- Add recovery/reset mode to CrowdSec wizard for bouncer registration issues
- Handle existing bouncer detection with database-level cleanup fallback
- Fix Media Flow pgrep -x issue and add start/stop service ACL permissions
- Fix duplicate nav bar in CrowdSec wizard with aggressive CSS hiding
- Add shared SecuBox header component for consistent navigation
- Fix all portal app links to match actual menu.d paths
- Add UI switcher between SecuBox Portal and standard LuCI
- Hide OpenWrt header and sidebar in SecuBox mode

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 14:50:14 +01:00
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