Commit Graph

113 Commits

Author SHA1 Message Date
666ad23767 feat: Add SecuBox portal header to luci-app-secubox views
- Added SbHeader require and wrapper pattern to all 11 view files
- All views now display SecuBox portal header for consistent navigation
- Maintains existing SecuNav tabs for internal navigation

Views updated:
- dashboard.js
- alerts.js
- apps.js
- modules.js
- modules-debug.js
- modules-minimal.js
- dev-status.js
- settings.js
- help.js
- wizard.js
- monitoring.js

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

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

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

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

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-07 13:24:04 +01:00
ed78d4bb49 fix: Handle array response format in wizard data parsing (v0.6.0-r21)
- Fixed wizard page not displaying profiles and apps
- RPC expect parameters extract nested properties automatically
- listApps with expect: {apps: []} returns array directly, not {apps: [...]}
- listProfiles with expect: {profiles: []} returns array directly
- Updated wizard.js to handle both array and object formats
- Added Array.isArray() checks for backward compatibility
- Fixes "No profiles available" and "No manifests detected" errors
- Added debug console logging for troubleshooting

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-07 13:19:39 +01:00
2997ee51b6 fix: Escape apostrophe in French text string (v0.6.0-r19)
- Fixed JavaScript syntax error at line 163 in help.js
- Escaped single quote in "l'équipe" within single-quoted string
- Error: "missing ) after argument list" when loading help page
- Changed _('Écrire à l'équipe') to _('Écrire à l\'équipe')

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-07 13:11:31 +01:00
6b7436783d feat: Add Bug Bounty Program to help page (v0.6.0-r18)
- Added Bug Bounty card in support section with description
- Added Bug Bounty button linking to https://secubox.cybermood.eu/SecuBox_BugBounty_Announcement.html#contact
- Encourages responsible security disclosure with rewards
- Opens in new tab for easy access to program details

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-07 12:45:02 +01:00
fe96791d20 fix: Correct RPC method name for listProfiles (v0.6.0-r17)
- Changed method from 'list_profiles' to 'listProfiles' to match backend
- Fixes wizard showing 'No profiles available'
- Backend uses camelCase method names, not snake_case

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-07 12:39:47 +01:00
e203a8d8c2 fix: Add cyber-checkbox styling to SecuBox settings checkboxes (v0.6.0-r13)
- Add cyber-checkbox class to all checkbox inputs after form render
- Ensures checkboxes are visible and properly styled
- Fixes invisible checkboxes for Enable SecuBox, Debug Mode, etc.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-07 12:20:47 +01:00
9ce67f2da5 fix: Use correct UCI section types in SecuBox settings view (v0.6.0-r12)
- Changed form sections from type 'secubox' to match actual UCI config
- General/Dashboard/Module/Notification sections now use type 'core'
- Alert Thresholds section now uses type 'diagnostics'
- Security Settings section now uses type 'security'
- Advanced Settings section uses type 'core'
- Fixes "This section contains no values yet" errors

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-07 12:18:18 +01:00
4325197e35 fix(packages): add PKG_ARCH:=all and resolve build conflicts
- Add PKG_ARCH:=all to all 29 SecuBox packages for architecture independence
- Fix secubox-core: remove /var directory creation (conflicts with OpenWRT symlink)
- Fix luci-app-secubox: remove PKG_FILE_MODES causing build errors
- Refactor luci-app-network-tweaks: migrate files/ to root/ structure
- Set correct permissions on fix-permissions.sh (755)

Fixes:
- secubox-core now builds successfully (no /var conflict)
- luci-app-secubox installs without file conflicts
- All packages properly marked as architecture-independent

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-02 07:45:37 +01:00
dd588e0520 fix(secubox): complete LuCI interface fixes - all views now functional
Fixed 5 major issues in SecuBox LuCI interface:

