Commit Graph

9 Commits

Author SHA1 Message Date
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
595bc5c06f feat: Enhanced live network statistics with interface breakdown
Dashboard Enhancements:

1. Real-Time Interface Statistics
   - Per-interface traffic monitoring (br-lan, br-wan)
   - TCP/UDP/ICMP packet breakdown with percentages
   - Total traffic and packet counts per interface
   - Visual progress bars showing protocol distribution
   - Dropped packet alerts when present
   - Auto-refreshing every 5 seconds

2. Improved Flow Display
   - Better flow status showing Active vs Expired counts
   - Enhanced "Network Flows" card subtitle format
   - Changed icon from exchange-alt to stream
   - Clearer separation of active/expired metrics

RPC Backend Changes:

3. Interface Stats in Dashboard API
   - Added "interfaces" object to get_dashboard response
   - Per-interface metrics: tcp_packets, udp_packets, icmp_packets
   - Traffic data: ip_bytes, wire_bytes
   - Quality metrics: capture_dropped packets
   - Dynamically discovers all monitored interfaces

4. Enhanced Flow Statistics
   - Added flows_active and flows_expired to stats object
   - More accurate flow state tracking
   - Better resource utilization metrics

UI/UX Improvements:

5. Live Interface Cards
   - Clean card-based design for each interface
   - Color-coded protocol stats (TCP=blue, UDP=green, ICMP=orange)
   - Responsive grid layout adapts to screen size
   - Real-time percentage calculations
   - Smooth transitions on data updates

6. Visual Hierarchy
   - Interface section positioned between overview stats and apps
   - Clear visual separation with border and padding
   - Consistent color scheme across dashboard
   - Better information density

Technical Details:
- Extracts interface list from netifyd status.json stats object
- Calculates protocol percentages client-side
- Uses grid layout for responsive display
- Leverages existing formatBytes utility
- No performance impact (lightweight rendering)

Benefits:
 See exactly which interface has traffic (LAN vs WAN)
 Understand protocol distribution per interface
 Quickly spot packet drops or issues
 Better network troubleshooting capabilities
 Real-time visibility into router traffic patterns

Example Output:
br-lan: 0 packets (LAN - local network)
br-wan: 85 TCP, 15 UDP, 13 ICMP = 113 total packets (WAN - internet)

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-06 18:53:23 +01:00
8ffd693a85 refactor: Remove debug features from NetIfyd dashboard
Removed Features:
- Debug mode toggle button
- Debug panel and log display
- Update indicator (count and time since last update)
- Debug logging functions (debug, toggleDebug)
- Debug state variables (debugMode, updateCount, errorCount, lastUpdate)
- REFRESH-DEBUG.md documentation

Preserved Features:
 Race condition fix (containers created before poll.add)
 Auto-refresh functionality (5-second polling)
 Data caching (latestDashboardData, latestTopApps, latestTopProtocols)
 Application aggregation function
 All core rendering functions
 Service control and statistics display

Benefits:
- Cleaner, production-ready code
- Reduced code complexity (~120 lines removed)
- Maintains all critical functionality
- Better performance (no debug overhead)

The dashboard now provides a streamlined interface focused on
displaying network intelligence data without development debug features.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-06 18:38:50 +01:00
8d5e4275f6 fix: CrowdSec CAPI registration and enable threat intelligence
CrowdSec Central API (CAPI) Fixed:
- Removed code that disabled online_client on install
- Added proper CAPI registration in crowdsec.defaults
- Registration now works (previous 403 errors were transient)
- Graceful fallback if CAPI registration fails

CAPI Features Now Working:
- Threat intelligence sharing enabled
- Pulling community blocklist (14,997+ IPs)
- Hub updates working without 403 errors
- SSH bruteforce: 12,388 bans from CAPI
- Generic scans: 1,176 bans from CAPI
- SSH exploits: 1,433 bans from CAPI

Registration Flow:
1. Create /etc/machine-id if missing
2. Register local API machine
3. Register with Central API (CAPI)
4. On CAPI failure, create minimal credentials file
5. Update hub index
6. Install default collections

