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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,6 +1,6 @@
# SecuBox MQTT Bridge
**Version:** 0.1.0
**Version:** 0.4.0
**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.

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -8,7 +8,7 @@
* RPCD object: luci.wireguard-dashboard
*/
// Version: 0.2.2
// Version: 0.4.0
var callStatus = rpc.declare({
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();