1. AppStore Empty (secubox-core v0.8.0-r3)
   - Simplified get_appstore_apps RPCD method
   - Removed complex error handling that was failing silently
   - Added catalog.json (38 KB, 37 plugins) to Makefile installation
   - Result: AppStore now displays 37 plugins in 8 categories

2. Dashboard/Components Empty (secubox-core v0.8.0-r3)
   - Implemented 3 new RPCD methods:
     * get_dashboard_data - Module counts and system uptime
     * get_system_health - CPU, memory, disk metrics with health score
     * get_alerts - System threshold alerts
   - Result: Dashboard shows health score 93/100, system metrics

3. Modules View Empty (luci-app-secubox v0.7.1-r1)
   - Fixed API method name mismatches in api.js:
     * modules → getModules
     * status → getStatus
     * module_info → getModuleInfo
     * health → getHealth
   - Updated ACL with all new RPCD method names
   - Added debug logging to modules.js
   - Removed conflicting config files
   - Result: 61 modules displayed with working filters

4. System Hub Components Empty (luci-app-system-hub v0.5.1-r3)
   - Fixed RPCD backend call: modules → getModules
   - Updated ACL to allow new SecuBox method names
   - Result: 61 components displayed

5. Catalog/Profile/Template Files
   - Added 39 individual plugin catalog files
   - Added 5 profile JSON files (enterprise, home-office, etc.)
   - Added 2 template files (firewall-zone, nginx-vhost)
   - Updated Makefile to install all catalog files

Version bumps:
- secubox-core: 0.8.0-r1 → 0.8.0-r3
- luci-app-secubox: 0.7.0-r6 → 0.7.1-r1
- luci-app-system-hub: 0.5.1-r2 → 0.5.1-r3

Files modified: 13 modified, 46 added, 2 deleted
Lines of code: ~300+ added
RPCD methods: 3 added, 5 fixed
ACL files: 2 updated

Status: Production ready - all backend tests passing

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-01 18:30:58 +01:00
5afb02c815 refactor(luci-app-secubox): remove RPCD backend, depend on secubox-core
Resolves package conflict where both luci-app-secubox and secubox-core
were providing /usr/libexec/rpcd/luci.secubox.

Changes:
- Remove RPCD backend (luci.secubox) from luci-app-secubox
- Add secubox-core as a dependency
- Update Makefile to reflect new architecture
- Remove RPCD file references from helper scripts
- Update documentation

Architecture:
- secubox-core (v0.8.0): Provides framework + RPCD backend
- luci-app-secubox (v0.7.0): Provides LuCI web UI only

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-01 16:48:02 +01:00
12774589fc feat(vhost-manager,network-tweaks): major v2.0 upgrade with dashboards and automation
VHost Manager v2.0:
- Add modern dashboard UI with auto-refresh for Internal Services, Redirects, and Virtual Hosts tabs
- Implement template activation system with one-click deployment (19 services, 6 redirects)
- Add section_id parameter to RPC backend for named VHost profiles
- Enhance API with createVHost() wrapper for template-based creation
- Fix redirect support with nginx return directive validation
- Add action buttons (Edit/Enable/Disable/Remove) to all VHost cards
- Implement confirmation modals for destructive actions
- Update README with comprehensive v2.0 feature documentation
- Add templates.json catalog with pre-configured service/redirect templates

Network Tweaks v1.0:
- Create network services dashboard with dynamic component discovery
- Add RPC backend with component filtering by network capabilities
- Implement cumulative impact tracking (DNS entries, VHosts, ports)
- Add network mode integration for profile-based settings
- Create dashboard.css with responsive grid layouts
- Add 10-second auto-refresh polling for live status updates

New Applications:
- Add luci-app-magicmirror (Smart mirror application)
- Add secubox-app-magicmirror with Docker runtime
- Add luci-app-network-tweaks (Network services monitoring)
- Add secubox-app-adguardhome (DNS filtering)
- Add secubox-app-nextcloud (File sync and sharing)
- Add plugin catalog manifests for AdGuard Home, MagicMirror, Nextcloud