Benefits of CAPI Integration:
- Real-time threat intelligence from global network
- Community-contributed IP blocklists
- Automatic updates for detection scenarios
- Signal sharing to help protect others
- Enhanced protection without manual IP list management

NetIfyd Dashboard Improvements:
- Added data caching for smoother updates
- Application aggregation function
- Fallback stats when data temporarily unavailable
- Better handling of undefined values

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-06 18:33:23 +01:00
5d847319e9 feat: Add comprehensive debug mode and fix refresh race condition
Dashboard Refresh Problem Fixed:
- Race condition where poll.add() was called before containers existed
- Containers were undefined during first poll callback
- DOM updates failed silently with no error logging
- Fixed by creating containers BEFORE setting up polling

Debug Features Added:
- Toggle debug mode with button in header
- Visual debug panel showing last 20 log entries
- Browser console logging with timestamps
- Live update indicator (count + time since last update)
- Error tracking and counting
- Detailed logging of all RPC calls and responses

Debug Panel Features:
- Timestamps for all events
- JSON data preview for API responses
- Auto-scroll with newest entries at top
- Max 20 entries to prevent memory issues
- Hidden by default, shown when debug enabled

Update Indicator:
- Shows "Updates: N | Last: Xs ago" in header
- Updates every second
- Visual feedback that polling is working
- Easy to spot stalled/broken polling

Error Handling:
- Try/catch around all poll callbacks
- Errors logged to debug panel and console
- Error counting for diagnostics
- Polling continues even after errors

Code Improvements:
- Proper container creation order
- Better error handling in load() and polling
- Debug logging throughout lifecycle
- Performance metrics tracking

Documentation:
- Complete analysis in REFRESH-DEBUG.md
- Troubleshooting guide
- Debug mode usage instructions
- Performance considerations

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-06 18:27:34 +01:00
e1c7c79104 feat: Enhanced netifyd metrics and fixed directory structure
Network Intelligence Dashboard Enhancements:
- Add detailed protocol breakdown (TCP/UDP/ICMP) with visual bars
- Display flow metrics (active, expired, purged)
- Show CPU and memory usage for netifyd process
- Add IP bytes vs wire bytes differentiation
- Enhanced stat cards with subtitles and better formatting

RPC Backend Improvements:
- Add tcp_packets, udp_packets, icmp_packets metrics
- Add ip_bytes (payload without ethernet overhead)
- Add flows_active, flows_expired, flows_purged counters
- Add cpu_usage and memory_kb from netifyd status
- Calculate CPU total from user + system time

Directory Structure Fix:
- Create /etc/netify.d/plugins.d on package install
- Create /etc/netify.d/address-groups.d
- Generate minimal netify-categories.json to prevent errors
- Auto-initialize UCI config for secubox-netifyd
- Auto-restart netifyd after directory creation

UCI Configuration:
- Settings: auto_refresh, socket configuration
- Analytics: limits for top apps/protocols/devices
- Data retention configuration

Issue Resolved:
- Netifyd was running but showing 0 flows due to missing directories
- Service now properly captures and analyzes network traffic
- All metrics displaying correctly in dashboard

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-06 18:18:35 +01:00
8fcd34abd0 feat: Netifyd Integration & Build System Improvements (v0.9.1)
Major updates:
- Replace luci-app-netifyd-dashboard with enhanced luci-app-secubox-netifyd
- Add netifyd 5.2.1 package with GCC 13.3/C++17 build fixes
- Fix nd-risks.cpp compilation errors via inline static maps patch
- Enhance local-build.sh with improved package building workflow
- Update secubox-core scripts version to v0.9.1

New Features:
- Complete netifyd dashboard with flows, devices, applications, and settings
- Local data collection with netifyd-collector
- Automated cron-based data aggregation
- RPCd integration for real-time statistics

Build Fixes:
- Patch 001: Fix C++17 inline static maps in nd-risks.hpp and nd-protos.hpp
- Patch 003: Skip ndpi tests to resolve roaring_v2 dependency issues
- Add libatomic dependency
- Include libnetifyd shared libraries in package

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-05 17:35:11 +01:00