chore: align modules with secubox theme v0.4

This commit is contained in:
CyberMind-FR 2025-12-29 22:13:38 +01:00
parent 88958eef88
commit b8a7f83cb0
100 changed files with 232 additions and 120 deletions

View File

@ -88,7 +88,7 @@
### 2. Security & Monitoring (2 modules) ### 2. Security & Monitoring (2 modules)
#### luci-app-crowdsec-dashboard #### luci-app-crowdsec-dashboard
- **Version**: 0.2.2-1 - **Version**: 0.4.0-1
- **Status**: ✅ In Heavily Development Stage - **Status**: ✅ In Heavily Development Stage
- **Description**: CrowdSec threat intelligence and IPS dashboard - **Description**: CrowdSec threat intelligence and IPS dashboard
- **Views**: 6 (overview, alerts, decisions, bouncers, metrics, settings) - **Views**: 6 (overview, alerts, decisions, bouncers, metrics, settings)
@ -107,7 +107,7 @@
- **Dependencies**: crowdsec package - **Dependencies**: crowdsec package
#### luci-app-netdata-dashboard #### luci-app-netdata-dashboard
- **Version**: 0.2.2-1 - **Version**: 0.4.0-1
- **Status**: ✅ In Heavily Development Stage - **Status**: ✅ In Heavily Development Stage
- **Description**: Real-time system monitoring with comprehensive metrics - **Description**: Real-time system monitoring with comprehensive metrics
- **Views**: 6 (dashboard, system, network, processes, realtime, settings) - **Views**: 6 (dashboard, system, network, processes, realtime, settings)
@ -130,7 +130,7 @@
### 3. Network Intelligence (2 modules) ### 3. Network Intelligence (2 modules)
#### luci-app-netifyd-dashboard #### luci-app-netifyd-dashboard
- **Version**: 0.2.2-1 - **Version**: 0.4.0-1
- **Status**: ✅ In Heavily Development Stage - **Status**: ✅ In Heavily Development Stage
- **Description**: Deep packet inspection and application classification - **Description**: Deep packet inspection and application classification
- **Views**: 7 (overview, flows, applications, devices, talkers, risks, settings) - **Views**: 7 (overview, flows, applications, devices, talkers, risks, settings)
@ -180,7 +180,7 @@
### 4. VPN & Access Control (3 modules) ### 4. VPN & Access Control (3 modules)
#### luci-app-wireguard-dashboard #### luci-app-wireguard-dashboard
- **Version**: 0.2.2-1 - **Version**: 0.4.0-1
- **Status**: ✅ In Heavily Development Stage - **Status**: ✅ In Heavily Development Stage
- **Description**: WireGuard VPN management and monitoring - **Description**: WireGuard VPN management and monitoring
- **Views**: 6 (overview, peers, config, qrcodes, traffic, settings) - **Views**: 6 (overview, peers, config, qrcodes, traffic, settings)
@ -201,7 +201,7 @@
- **Supported Clients**: iOS, Android, Windows, macOS, Linux - **Supported Clients**: iOS, Android, Windows, macOS, Linux
#### luci-app-client-guardian #### luci-app-client-guardian
- **Version**: 0.2.2-1 - **Version**: 0.4.0-1
- **Status**: ✅ In Heavily Development Stage - **Status**: ✅ In Heavily Development Stage
- **Description**: Network Access Control (NAC) and captive portal - **Description**: Network Access Control (NAC) and captive portal
- **Views**: 9 (overview, clients, zones, alerts, parental, portal, logs, captive, settings) - **Views**: 9 (overview, clients, zones, alerts, parental, portal, logs, captive, settings)
@ -223,7 +223,7 @@
- **Dependencies**: nodogsplash, iptables, arptables - **Dependencies**: nodogsplash, iptables, arptables
#### luci-app-auth-guardian #### luci-app-auth-guardian
- **Version**: 0.2.2-1 - **Version**: 0.4.0-1
- **Status**: ✅ In Heavily Development Stage - **Status**: ✅ In Heavily Development Stage
- **Description**: Advanced authentication and voucher system - **Description**: Advanced authentication and voucher system
- **Views**: 6 (overview, sessions, vouchers, splash, oauth, bypass) - **Views**: 6 (overview, sessions, vouchers, splash, oauth, bypass)
@ -247,7 +247,7 @@
### 5. Bandwidth & Traffic (3 modules) ### 5. Bandwidth & Traffic (3 modules)
#### luci-app-bandwidth-manager #### luci-app-bandwidth-manager
- **Version**: 0.2.2-1 - **Version**: 0.4.0-1
- **Status**: ✅ In Heavily Development Stage - **Status**: ✅ In Heavily Development Stage
- **Description**: Bandwidth management with QoS and quotas - **Description**: Bandwidth management with QoS and quotas
- **Views**: 9 (overview, rules, quotas, usage, clients, media, classes, schedules, settings) - **Views**: 9 (overview, rules, quotas, usage, clients, media, classes, schedules, settings)
@ -272,7 +272,7 @@
- **Commit**: fa9bb2a - "feat: complete Bandwidth Manager implementation" - **Commit**: fa9bb2a - "feat: complete Bandwidth Manager implementation"
#### luci-app-traffic-shaper #### luci-app-traffic-shaper
- **Version**: 0.2.2-1 - **Version**: 0.4.0-1
- **Status**: ✅ In Heavily Development Stage - **Status**: ✅ In Heavily Development Stage
- **Description**: Advanced traffic shaping and QoS control - **Description**: Advanced traffic shaping and QoS control
- **Views**: 5 (overview, classes, rules, presets, stats) - **Views**: 5 (overview, classes, rules, presets, stats)
@ -296,7 +296,7 @@
- **Validation**: ✅ All checks passed - **Validation**: ✅ All checks passed
#### luci-app-media-flow #### luci-app-media-flow
- **Version**: 0.2.2-1 - **Version**: 0.4.0-1
- **Status**: ✅ In Heavily Development Stage - **Status**: ✅ In Heavily Development Stage
- **Description**: Media traffic detection and streaming optimization - **Description**: Media traffic detection and streaming optimization
- **Views**: 5 (dashboard, services, clients, history, alerts) - **Views**: 5 (dashboard, services, clients, history, alerts)
@ -320,7 +320,7 @@
### 6. Performance & Services (3 modules) ### 6. Performance & Services (3 modules)
#### luci-app-cdn-cache #### luci-app-cdn-cache
- **Version**: 0.2.2-1 - **Version**: 0.4.1-1
- **Status**: ✅ In Heavily Development Stage - **Status**: ✅ In Heavily Development Stage
- **Description**: CDN proxy cache for bandwidth optimization - **Description**: CDN proxy cache for bandwidth optimization
- **Views**: 6 (overview, cache, policies, settings, maintenance, statistics) - **Views**: 6 (overview, cache, policies, settings, maintenance, statistics)
@ -343,7 +343,7 @@
- **Dependencies**: nginx-full - **Dependencies**: nginx-full
#### luci-app-vhost-manager #### luci-app-vhost-manager
- **Version**: 0.2.2-1 - **Version**: 0.4.1-1
- **Status**: ✅ In Heavily Development Stage - **Status**: ✅ In Heavily Development Stage
- **Description**: Virtual host and reverse proxy management - **Description**: Virtual host and reverse proxy management
- **Views**: 7 (overview, vhosts, certificates, ssl, redirects, internal, logs) - **Views**: 7 (overview, vhosts, certificates, ssl, redirects, internal, logs)
@ -365,7 +365,7 @@
- **Dependencies**: nginx-ssl, acme (optional) - **Dependencies**: nginx-ssl, acme (optional)
#### luci-app-ksm-manager #### luci-app-ksm-manager
- **Version**: 0.2.2-1 - **Version**: 0.4.0-1
- **Status**: ✅ In Heavily Development Stage - **Status**: ✅ In Heavily Development Stage
- **Description**: Cryptographic key and secret management - **Description**: Cryptographic key and secret management
- **Views**: 8 (overview, keys, certificates, secrets, hsm, ssh, audit, settings) - **Views**: 8 (overview, keys, certificates, secrets, hsm, ssh, audit, settings)
@ -398,21 +398,21 @@
| Module | Version | Views | JS Lines | Methods | Status | | Module | Version | Views | JS Lines | Methods | Status |
|--------|---------|-------|----------|---------|--------| |--------|---------|-------|----------|---------|--------|
| auth-guardian | 0.2.2-1 | 6 | 312 | 13 | ✅ Complete | | auth-guardian | 0.4.0-1 | 6 | 312 | 13 | ✅ Complete |
| bandwidth-manager | 0.2.2-1 | 9 | 936 | 14 | ✅ Complete | | bandwidth-manager | 0.4.0-1 | 9 | 936 | 14 | ✅ Complete |
| cdn-cache | 0.2.2-1 | 6 | 1,255 | 27 | ✅ Complete | | cdn-cache | 0.4.1-1 | 6 | 1,255 | 27 | ✅ Complete |
| client-guardian | 0.2.2-1 | 9 | 2,293 | 29 | ✅ Complete | | client-guardian | 0.4.0-1 | 9 | 2,293 | 29 | ✅ Complete |
| crowdsec-dashboard | 0.2.2-1 | 6 | 2,089 | 12 | ✅ Complete | | crowdsec-dashboard | 0.4.0-1 | 6 | 2,089 | 12 | ✅ Complete |
| ksm-manager | 0.2.2-1 | 8 | 2,423 | 28 | ✅ Complete | | ksm-manager | 0.4.0-1 | 8 | 2,423 | 28 | ✅ Complete |
| media-flow | 0.2.2-1 | 5 | 690 | 10 | ✅ Complete | | media-flow | 0.4.0-1 | 5 | 690 | 10 | ✅ Complete |
| netdata-dashboard | 0.2.2-1 | 6 | 1,554 | 16 | ✅ Complete | | netdata-dashboard | 0.4.0-1 | 6 | 1,554 | 16 | ✅ Complete |
| netifyd-dashboard | 0.2.2-1 | 7 | 1,376 | 12 | ✅ Complete | | netifyd-dashboard | 0.4.0-1 | 7 | 1,376 | 12 | ✅ Complete |
| network-modes | 0.3.1-1 | 7 | 2,104 | 34 | ✅ Complete | | network-modes | 0.3.1-1 | 7 | 2,104 | 34 | ✅ Complete |
| secubox | 0.3.1-1 | 8 | 2,906 | 33 | ✅ Complete | | secubox | 0.3.1-1 | 8 | 2,906 | 33 | ✅ Complete |
| system-hub | 0.3.2-1 | 10 | 4,454 | 18 | ✅ Complete | | system-hub | 0.3.2-1 | 10 | 4,454 | 18 | ✅ Complete |
| traffic-shaper | 0.2.2-1 | 5 | 985 | 16 | ✅ Complete | | traffic-shaper | 0.4.0-1 | 5 | 985 | 16 | ✅ Complete |
| vhost-manager | 0.2.2-1 | 7 | 695 | 13 | ✅ Complete | | vhost-manager | 0.4.1-1 | 7 | 695 | 13 | ✅ Complete |
| wireguard-dashboard | 0.2.2-1 | 6 | 1,571 | 15 | ✅ Complete | | wireguard-dashboard | 0.4.0-1 | 6 | 1,571 | 15 | ✅ Complete |
| **TOTALS** | | **110** | **26,638** | **281** | **100%** | | **TOTALS** | | **110** | **26,638** | **281** | **100%** |
### Code Distribution ### Code Distribution