Bug Fixes:
- Fix RPC backend shell script errors (remove local declarations from case statements)
- Fix fs.exec usage in vhosts.js (replace with uci module)
- Fix form rendering in Virtual Hosts view (use proper LuCI patterns)
- Fix file ownership issues (ensure root:root for deployed files)

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-01 14:30:57 +01:00
db1f8f703c feat(appstore+vhost): add 6 popular self-hosted services
Added 6 new applications to both appstore and VHost templates:

New Apps & Templates:
1. 🐳 Portainer v2.21.4 (Hosting)
   - Docker container management UI
   - VHost: portainer.local → :9000
   - WebSocket support for real-time updates

2. 🏡 Home Assistant v2024.12.5 (IoT)
   - Home automation with 2000+ integrations
   - VHost: home.local → :8123
   - WebSocket for real-time device updates

3. 🎬 Jellyfin v10.10.3 (Media)
   - Free media server (Plex alternative)
   - VHost: jellyfin.local → :8096
   - Hardware transcoding support

4. 🔐 Vaultwarden v1.32.7 (Security)
   - Bitwarden-compatible password manager
   - VHost: vault.local → :80
   - HTTPS REQUIRED for mobile apps

5. 🦊 Gitea v1.22.6 (Productivity)
   - Self-hosted Git service (GitHub alternative)
   - VHost: git.local → :3000
   - SSH access supported

6. 📊 Uptime Kuma v1.23.15 (Network)
   - Uptime monitoring with status pages
   - VHost: uptime.local → :3001
   - WebSocket for real-time status

Catalog Stats:
- Appstore: 11 → 17 apps (+6, +55%)
- VHost Templates: 13 → 19 templates (+6, +46%)
- Appstore size: 9.6KB → 15KB (+5.4KB)
- VHost templates size: 7.7KB → 12KB (+4.3KB)

Version Updates:
- appstore/apps.json: v1.2 → v1.3
- vhost-manager/templates.json: v1.0 → v1.1

All new apps:
- Docker-based for easy deployment
- Stable status
- Pre-configured VHost templates
- SSL/Auth/WebSocket settings included

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-01 09:13:38 +01:00
f59ca75e08 feat(appstore): add Nextcloud and AdGuard Home
Added 2 new applications to SecuBox appstore catalog:

New Apps:
- Nextcloud v30.0.2 - Self-hosted cloud storage and collaboration platform
- AdGuard Home v0.107.54 - Network-wide ad blocker with DNS-over-HTTPS/TLS

Nextcloud (Productivity):
- File sync and share platform (Dropbox alternative)
- Calendar, contacts, mail, video calls, collaborative editing
- Requirements: 512MB RAM, 2GB storage
- Supports SQLite, MySQL, PostgreSQL

AdGuard Home (Network):
- Network-wide ad and tracker blocker (Pi-hole alternative)
- DNS-over-HTTPS/TLS support
- Parental controls and detailed analytics
- Requirements: 128MB RAM, 100MB storage

Catalog Stats:
- Total apps: 11 (was 9)
- File size: 9.6KB (was 7.9KB)
- Metadata version: 1.2

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-01 08:44:07 +01:00
2f86558944 feat(appstore): add LocalAI, Citadel, ISPConfig, and Mail-in-a-Box
Added 4 new applications to SecuBox appstore catalog:

New Apps:
- LocalAI v2.25.0 - Self-hosted OpenAI-compatible API for LLMs
- Citadel v9.99 - Complete groupware solution (email/calendar/collaboration)
- ISPConfig v3.2.12 - Web hosting control panel
- Mail-in-a-Box v70.0 - Easy-to-deploy email server

New Categories:
- AI & Machine Learning (🤖)
- Productivity (📧)
- Hosting & Control Panels (🖥️)

Catalog Stats:
- Total apps: 9 (was 5)
- Total categories: 7 (was 4)
- File size: 7.9KB (was 4.2KB)
- Metadata version: 1.1

All new apps use Docker containers for easy deployment.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-01 08:40:56 +01:00
668c7d76ca fix(secubox): use Package/luci/install macro for proper htdocs/root handling
- Replace manual CP commands with
- This ensures proper integration with luci.mk build system
- Fixes appstore files not being included in built packages
- Bump version to 0.7.0-6

The issue was that manually copying htdocs and root bypassed luci.mk's
install logic. Now we call the parent installer first, then add our
custom /usr/share/secubox directories.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-31 14:23:49 +01:00
5c80aa61c0 fix(secubox): replace luci.mk call with explicit install for appstore files
The root cause of empty appstore was that Package/luci/install macro
was not installing files from usr/share/secubox/* directories.

Changes:
- Removed $(call Package/luci/install,$(1)) macro
- Manually implemented all install steps explicitly:
  - Copy htdocs to /www
  - Copy root/* to package root
  - Explicitly create /usr/share/secubox directories
  - Explicitly install appstore/apps.json
  - Explicitly install profiles/*.json

This ensures data files are packaged correctly in the IPK.

Version: 0.7.0-5

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-31 13:41:00 +01:00
7b8864a036 debug(secubox): add verbose logging for appstore install
Added debugging output to understand why appstore catalog isn't being
included in package builds. The install section now:
- Checks if source file exists before attempting install
- Shows full paths being used
- Displays directory contents if file is missing
- Exits with error if file not found (fail-fast)

This will help diagnose whether the issue is:
- Wrong CURDIR path during build
- Files not present in build directory
- Permissions issue preventing access

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-31 13:33:57 +01:00
43568ef41b fix(secubox): make postinst script non-failing and add auto-recovery
The postinst script was failing installation (exit 1) when the appstore
catalog wasn't found, which prevented package upgrades from completing.

Changes:
1. Removed exit 1 - installation now continues even if file is missing
2. Added auto-recovery: tries to restore from /rom overlay if available
3. Provides clear status feedback (✓ or ✗) for appstore catalog
4. Gives helpful error message with recovery instructions
5. Always exits with 0 to allow installation to complete

This fixes upgrades from 0.7.0-r2 to 0.7.0-r4 where the directory
structure changed from .appstore to appstore.

Version: 0.7.0-4

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-31 13:17:07 +01:00
c3cc47bb40 fix(secubox): remove directories from PKG_FILE_MODES to fix build
The build was failing with:
  chown: cannot access '/usr/share/secubox': No such file or directory

This happened because PKG_FILE_MODES was trying to set permissions on
directories that don't exist at the time file modes are applied during
package creation.

Solution:
- Removed all directory entries from PKG_FILE_MODES
- Removed apps.json file entry (INSTALL_DATA sets 644 automatically)
- Kept only executable files that need explicit 755 permissions

How it works now:
- $(INSTALL_DIR) automatically creates directories with 755 permissions
- $(INSTALL_DATA) automatically installs files with 644 permissions
- PKG_FILE_MODES only specifies exceptions (executable scripts = 755)
- postinst script sets permissions again as safety measure

This follows OpenWrt package best practices where PKG_FILE_MODES
should only specify permissions that differ from the defaults set
by the installation macros.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-31 13:14:38 +01:00
201b869486 chore: remove old .appstore directory from git tracking
Cleanup after renaming .appstore/ to appstore/ directory.
These files are now tracked in their new location.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-31 13:07:19 +01:00
0edb6ef69a fix(secubox): improve Makefile install and add postinst verification
Enhanced package installation to ensure appstore files are properly
installed with correct permissions during both fresh installs and upgrades.

Changes to Makefile:
1. Added explicit PKG_FILE_MODES for all data directories and files:
   - /usr/share/secubox: 755
   - /usr/share/secubox/appstore: 755
   - /usr/share/secubox/appstore/apps.json: 644
   - /usr/share/secubox/profiles: 755

2. Improved install section:
   - Added file existence check before installing profiles
   - Added install verification message for appstore catalog
   - Better comments for clarity

3. Added postinst script:
   - Verifies appstore catalog exists after installation
   - Sets proper permissions on all data directories/files
   - Reloads RPCD service to pick up new methods
   - Provides installation feedback to user
   - Fails with warning if appstore catalog missing

This ensures the appstore will be populated on fresh firmware installs
and properly updated during package upgrades.

Version: 0.7.0-3

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-31 13:05:33 +01:00
edd29ad481 chore(secubox): bump version to 0.7.0-2
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-31 12:39:07 +01:00
b00d13b84a fix(secubox): rename .appstore to appstore to fix package build
Renamed .appstore directory to appstore (without dot prefix) to ensure
proper inclusion in OpenWrt package builds. Hidden directories (starting
with .) can be problematic during tarball creation and package installation.

Changes:
- Renamed .appstore/ to appstore/
- Updated Makefile install path references
- Updated RPCD script APPSTORE_JSON path
- Fixed file permissions to 644 for apps.json

This fixes the issue where appstore appears empty on fresh firmware
installations.

New path: /usr/share/secubox/appstore/apps.json
Old path: /usr/share/secubox/.appstore/apps.json

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-31 12:38:47 +01:00
e2c2f64167 feat(secubox): implement conditional debug logging
Added debugMode flag that checks URL hash or localStorage setting.
Debug logging only outputs when enabled via:
- URL: /#/admin/secubox/apps#debug
- Console: localStorage.setItem('secubox_debug', 'true')

All debug logs prefixed with [AppStore] or [Modules] for clarity.
Warnings and errors remain in production for critical issues.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-31 11:59:35 +01:00
60ff5ad3f1 feat(secubox): add close button to app details modal
Added a modal footer with a Close button in the app details view.
The footer includes:
- Styled separator line with border-top
- Right-aligned Close button
- Calls ui.hideModal() on click

This provides a clear way to dismiss the modal without needing to
click outside or use the escape key.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-31 11:55:54 +01:00
298961a537 chore(secubox): bump version to 0.7.0-1
Updated package version from 0.6.1-0 to 0.7.0-1 to reflect:
- Fixed appstore race condition causing empty initial load
- Fixed RPC expect parameter for getAppstoreApps
- Improved error handling in apps and modules views
- Added debug logging for troubleshooting
- Fixed modules render data flow

Updated API version from 0.3.1 to 0.7.0

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-31 11:52:07 +01:00
f08d28d70b fix(secubox): correct RPC expect parameter for getAppstoreApps
Fixed appstore showing "No applications match the selected filter" by correcting
the RPC declaration expect parameter.

Issue: The RPC declaration had:
  expect: { apps: [], categories: {} }

This caused the RPC framework to return only the apps array instead of the full
response object, resulting in:
  - data = Array(5) instead of { apps: [...], categories: {...} }
  - data.apps = undefined
  - data.categories = undefined

Fix: Changed to:
  expect: { }

This returns the full response object as-is from the backend, allowing proper
access to both data.apps and data.categories properties.

Also added extensive debug logging to troubleshoot the data flow.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-31 11:51:13 +01:00
bd032be85f fix(secubox): resolve race condition in appstore and modules data loading
Fixed issue where first page load would show empty apps/modules list, requiring
a refresh to display data.

Changes:
- Added error handling in refreshData() for both apps.js and modules.js
- Added null/empty data checks before storing results
- Fixed render() to use data parameter first, then fallback to cached instance data
- Added console logging for debugging empty responses
- Added user-friendly error notifications when API calls fail

The render function now properly uses:
  var apps = (data && data.apps) || this.appsData || [];
  var modules = (data && data.modules) || this.modulesData || [];

This ensures the data passed from load() is used on first render, preventing
the empty state on initial page load.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-31 11:48:18 +01:00
8e4ebeb2d5 chore: update local build tooling 2025-12-30 19:28:20 +01:00
280dd91798 release: bump secubox hub to 0.6.1-0 2025-12-30 14:42:45 +01:00
d71fef2e4e feat(mqtt-bridge): sync latest UI updates 2025-12-30 10:13:14 +01:00
e4c9ec0237 feat(appstore): add normalized catalog manifests 2025-12-30 08:48:41 +01:00
92eff5aad7 refactor secubox app packaging and theme 2025-12-29 21:57:12 +01:00
2000265646 domoticz: add docker app manifest and docs 2025-12-29 17:34:26 +01:00
3c0003614d profiles: add presets and wizard integration 2025-12-29 17:22:34 +01:00
eab24f9609 secubox: add first-run and app wizards 2025-12-29 17:14:04 +01:00
d566a84dda feat: theme-aligned monitoring and seccubox logs 2025-12-29 15:41:13 +01:00
54e0b5df6c feat: cascade navigation and zigbee presets 2025-12-29 14:40:22 +01:00
4dca3c1917 Update theme selector and deploy tooling 2025-12-29 10:55:51 +01:00
9f23940fe5 Bump luci-app-secubox to 0.5.1 2025-12-29 09:29:14 +01:00
1e45053728 SecuBox v0.5.0-A UI polish 2025-12-29 09:27:52 +01:00
9b9becd0a8 navbar 2025-12-29 09:03:49 +01:00
76955f48d0 versheaders 2025-12-29 07:51:33 +01:00
bd96ab1d31 develstats 2025-12-29 02:02:44 +01:00
9505668da8 feat: Enhanced modules - CDN Cache, Network Modes, and SecuBox monitoring
Comprehensive updates across multiple core modules with improved UI,
menu structure, and monitoring capabilities.

## CDN Cache Updates (4 files)
- Refined dashboard.css styling (408 lines optimized)
- Enhanced cache.js view with better functionality (262 lines)
- Improved overview.js with cleaner structure (312 lines)
- Updated statistics.js for better performance (217 lines)

## Network Modes Updates (1 file)
- Streamlined menu.d JSON configuration (161 lines cleaned)
- Improved menu structure and organization

## SecuBox Updates (4 files)
- Enhanced monitoring.css with improved styles (50 lines)
- Updated dashboard.js with monitoring integration (81 lines)
- Refactored monitoring.js for better performance (452 lines)
- Extended menu.d JSON with monitoring features (36 lines added)

Summary:
- 9 files changed
- +854 lines added, -1125 lines removed
- Net optimization: -271 lines (cleaner, more efficient code)
- Improved UI/UX across all modules
- Better code organization and performance

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-28 21:52:24 +01:00
6fb738f455 chore: Bump versions - secubox 0.4.6-r3 and cdn-cache 0.4.1
Updated internal version numbers for secubox and cdn-cache modules.

Version updates:
- luci-app-secubox: 0.4.6-r2 → 0.4.6-r3
- luci-app-cdn-cache: 0.2.2-r1 → 0.4.1-r1

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-28 21:42:05 +01:00
dd0420ed82 chore(secubox): Bump release to 0.4.6-r2
Updated luci-app-secubox internal version to 0.4.6-r2.

Version update:
- luci-app-secubox: 0.4.6-r1 → 0.4.6-r2

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-28 20:19:21 +01:00
9c38a7eca7 chore: Bump version to 0.4.6 for all core modules
Updated internal version numbers to 0.4.6 across all core modules
for consistency and alignment with the latest development cycle.

Version updates:
- luci-app-network-modes: 0.4.5-r1 → 0.4.6-r1
- luci-theme-secubox: 0.4.5-r1 → 0.4.6-r1
- luci-app-secubox: 0.4.5-r1 → 0.4.6-r1
- luci-app-system-hub: 0.4.5-r1 → 0.4.6-r1

All modules now synchronized at version 0.4.6.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-28 20:12:37 +01:00