View File

@ -1,6 +1,6 @@
# MQTT Bridge Module # MQTT Bridge Module
**Version:** 0.1.0 **Version:** 0.4.0
**Status:** Draft **Status:** Draft
SecuBox MQTT Bridge exposes USB dongles and IoT sensors through a themed LuCI interface. SecuBox MQTT Bridge exposes USB dongles and IoT sensors through a themed LuCI interface.

View File

@ -88,7 +88,7 @@
### 2. Security & Monitoring (2 modules) ### 2. Security & Monitoring (2 modules)
#### luci-app-crowdsec-dashboard #### luci-app-crowdsec-dashboard
- **Version**: 0.2.2-1 - **Version**: 0.4.0-1
- **Status**: ✅ In Heavily Development Stage - **Status**: ✅ In Heavily Development Stage
- **Description**: CrowdSec threat intelligence and IPS dashboard - **Description**: CrowdSec threat intelligence and IPS dashboard
- **Views**: 6 (overview, alerts, decisions, bouncers, metrics, settings) - **Views**: 6 (overview, alerts, decisions, bouncers, metrics, settings)
@ -107,7 +107,7 @@
- **Dependencies**: crowdsec package - **Dependencies**: crowdsec package
#### luci-app-netdata-dashboard #### luci-app-netdata-dashboard
- **Version**: 0.2.2-1 - **Version**: 0.4.0-1
- **Status**: ✅ In Heavily Development Stage - **Status**: ✅ In Heavily Development Stage
- **Description**: Real-time system monitoring with comprehensive metrics - **Description**: Real-time system monitoring with comprehensive metrics
- **Views**: 6 (dashboard, system, network, processes, realtime, settings) - **Views**: 6 (dashboard, system, network, processes, realtime, settings)
@ -130,7 +130,7 @@
### 3. Network Intelligence (2 modules) ### 3. Network Intelligence (2 modules)
#### luci-app-netifyd-dashboard #### luci-app-netifyd-dashboard
- **Version**: 0.2.2-1 - **Version**: 0.4.0-1
- **Status**: ✅ In Heavily Development Stage - **Status**: ✅ In Heavily Development Stage
- **Description**: Deep packet inspection and application classification - **Description**: Deep packet inspection and application classification
- **Views**: 7 (overview, flows, applications, devices, talkers, risks, settings) - **Views**: 7 (overview, flows, applications, devices, talkers, risks, settings)
@ -180,7 +180,7 @@
### 4. VPN & Access Control (3 modules) ### 4. VPN & Access Control (3 modules)
#### luci-app-wireguard-dashboard #### luci-app-wireguard-dashboard
- **Version**: 0.2.2-1 - **Version**: 0.4.0-1
- **Status**: ✅ In Heavily Development Stage - **Status**: ✅ In Heavily Development Stage
- **Description**: WireGuard VPN management and monitoring - **Description**: WireGuard VPN management and monitoring
- **Views**: 6 (overview, peers, config, qrcodes, traffic, settings) - **Views**: 6 (overview, peers, config, qrcodes, traffic, settings)
@ -201,7 +201,7 @@
- **Supported Clients**: iOS, Android, Windows, macOS, Linux - **Supported Clients**: iOS, Android, Windows, macOS, Linux
#### luci-app-client-guardian #### luci-app-client-guardian
- **Version**: 0.2.2-1 - **Version**: 0.4.0-1
- **Status**: ✅ In Heavily Development Stage - **Status**: ✅ In Heavily Development Stage
- **Description**: Network Access Control (NAC) and captive portal - **Description**: Network Access Control (NAC) and captive portal
- **Views**: 9 (overview, clients, zones, alerts, parental, portal, logs, captive, settings) - **Views**: 9 (overview, clients, zones, alerts, parental, portal, logs, captive, settings)
@ -223,7 +223,7 @@
- **Dependencies**: nodogsplash, iptables, arptables - **Dependencies**: nodogsplash, iptables, arptables
#### luci-app-auth-guardian #### luci-app-auth-guardian
- **Version**: 0.2.2-1 - **Version**: 0.4.0-1
- **Status**: ✅ In Heavily Development Stage - **Status**: ✅ In Heavily Development Stage
- **Description**: Advanced authentication and voucher system - **Description**: Advanced authentication and voucher system
- **Views**: 6 (overview, sessions, vouchers, splash, oauth, bypass) - **Views**: 6 (overview, sessions, vouchers, splash, oauth, bypass)
@ -247,7 +247,7 @@
### 5. Bandwidth & Traffic (3 modules) ### 5. Bandwidth & Traffic (3 modules)
#### luci-app-bandwidth-manager #### luci-app-bandwidth-manager
- **Version**: 0.2.2-1 - **Version**: 0.4.0-1
- **Status**: ✅ In Heavily Development Stage - **Status**: ✅ In Heavily Development Stage
- **Description**: Bandwidth management with QoS and quotas - **Description**: Bandwidth management with QoS and quotas
- **Views**: 9 (overview, rules, quotas, usage, clients, media, classes, schedules, settings) - **Views**: 9 (overview, rules, quotas, usage, clients, media, classes, schedules, settings)
@ -272,7 +272,7 @@
- **Commit**: fa9bb2a - "feat: complete Bandwidth Manager implementation" - **Commit**: fa9bb2a - "feat: complete Bandwidth Manager implementation"
#### luci-app-traffic-shaper #### luci-app-traffic-shaper
- **Version**: 0.2.2-1 - **Version**: 0.4.0-1
- **Status**: ✅ In Heavily Development Stage - **Status**: ✅ In Heavily Development Stage
- **Description**: Advanced traffic shaping and QoS control - **Description**: Advanced traffic shaping and QoS control
- **Views**: 5 (overview, classes, rules, presets, stats) - **Views**: 5 (overview, classes, rules, presets, stats)
@ -296,7 +296,7 @@
- **Validation**: ✅ All checks passed - **Validation**: ✅ All checks passed
#### luci-app-media-flow #### luci-app-media-flow
- **Version**: 0.2.2-1 - **Version**: 0.4.0-1
- **Status**: ✅ In Heavily Development Stage - **Status**: ✅ In Heavily Development Stage
- **Description**: Media traffic detection and streaming optimization - **Description**: Media traffic detection and streaming optimization
- **Views**: 5 (dashboard, services, clients, history, alerts) - **Views**: 5 (dashboard, services, clients, history, alerts)
@ -320,7 +320,7 @@
### 6. Performance & Services (3 modules) ### 6. Performance & Services (3 modules)
#### luci-app-cdn-cache #### luci-app-cdn-cache
- **Version**: 0.2.2-1 - **Version**: 0.4.1-1
- **Status**: ✅ In Heavily Development Stage - **Status**: ✅ In Heavily Development Stage
- **Description**: CDN proxy cache for bandwidth optimization - **Description**: CDN proxy cache for bandwidth optimization
- **Views**: 6 (overview, cache, policies, settings, maintenance, statistics) - **Views**: 6 (overview, cache, policies, settings, maintenance, statistics)
@ -343,7 +343,7 @@
- **Dependencies**: nginx-full - **Dependencies**: nginx-full
#### luci-app-vhost-manager #### luci-app-vhost-manager
- **Version**: 0.2.2-1 - **Version**: 0.4.1-1
- **Status**: ✅ In Heavily Development Stage - **Status**: ✅ In Heavily Development Stage
- **Description**: Virtual host and reverse proxy management - **Description**: Virtual host and reverse proxy management
- **Views**: 7 (overview, vhosts, certificates, ssl, redirects, internal, logs) - **Views**: 7 (overview, vhosts, certificates, ssl, redirects, internal, logs)
@ -365,7 +365,7 @@
- **Dependencies**: nginx-ssl, acme (optional) - **Dependencies**: nginx-ssl, acme (optional)
#### luci-app-ksm-manager #### luci-app-ksm-manager
- **Version**: 0.2.2-1 - **Version**: 0.4.0-1
- **Status**: ✅ In Heavily Development Stage - **Status**: ✅ In Heavily Development Stage
- **Description**: Cryptographic key and secret management - **Description**: Cryptographic key and secret management
- **Views**: 8 (overview, keys, certificates, secrets, hsm, ssh, audit, settings) - **Views**: 8 (overview, keys, certificates, secrets, hsm, ssh, audit, settings)
@ -398,21 +398,21 @@
| Module | Version | Views | JS Lines | Methods | Status | | Module | Version | Views | JS Lines | Methods | Status |
|--------|---------|-------|----------|---------|--------| |--------|---------|-------|----------|---------|--------|
| auth-guardian | 0.2.2-1 | 6 | 312 | 13 | ✅ Complete | | auth-guardian | 0.4.0-1 | 6 | 312 | 13 | ✅ Complete |
| bandwidth-manager | 0.2.2-1 | 9 | 936 | 14 | ✅ Complete | | bandwidth-manager | 0.4.0-1 | 9 | 936 | 14 | ✅ Complete |
| cdn-cache | 0.2.2-1 | 6 | 1,255 | 27 | ✅ Complete | | cdn-cache | 0.4.1-1 | 6 | 1,255 | 27 | ✅ Complete |
| client-guardian | 0.2.2-1 | 9 | 2,293 | 29 | ✅ Complete | | client-guardian | 0.4.0-1 | 9 | 2,293 | 29 | ✅ Complete |
| crowdsec-dashboard | 0.2.2-1 | 6 | 2,089 | 12 | ✅ Complete | | crowdsec-dashboard | 0.4.0-1 | 6 | 2,089 | 12 | ✅ Complete |
| ksm-manager | 0.2.2-1 | 8 | 2,423 | 28 | ✅ Complete | | ksm-manager | 0.4.0-1 | 8 | 2,423 | 28 | ✅ Complete |
| media-flow | 0.2.2-1 | 5 | 690 | 10 | ✅ Complete | | media-flow | 0.4.0-1 | 5 | 690 | 10 | ✅ Complete |
| netdata-dashboard | 0.2.2-1 | 6 | 1,554 | 16 | ✅ Complete | | netdata-dashboard | 0.4.0-1 | 6 | 1,554 | 16 | ✅ Complete |
| netifyd-dashboard | 0.2.2-1 | 7 | 1,376 | 12 | ✅ Complete | | netifyd-dashboard | 0.4.0-1 | 7 | 1,376 | 12 | ✅ Complete |
| network-modes | 0.3.1-1 | 7 | 2,104 | 34 | ✅ Complete | | network-modes | 0.3.1-1 | 7 | 2,104 | 34 | ✅ Complete |
| secubox | 0.3.1-1 | 8 | 2,906 | 33 | ✅ Complete | | secubox | 0.3.1-1 | 8 | 2,906 | 33 | ✅ Complete |
| system-hub | 0.3.2-1 | 10 | 4,454 | 18 | ✅ Complete | | system-hub | 0.3.2-1 | 10 | 4,454 | 18 | ✅ Complete |
| traffic-shaper | 0.2.2-1 | 5 | 985 | 16 | ✅ Complete | | traffic-shaper | 0.4.0-1 | 5 | 985 | 16 | ✅ Complete |
| vhost-manager | 0.2.2-1 | 7 | 695 | 13 | ✅ Complete | | vhost-manager | 0.4.1-1 | 7 | 695 | 13 | ✅ Complete |
| wireguard-dashboard | 0.2.2-1 | 6 | 1,571 | 15 | ✅ Complete | | wireguard-dashboard | 0.4.0-1 | 6 | 1,571 | 15 | ✅ Complete |
| **TOTALS** | | **110** | **26,638** | **281** | **100%** | | **TOTALS** | | **110** | **26,638** | **281** | **100%** |
### Code Distribution ### Code Distribution

View File

@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-auth-guardian PKG_NAME:=luci-app-auth-guardian
PKG_VERSION:=0.2.2 PKG_VERSION:=0.4.0
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_LICENSE:=MIT PKG_LICENSE:=MIT
PKG_MAINTAINER:=CyberMind <contact@cybermind.fr> PKG_MAINTAINER:=CyberMind <contact@cybermind.fr>

View File

@ -1,6 +1,6 @@
# Auth Guardian for OpenWrt # Auth Guardian for OpenWrt
**Version:** 1.0.0 **Version:** 0.4.0
**Last Updated:** 2025-12-28 **Last Updated:** 2025-12-28
**Status:** Active **Status:** Active

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require auth-guardian.api as api'; 'require auth-guardian.api as api';
return view.extend({ return view.extend({

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require auth-guardian.api as api'; 'require auth-guardian.api as api';
return view.extend({ return view.extend({

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require auth-guardian.api as api'; 'require auth-guardian.api as api';
return view.extend({ return view.extend({

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require auth-guardian.api as api'; 'require auth-guardian.api as api';
return view.extend({ return view.extend({

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
return view.extend({ return view.extend({
render: function() { render: function() {

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require ui'; 'require ui';
'require auth-guardian.api as api'; 'require auth-guardian.api as api';

View File

@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-bandwidth-manager PKG_NAME:=luci-app-bandwidth-manager
PKG_VERSION:=0.2.2 PKG_VERSION:=0.4.0
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_LICENSE:=Apache-2.0 PKG_LICENSE:=Apache-2.0
PKG_MAINTAINER:=CyberMind <contact@cybermind.fr> PKG_MAINTAINER:=CyberMind <contact@cybermind.fr>

View File

@ -1,6 +1,6 @@
# Bandwidth Manager - QoS & Traffic Control # Bandwidth Manager - QoS & Traffic Control
**Version:** 1.0.0 **Version:** 0.4.0
**Last Updated:** 2025-12-28 **Last Updated:** 2025-12-28
**Status:** Active **Status:** Active

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require bandwidth-manager/api as API'; 'require bandwidth-manager/api as API';
return view.extend({ return view.extend({

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require bandwidth-manager/api as API'; 'require bandwidth-manager/api as API';
return view.extend({ return view.extend({

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require bandwidth-manager/api as API'; 'require bandwidth-manager/api as API';
return view.extend({ return view.extend({

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require bandwidth-manager/api as API'; 'require bandwidth-manager/api as API';
return L.view.extend({ return L.view.extend({

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require ui'; 'require ui';
'require form'; 'require form';
'require bandwidth-manager/api as API'; 'require bandwidth-manager/api as API';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require ui'; 'require ui';
'require form'; 'require form';
'require bandwidth-manager/api as API'; 'require bandwidth-manager/api as API';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
return view.extend({ return view.extend({
render: function() { render: function() {

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require form'; 'require form';
'require network'; 'require network';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require poll'; 'require poll';
'require bandwidth-manager/api as API'; 'require bandwidth-manager/api as API';

View File

@ -8,7 +8,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-client-guardian PKG_NAME:=luci-app-client-guardian
PKG_VERSION:=0.2.2 PKG_VERSION:=0.4.0
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_LICENSE:=Apache-2.0 PKG_LICENSE:=Apache-2.0

View File

@ -1,6 +1,6 @@
# luci-app-client-guardian # luci-app-client-guardian
**Version:** 1.0.0 **Version:** 0.4.0
**Last Updated:** 2025-12-28 **Last Updated:** 2025-12-28
**Status:** Active **Status:** Active

View File

@ -8,7 +8,7 @@
* RPCD object: luci.client-guardian * RPCD object: luci.client-guardian
*/ */
// Version: 0.2.2 // Version: 0.4.0
var callStatus = rpc.declare({ var callStatus = rpc.declare({
object: 'luci.client-guardian', object: 'luci.client-guardian',

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require dom'; 'require dom';
'require poll'; 'require poll';
'require uci'; 'require uci';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require dom'; 'require dom';
'require poll'; 'require poll';
'require ui'; 'require ui';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require dom'; 'require dom';
'require poll'; 'require poll';
'require ui'; 'require ui';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require dom'; 'require dom';
'require poll'; 'require poll';
'require ui'; 'require ui';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require dom'; 'require dom';
'require poll'; 'require poll';
'require uci'; 'require uci';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require dom'; 'require dom';
'require ui'; 'require ui';
'require client-guardian.api as api'; 'require client-guardian.api as api';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require dom'; 'require dom';
'require ui'; 'require ui';
'require client-guardian.api as api'; 'require client-guardian.api as api';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require form'; 'require form';
'require ui'; 'require ui';
'require client-guardian/api as API'; 'require client-guardian/api as API';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require dom'; 'require dom';
'require ui'; 'require ui';
'require client-guardian.api as api'; 'require client-guardian.api as api';

View File

@ -8,7 +8,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-crowdsec-dashboard PKG_NAME:=luci-app-crowdsec-dashboard
PKG_VERSION:=0.2.2 PKG_VERSION:=0.4.0
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_LICENSE:=Apache-2.0 PKG_LICENSE:=Apache-2.0

View File

@ -1,6 +1,6 @@
# 🛡️ LuCI CrowdSec Dashboard # 🛡️ LuCI CrowdSec Dashboard
**Version:** 1.0.0 **Version:** 0.4.0
**Last Updated:** 2025-12-28 **Last Updated:** 2025-12-28
**Status:** Active **Status:** Active

View File

@ -8,7 +8,7 @@
* RPCD object: luci.crowdsec-dashboard * RPCD object: luci.crowdsec-dashboard
*/ */
// Version: 0.2.2 // Version: 0.4.0
var callStatus = rpc.declare({ var callStatus = rpc.declare({
object: 'luci.crowdsec-dashboard', object: 'luci.crowdsec-dashboard',

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require dom'; 'require dom';
'require poll'; 'require poll';
'require ui'; 'require ui';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require dom'; 'require dom';
'require poll'; 'require poll';
'require ui'; 'require ui';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require dom'; 'require dom';
'require poll'; 'require poll';
'require ui'; 'require ui';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require dom'; 'require dom';
'require poll'; 'require poll';
'require ui'; 'require ui';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require dom'; 'require dom';
'require poll'; 'require poll';
'require ui'; 'require ui';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require ui'; 'require ui';
'require crowdsec-dashboard/api as API'; 'require crowdsec-dashboard/api as API';

View File

@ -4,7 +4,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-ksm-manager PKG_NAME:=luci-app-ksm-manager
PKG_VERSION:=0.2.2 PKG_VERSION:=0.4.0
PKG_RELEASE:=1 PKG_RELEASE:=1
LUCI_TITLE:=LuCI support for Key Storage Manager LUCI_TITLE:=LuCI support for Key Storage Manager

View File

@ -1,6 +1,6 @@
# LuCI App - Key Storage Manager (KSM) # LuCI App - Key Storage Manager (KSM)
**Version:** 1.0.0 **Version:** 0.4.0
**Last Updated:** 2025-12-28 **Last Updated:** 2025-12-28
**Status:** Active **Status:** Active

View File

@ -8,7 +8,7 @@
* Provides RPC methods for cryptographic key management with HSM support * Provides RPC methods for cryptographic key management with HSM support
*/ */
// Version: 0.2.2 // Version: 0.4.0
var callStatus = rpc.declare({ var callStatus = rpc.declare({
object: 'luci.ksm-manager', object: 'luci.ksm-manager',
@ -164,7 +164,7 @@ return baseclass.extend({
* @returns {Promise<Object>} Status object with running, keystore_unlocked, keys_count, hsm_connected * @returns {Promise<Object>} Status object with running, keystore_unlocked, keys_count, hsm_connected
*/ */
// Version: 0.2.2 // Version: 0.4.0
getStatus: function() { getStatus: function() {
return L.resolveDefault(callStatus(), { return L.resolveDefault(callStatus(), {
running: false, running: false,
@ -179,7 +179,7 @@ return baseclass.extend({
* @returns {Promise<Object>} Info object with openssl_version, gpg_version, hsm_support * @returns {Promise<Object>} Info object with openssl_version, gpg_version, hsm_support
*/ */
// Version: 0.2.2 // Version: 0.4.0
getInfo: function() { getInfo: function() {
return L.resolveDefault(callGetInfo(), { return L.resolveDefault(callGetInfo(), {
openssl_version: 'unknown', openssl_version: 'unknown',
@ -193,7 +193,7 @@ return baseclass.extend({
* @returns {Promise<Object>} Object with devices array * @returns {Promise<Object>} Object with devices array
*/ */
// Version: 0.2.2 // Version: 0.4.0
listHsmDevices: function() { listHsmDevices: function() {
return L.resolveDefault(callListHsmDevices(), { devices: [] }); return L.resolveDefault(callListHsmDevices(), { devices: [] });
}, },
@ -204,7 +204,7 @@ return baseclass.extend({
* @returns {Promise<Object>} Status object with initialized, pin_retries, keys_count * @returns {Promise<Object>} Status object with initialized, pin_retries, keys_count
*/ */
// Version: 0.2.2 // Version: 0.4.0
getHsmStatus: function(serial) { getHsmStatus: function(serial) {
return L.resolveDefault(callGetHsmStatus(serial), { return L.resolveDefault(callGetHsmStatus(serial), {
initialized: false, initialized: false,
@ -221,7 +221,7 @@ return baseclass.extend({
* @returns {Promise<Object>} Result with success boolean * @returns {Promise<Object>} Result with success boolean
*/ */
// Version: 0.2.2 // Version: 0.4.0
initHsm: function(serial, adminPin, userPin) { initHsm: function(serial, adminPin, userPin) {
return callInitHsm(serial, adminPin, userPin); return callInitHsm(serial, adminPin, userPin);
}, },
@ -235,7 +235,7 @@ return baseclass.extend({
* @returns {Promise<Object>} Result with success and key_id * @returns {Promise<Object>} Result with success and key_id
*/ */
// Version: 0.2.2 // Version: 0.4.0
generateHsmKey: function(serial, keyType, keySize, label) { generateHsmKey: function(serial, keyType, keySize, label) {
return callGenerateHsmKey(serial, keyType, keySize, label); return callGenerateHsmKey(serial, keyType, keySize, label);
}, },
@ -245,7 +245,7 @@ return baseclass.extend({
* @returns {Promise<Object>} Object with keys array * @returns {Promise<Object>} Object with keys array
*/ */
// Version: 0.2.2 // Version: 0.4.0
listKeys: function() { listKeys: function() {
return L.resolveDefault(callListKeys(), { keys: [] }); return L.resolveDefault(callListKeys(), { keys: [] });
}, },
@ -259,7 +259,7 @@ return baseclass.extend({
* @returns {Promise<Object>} Result with success, id, and public_key * @returns {Promise<Object>} Result with success, id, and public_key
*/ */
// Version: 0.2.2 // Version: 0.4.0
generateKey: function(type, size, label, passphrase) { generateKey: function(type, size, label, passphrase) {
return callGenerateKey(type, size, label, passphrase || ''); return callGenerateKey(type, size, label, passphrase || '');
}, },
@ -273,7 +273,7 @@ return baseclass.extend({
* @returns {Promise<Object>} Result with success and id * @returns {Promise<Object>} Result with success and id
*/ */
// Version: 0.2.2 // Version: 0.4.0
importKey: function(label, keyData, format, passphrase) { importKey: function(label, keyData, format, passphrase) {
return callImportKey(label, keyData, format, passphrase || ''); return callImportKey(label, keyData, format, passphrase || '');
}, },
@ -287,7 +287,7 @@ return baseclass.extend({
* @returns {Promise<Object>} Result with success and key_data * @returns {Promise<Object>} Result with success and key_data
*/ */
// Version: 0.2.2 // Version: 0.4.0
exportKey: function(id, format, includePrivate, passphrase) { exportKey: function(id, format, includePrivate, passphrase) {
return callExportKey(id, format, includePrivate, passphrase || ''); return callExportKey(id, format, includePrivate, passphrase || '');
}, },
@ -299,7 +299,7 @@ return baseclass.extend({
* @returns {Promise<Object>} Result with success boolean * @returns {Promise<Object>} Result with success boolean
*/ */
// Version: 0.2.2 // Version: 0.4.0
deleteKey: function(id, secureErase) { deleteKey: function(id, secureErase) {
return callDeleteKey(id, secureErase); return callDeleteKey(id, secureErase);
}, },
@ -312,7 +312,7 @@ return baseclass.extend({
* @returns {Promise<Object>} Result with success and csr * @returns {Promise<Object>} Result with success and csr
*/ */
// Version: 0.2.2 // Version: 0.4.0
generateCsr: function(keyId, subjectDn, sanList) { generateCsr: function(keyId, subjectDn, sanList) {
return callGenerateCsr(keyId, subjectDn, sanList || []); return callGenerateCsr(keyId, subjectDn, sanList || []);
}, },
@ -325,7 +325,7 @@ return baseclass.extend({
* @returns {Promise<Object>} Result with success and cert_id * @returns {Promise<Object>} Result with success and cert_id
*/ */
// Version: 0.2.2 // Version: 0.4.0
importCertificate: function(keyId, certData, chain) { importCertificate: function(keyId, certData, chain) {
return callImportCertificate(keyId, certData, chain || ''); return callImportCertificate(keyId, certData, chain || '');
}, },
@ -335,7 +335,7 @@ return baseclass.extend({
* @returns {Promise<Object>} Object with certificates array * @returns {Promise<Object>} Object with certificates array
*/ */
// Version: 0.2.2 // Version: 0.4.0
listCertificates: function() { listCertificates: function() {
return L.resolveDefault(callListCertificates(), { certificates: [] }); return L.resolveDefault(callListCertificates(), { certificates: [] });
}, },
@ -346,7 +346,7 @@ return baseclass.extend({
* @returns {Promise<Object>} Result with valid, chain_valid, expires_in_days * @returns {Promise<Object>} Result with valid, chain_valid, expires_in_days
*/ */
// Version: 0.2.2 // Version: 0.4.0
verifyCertificate: function(certId) { verifyCertificate: function(certId) {
return callVerifyCertificate(certId); return callVerifyCertificate(certId);
}, },
@ -360,7 +360,7 @@ return baseclass.extend({
* @returns {Promise<Object>} Result with success and secret_id * @returns {Promise<Object>} Result with success and secret_id
*/ */
// Version: 0.2.2 // Version: 0.4.0
storeSecret: function(label, secretData, category, autoRotate) { storeSecret: function(label, secretData, category, autoRotate) {
return callStoreSecret(label, secretData, category, autoRotate); return callStoreSecret(label, secretData, category, autoRotate);
}, },
@ -371,7 +371,7 @@ return baseclass.extend({
* @returns {Promise<Object>} Result with success, secret_data, accessed_at * @returns {Promise<Object>} Result with success, secret_data, accessed_at
*/ */
// Version: 0.2.2 // Version: 0.4.0
retrieveSecret: function(secretId) { retrieveSecret: function(secretId) {
return callRetrieveSecret(secretId); return callRetrieveSecret(secretId);
}, },
@ -381,7 +381,7 @@ return baseclass.extend({
* @returns {Promise<Object>} Object with secrets array * @returns {Promise<Object>} Object with secrets array
*/ */
// Version: 0.2.2 // Version: 0.4.0
listSecrets: function() { listSecrets: function() {
return L.resolveDefault(callListSecrets(), { secrets: [] }); return L.resolveDefault(callListSecrets(), { secrets: [] });
}, },
@ -393,7 +393,7 @@ return baseclass.extend({
* @returns {Promise<Object>} Result with success and version * @returns {Promise<Object>} Result with success and version
*/ */
// Version: 0.2.2 // Version: 0.4.0
rotateSecret: function(secretId, newSecretData) { rotateSecret: function(secretId, newSecretData) {
return callRotateSecret(secretId, newSecretData); return callRotateSecret(secretId, newSecretData);
}, },
@ -406,7 +406,7 @@ return baseclass.extend({
* @returns {Promise<Object>} Result with success, key_id, public_key * @returns {Promise<Object>} Result with success, key_id, public_key
*/ */
// Version: 0.2.2 // Version: 0.4.0
generateSshKey: function(label, keyType, comment) { generateSshKey: function(label, keyType, comment) {
return callGenerateSshKey(label, keyType, comment || ''); return callGenerateSshKey(label, keyType, comment || '');
}, },
@ -419,7 +419,7 @@ return baseclass.extend({
* @returns {Promise<Object>} Result with success boolean * @returns {Promise<Object>} Result with success boolean
*/ */
// Version: 0.2.2 // Version: 0.4.0
deploySshKey: function(keyId, targetHost, targetUser) { deploySshKey: function(keyId, targetHost, targetUser) {
return callDeploySshKey(keyId, targetHost, targetUser); return callDeploySshKey(keyId, targetHost, targetUser);
}, },
@ -432,7 +432,7 @@ return baseclass.extend({
* @returns {Promise<Object>} Object with logs array * @returns {Promise<Object>} Object with logs array
*/ */
// Version: 0.2.2 // Version: 0.4.0
getAuditLogs: function(limit, offset, filterType) { getAuditLogs: function(limit, offset, filterType) {
return L.resolveDefault(callGetAuditLogs(limit || 100, offset || 0, filterType || ''), { logs: [] }); return L.resolveDefault(callGetAuditLogs(limit || 100, offset || 0, filterType || ''), { logs: [] });
}, },
@ -443,7 +443,7 @@ return baseclass.extend({
* @returns {string} Formatted type * @returns {string} Formatted type
*/ */
// Version: 0.2.2 // Version: 0.4.0
formatKeyType: function(type) { formatKeyType: function(type) {
var types = { var types = {
'rsa': 'RSA', 'rsa': 'RSA',
@ -462,7 +462,7 @@ return baseclass.extend({
* @returns {string} Formatted storage * @returns {string} Formatted storage
*/ */
// Version: 0.2.2 // Version: 0.4.0
formatStorage: function(storage) { formatStorage: function(storage) {
return storage === 'hsm' ? 'Hardware' : 'Software'; return storage === 'hsm' ? 'Hardware' : 'Software';
}, },
@ -473,7 +473,7 @@ return baseclass.extend({
* @returns {string} Color class * @returns {string} Color class
*/ */
// Version: 0.2.2 // Version: 0.4.0
getCertStatusColor: function(daysRemaining) { getCertStatusColor: function(daysRemaining) {
if (daysRemaining < 0) return 'gray'; if (daysRemaining < 0) return 'gray';
if (daysRemaining < 7) return 'red'; if (daysRemaining < 7) return 'red';
@ -487,7 +487,7 @@ return baseclass.extend({
* @returns {string} Formatted date * @returns {string} Formatted date
*/ */
// Version: 0.2.2 // Version: 0.4.0
formatTimestamp: function(timestamp) { formatTimestamp: function(timestamp) {
if (!timestamp) return 'N/A'; if (!timestamp) return 'N/A';
try { try {

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require poll'; 'require poll';
'require ui'; 'require ui';
'require ksm-manager/api as KSM'; 'require ksm-manager/api as KSM';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require form'; 'require form';
'require ui'; 'require ui';
'require ksm-manager/api as KSM'; 'require ksm-manager/api as KSM';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require poll'; 'require poll';
'require ui'; 'require ui';
'require ksm-manager/api as KSM'; 'require ksm-manager/api as KSM';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require form'; 'require form';
'require ui'; 'require ui';
'require ksm-manager/api as KSM'; 'require ksm-manager/api as KSM';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require poll'; 'require poll';
'require ui'; 'require ui';
'require ksm-manager/api as KSM'; 'require ksm-manager/api as KSM';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require form'; 'require form';
'require ui'; 'require ui';
'require ksm-manager/api as KSM'; 'require ksm-manager/api as KSM';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require form'; 'require form';
'require uci'; 'require uci';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require form'; 'require form';
'require ui'; 'require ui';
'require ksm-manager/api as KSM'; 'require ksm-manager/api as KSM';

View File

@ -4,7 +4,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-media-flow PKG_NAME:=luci-app-media-flow
PKG_VERSION:=0.2.2 PKG_VERSION:=0.4.0
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_LICENSE:=Apache-2.0 PKG_LICENSE:=Apache-2.0
PKG_MAINTAINER:=CyberMind <contact@cybermind.fr> PKG_MAINTAINER:=CyberMind <contact@cybermind.fr>

View File

@ -1,6 +1,6 @@
# LuCI Media Flow - Streaming Detection & Monitoring # LuCI Media Flow - Streaming Detection & Monitoring
**Version:** 1.0.0 **Version:** 0.4.0
**Last Updated:** 2025-12-28 **Last Updated:** 2025-12-28
**Status:** Active **Status:** Active

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require form'; 'require form';
'require ui'; 'require ui';
'require media-flow/api as API'; 'require media-flow/api as API';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require ui'; 'require ui';
'require media-flow/api as API'; 'require media-flow/api as API';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require poll'; 'require poll';
'require ui'; 'require ui';
'require media-flow/api as API'; 'require media-flow/api as API';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require form'; 'require form';
'require media-flow/api as API'; 'require media-flow/api as API';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require ui'; 'require ui';
'require media-flow/api as API'; 'require media-flow/api as API';

View File

@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-mqtt-bridge PKG_NAME:=luci-app-mqtt-bridge
PKG_VERSION:=0.1.0 PKG_VERSION:=0.4.0
PKG_RELEASE:=2 PKG_RELEASE:=2
PKG_LICENSE:=Apache-2.0 PKG_LICENSE:=Apache-2.0
PKG_MAINTAINER:=CyberMind <contact@cybermind.fr> PKG_MAINTAINER:=CyberMind <contact@cybermind.fr>

View File

@ -1,6 +1,6 @@
# SecuBox MQTT Bridge # SecuBox MQTT Bridge
**Version:** 0.1.0 **Version:** 0.4.0
**Status:** Draft **Status:** Draft
USB-aware MQTT orchestrator for SecuBox routers. The application discovers USB serial dongles, bridges sensor payloads to a built-in MQTT broker, and exposes dashboards/settings with SecuBox theme tokens. USB-aware MQTT orchestrator for SecuBox routers. The application discovers USB serial dongles, bridges sensor payloads to a built-in MQTT broker, and exposes dashboards/settings with SecuBox theme tokens.

View File

@ -8,7 +8,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-netdata-dashboard PKG_NAME:=luci-app-netdata-dashboard
PKG_VERSION:=0.2.2 PKG_VERSION:=0.4.0
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_LICENSE:=Apache-2.0 PKG_LICENSE:=Apache-2.0

View File

@ -1,6 +1,6 @@
# LuCI Netdata Dashboard # LuCI Netdata Dashboard
**Version:** 1.0.0 **Version:** 0.4.0
**Last Updated:** 2025-12-28 **Last Updated:** 2025-12-28
**Status:** Active **Status:** Active

View File

@ -8,7 +8,7 @@
* RPCD object: luci.netdata-dashboard * RPCD object: luci.netdata-dashboard
*/ */
// Version: 0.2.2 // Version: 0.4.0
// System stats methods (from RPCD backend) // System stats methods (from RPCD backend)
var callStats = rpc.declare({ var callStats = rpc.declare({

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require poll'; 'require poll';
'require dom'; 'require dom';
'require ui'; 'require ui';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require poll'; 'require poll';
'require dom'; 'require dom';
'require ui'; 'require ui';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require poll'; 'require poll';
'require dom'; 'require dom';
'require ui'; 'require ui';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require ui'; 'require ui';
'require netdata-dashboard/api as API'; 'require netdata-dashboard/api as API';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require poll'; 'require poll';
'require dom'; 'require dom';
'require ui'; 'require ui';

View File

@ -8,7 +8,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-netifyd-dashboard PKG_NAME:=luci-app-netifyd-dashboard
PKG_VERSION:=0.2.2 PKG_VERSION:=0.4.0
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_LICENSE:=Apache-2.0 PKG_LICENSE:=Apache-2.0

View File

@ -1,6 +1,6 @@
# LuCI Netifyd Dashboard # LuCI Netifyd Dashboard
**Version:** 1.0.0 **Version:** 0.4.0
**Last Updated:** 2025-12-28 **Last Updated:** 2025-12-28
**Status:** Active **Status:** Active

View File

@ -8,7 +8,7 @@
* RPCD object: luci.netifyd-dashboard * RPCD object: luci.netifyd-dashboard
*/ */
// Version: 0.2.2 // Version: 0.4.0
var callStatus = rpc.declare({ var callStatus = rpc.declare({
object: 'luci.netifyd-dashboard', object: 'luci.netifyd-dashboard',

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require poll'; 'require poll';
'require dom'; 'require dom';
'require ui'; 'require ui';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require poll'; 'require poll';
'require dom'; 'require dom';
'require ui'; 'require ui';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require poll'; 'require poll';
'require dom'; 'require dom';
'require ui'; 'require ui';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require poll'; 'require poll';
'require dom'; 'require dom';
'require ui'; 'require ui';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require poll'; 'require poll';
'require dom'; 'require dom';
'require ui'; 'require ui';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require ui'; 'require ui';
'require netifyd-dashboard.api as API'; 'require netifyd-dashboard.api as API';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require poll'; 'require poll';
'require dom'; 'require dom';
'require ui'; 'require ui';

View File

@ -86,19 +86,19 @@ const DevStatusWidget = {
moduleStatus: [ moduleStatus: [
{ name: 'SecuBox Central Hub', version: '0.3.1', note: 'Dashboard central' }, { name: 'SecuBox Central Hub', version: '0.3.1', note: 'Dashboard central' },
{ name: 'System Hub', version: '0.3.2', note: 'Centre de contrôle' }, { name: 'System Hub', version: '0.3.2', note: 'Centre de contrôle' },
{ name: 'Traffic Shaper', version: '0.2.2', note: 'CAKE / fq_codel / HTB' }, { name: 'Traffic Shaper', version: '0.4.0', note: 'CAKE / fq_codel / HTB' },
{ name: 'CrowdSec Dashboard', version: '0.2.2', note: 'Détection dintrusions' }, { name: 'CrowdSec Dashboard', version: '0.4.0', note: 'Détection dintrusions' },
{ name: 'Netdata Dashboard', version: '0.2.2', note: 'Monitoring temps réel' }, { name: 'Netdata Dashboard', version: '0.4.0', note: 'Monitoring temps réel' },
{ name: 'Netifyd Dashboard', version: '0.2.2', note: 'Intelligence applicative' }, { name: 'Netifyd Dashboard', version: '0.4.0', note: 'Intelligence applicative' },
{ name: 'Network Modes', version: '0.3.1', note: '5 topologies réseau' }, { name: 'Network Modes', version: '0.3.1', note: '5 topologies réseau' },
{ name: 'WireGuard Dashboard', version: '0.2.2', note: 'VPN + QR codes' }, { name: 'WireGuard Dashboard', version: '0.4.0', note: 'VPN + QR codes' },
{ name: 'Auth Guardian', version: '0.2.2', note: 'OAuth / vouchers' }, { name: 'Auth Guardian', version: '0.4.0', note: 'OAuth / vouchers' },
{ name: 'Client Guardian', version: '0.2.2', note: 'Patch portail captif + montée en version' }, { name: 'Client Guardian', version: '0.4.0', note: 'Patch portail captif + montée en version' },
{ name: 'Bandwidth Manager', version: '0.2.2', note: 'QoS + quotas' }, { name: 'Bandwidth Manager', version: '0.4.0', note: 'QoS + quotas' },
{ name: 'Media Flow', version: '0.2.2', note: 'DPI streaming' }, { name: 'Media Flow', version: '0.4.0', note: 'DPI streaming' },
{ name: 'CDN Cache', version: '0.2.2', note: 'Cache contenu local' }, { name: 'CDN Cache', version: '0.4.1', note: 'Cache contenu local' },
{ name: 'VHost Manager', version: '0.2.2', note: 'Reverse proxy / SSL' }, { name: 'VHost Manager', version: '0.4.1', note: 'Reverse proxy / SSL' },
{ name: 'KSM Manager', version: '0.2.2', note: 'Gestion clés / HSM' } { name: 'KSM Manager', version: '0.4.0', note: 'Gestion clés / HSM' }
], ],
// Overall project statistics // Overall project statistics

View File

@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-traffic-shaper PKG_NAME:=luci-app-traffic-shaper
PKG_VERSION:=0.2.2 PKG_VERSION:=0.4.0
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_LICENSE:=Apache-2.0 PKG_LICENSE:=Apache-2.0
PKG_MAINTAINER:=CyberMind <contact@cybermind.fr> PKG_MAINTAINER:=CyberMind <contact@cybermind.fr>

View File

@ -1,6 +1,6 @@
# Traffic Shaper - Advanced QoS Control # Traffic Shaper - Advanced QoS Control
**Version:** 1.0.0 **Version:** 0.4.0
**Last Updated:** 2025-12-28 **Last Updated:** 2025-12-28
**Status:** Active **Status:** Active

View File

@ -7,7 +7,7 @@
* Handles all RPC calls to the traffic-shaper backend * Handles all RPC calls to the traffic-shaper backend
*/ */
// Version: 0.2.2 // Version: 0.4.0
var callStatus = rpc.declare({ var callStatus = rpc.declare({
object: 'luci.traffic-shaper', object: 'luci.traffic-shaper',
@ -130,7 +130,7 @@ return baseclass.extend({
* Format bandwidth value for display * Format bandwidth value for display
*/ */
// Version: 0.2.2 // Version: 0.4.0
formatBandwidth: function(value) { formatBandwidth: function(value) {
if (!value) return '0 bit/s'; if (!value) return '0 bit/s';
@ -152,7 +152,7 @@ return baseclass.extend({
* Format bytes for display * Format bytes for display
*/ */
// Version: 0.2.2 // Version: 0.4.0
formatBytes: function(bytes) { formatBytes: function(bytes) {
if (!bytes || bytes === 0) return '0 B'; if (!bytes || bytes === 0) return '0 B';
@ -166,7 +166,7 @@ return baseclass.extend({
* Get priority label * Get priority label
*/ */
// Version: 0.2.2 // Version: 0.4.0
getPriorityLabel: function(priority) { getPriorityLabel: function(priority) {
if (priority <= 2) return _('High'); if (priority <= 2) return _('High');
if (priority <= 4) return _('Medium'); if (priority <= 4) return _('Medium');
@ -178,7 +178,7 @@ return baseclass.extend({
* Get priority color class * Get priority color class
*/ */
// Version: 0.2.2 // Version: 0.4.0
getPriorityColor: function(priority) { getPriorityColor: function(priority) {
if (priority <= 2) return 'high-priority'; if (priority <= 2) return 'high-priority';
if (priority <= 4) return 'medium-priority'; if (priority <= 4) return 'medium-priority';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require form'; 'require form';
'require ui'; 'require ui';
'require traffic-shaper/api as API'; 'require traffic-shaper/api as API';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require dom'; 'require dom';
'require poll'; 'require poll';
'require traffic-shaper/api as API'; 'require traffic-shaper/api as API';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require ui'; 'require ui';
'require dom'; 'require dom';
'require traffic-shaper/api as API'; 'require traffic-shaper/api as API';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require form'; 'require form';
'require uci'; 'require uci';
'require traffic-shaper/api as API'; 'require traffic-shaper/api as API';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require dom'; 'require dom';
'require poll'; 'require poll';
'require traffic-shaper/api as API'; 'require traffic-shaper/api as API';

View File

@ -8,7 +8,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-wireguard-dashboard PKG_NAME:=luci-app-wireguard-dashboard
PKG_VERSION:=0.2.2 PKG_VERSION:=0.4.0
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_LICENSE:=Apache-2.0 PKG_LICENSE:=Apache-2.0

View File

@ -1,6 +1,6 @@
# LuCI WireGuard Dashboard # LuCI WireGuard Dashboard
**Version:** 1.0.0 **Version:** 0.4.0
**Last Updated:** 2025-12-28 **Last Updated:** 2025-12-28
**Status:** Active **Status:** Active

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require dom'; 'require dom';
'require ui'; 'require ui';
'require wireguard-dashboard.api as api'; 'require wireguard-dashboard.api as api';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require poll'; 'require poll';
'require dom'; 'require dom';
'require ui'; 'require ui';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require poll'; 'require poll';
'require dom'; 'require dom';
'require ui'; 'require ui';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require dom'; 'require dom';
'require ui'; 'require ui';
'require wireguard-dashboard.api as api'; 'require wireguard-dashboard.api as api';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require ui'; 'require ui';
'require wireguard-dashboard.api as API'; 'require wireguard-dashboard.api as API';

View File

@ -1,5 +1,6 @@
'use strict'; 'use strict';
'require view'; 'require view';
'require secubox-theme/bootstrap as Theme';
'require poll'; 'require poll';
'require dom'; 'require dom';
'require ui'; 'require ui';

View File

@ -8,7 +8,7 @@
* RPCD object: luci.wireguard-dashboard * RPCD object: luci.wireguard-dashboard
*/ */
// Version: 0.2.2 // Version: 0.4.0
var callStatus = rpc.declare({ var callStatus = rpc.declare({
object: 'luci.wireguard-dashboard', object: 'luci.wireguard-dashboard',

View File

@ -0,0 +1,46 @@
'use strict';
'require secubox-theme/theme as Theme';
var initialized = false;
function detectLanguage() {
if (typeof L !== 'undefined' && L.env && L.env.lang)
return L.env.lang;
if (document.documentElement && document.documentElement.getAttribute('lang'))
return document.documentElement.getAttribute('lang');
if (navigator.language)
return navigator.language.split('-')[0];
return 'en';
}
function ensureStylesheet() {
if (typeof document === 'undefined' || !document.head)
return;
var href = L.resource('secubox-theme/secubox-theme.css');
var selector = 'link[data-secubox-theme=\"true\"][href=\"' + href + '\"]';
if (document.querySelector(selector))
return;
var linkEl = document.createElement('link');
linkEl.rel = 'stylesheet';
linkEl.href = href;
linkEl.setAttribute('data-secubox-theme', 'true');
document.head.appendChild(linkEl);
}
function initTheme() {
if (initialized)
return Theme;
initialized = true;
Theme.init({ language: detectLanguage() });
ensureStylesheet();
return Theme;
}
return initTheme();