This release adds major new features for SecuBox management and deployment: ## New Features ### 1. LuCI Admin Control Center (luci-app-secubox-admin) - Unified admin dashboard for managing all SecuBox appstore plugins - **Control Panel**: Real-time stats, system health, alerts, quick actions - **Apps Manager**: Browse catalog, install/remove apps with search & filtering - **App Settings**: Per-app configuration, start/stop controls - **System Health**: Live monitoring (CPU, RAM, disk) with auto-refresh - **System Logs**: Centralized log viewer with download capability - Fully integrated with existing RPCD backend (luci.secubox) - Mobile-responsive design with polished UI components ### 2. Documentation Mirror in SecuBox Bonus - Integrated complete development documentation into luci-app-secubox-bonus - 64+ documentation files now available offline at /luci-static/secubox/docs/ - Beautiful landing page (index-main.html) with 4 sections: - Development guides & references - Live module demos - Tutorials & blog posts - Marketing campaign pages - Accessible locally on router without internet connection ### 3. Automated Docker Plugin Installation - Enhanced secubox-appstore CLI with full Docker automation - One-click installation from web UI now fully automated: - Auto-detects Docker runtime from catalog - Discovers and executes control scripts (*ctl install) - Pulls Docker images automatically - Creates directories and configures UCI - Enables init services - No manual CLI steps required for Docker apps - Works for all Docker apps: AdGuard Home, Mail-in-a-Box, Nextcloud, etc. ### 4. Mail-in-a-Box Plugin - New Docker-based email server plugin (secubox-app-mailinabox) - Complete package with: - UCI configuration (8 port mappings, feature flags) - Control script (mailinaboxctl) with install/check/update/status/logs - Procd init script with auto-restart - Catalog manifest (category: hosting, maturity: beta) - Network mode: host (required for mail server) - Persistent storage: mail, SSL, data, DNS volumes ## Improvements ### Build System - Updated local-build.sh to include luci-app-* packages from package/secubox/ - Now automatically discovers and builds luci-app-secubox-admin and similar packages - Fixed Makefile include paths for feed structure ### Package Releases - Incremented PKG_RELEASE for all 31 SecuBox packages - Ensures clean upgrade path from previous versions ### Catalog Updates - Mail-in-a-Box entry moved from "productivity" to "hosting" category - Status changed to "beta" reflecting community Docker image maturity - Storage requirement increased: 1024MB → 2048MB - Added port 25 accessibility note ## Files Changed ### New Packages (2) - package/secubox/luci-app-secubox-admin/ (12 files) - package/secubox/secubox-app-mailinabox/ (4 files) ### Enhanced Packages (1) - package/secubox/luci-app-secubox-bonus/ (65 new docs files) ### Modified Core (3) - package/secubox/secubox-core/root/usr/sbin/secubox-appstore - package/secubox/secubox-core/root/usr/share/secubox/catalog.json - secubox-tools/local-build.sh ### All Makefiles (31 packages) - Incremented PKG_RELEASE for clean upgrade path ## Technical Details **Admin Control Center Architecture:** - Frontend: 5 views (dashboard, apps, settings, health, logs) - API: Wrapper around luci.secubox RPCD methods - Components: Reusable UI library (cards, badges, alerts, loaders) - Styling: Common + admin-specific CSS with responsive design - Auto-refresh: Polling for live updates (5-30s intervals) **Docker Automation Flow:** ``` Web UI → RPCD → secubox-appstore CLI → opkg install → *ctl install → docker pull → directories → UCI config → init enable → ✓ Ready ``` **Access Points:** - Admin Control: http://router/cgi-bin/luci/admin/secubox/admin/ - Documentation: http://router/luci-static/secubox/index-main.html - Demos: http://router/luci-static/secubox/demo-*.html 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
82 lines
2.8 KiB
Makefile
82 lines
2.8 KiB
Makefile
# Template Makefile for SecuBox LuCI Applications
|
|
# ================================================
|
|
# Copy this template and customize for each package
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
# Package metadata
|
|
PKG_NAME:=luci-app-PACKAGE_NAME
|
|
PKG_VERSION:=2.0.0
|
|
PKG_RELEASE:=1
|
|
PKG_LICENSE:=Apache-2.0
|
|
PKG_MAINTAINER:=CyberMind <contact@cybermind.fr>
|
|
PKG_ARCH:=all
|
|
|
|
# LuCI specific
|
|
LUCI_TITLE:=LuCI - Package Description
|
|
LUCI_DESCRIPTION:=Detailed description of what this package does
|
|
LUCI_DEPENDS:=+luci-base +rpcd
|
|
LUCI_PKGARCH:=all
|
|
|
|
# File permissions (CRITICAL: RPCD scripts MUST be executable)
|
|
# CSS/JS files are 644 by default (correct)
|
|
# Only specify files that need non-default permissions (755 for executables)
|
|
PKG_FILE_MODES:=/usr/libexec/rpcd/luci.PACKAGE_NAME:755
|
|
|
|
# Include LuCI build system
|
|
include $(TOPDIR)/feeds/luci/luci.mk
|
|
|
|
# Call BuildPackage - this is handled by luci.mk
|
|
# No need for explicit Package/xxx/install when using luci.mk
|
|
|
|
# === END OF TEMPLATE ===
|
|
|
|
# ================================================
|
|
# NOTES FOR DEVELOPERS
|
|
# ================================================
|
|
#
|
|
# Directory structure expected by luci.mk:
|
|
#
|
|
# luci-app-mypackage/
|
|
# ├── Makefile # This file
|
|
# ├── htdocs/
|
|
# │ └── luci-static/
|
|
# │ └── resources/
|
|
# │ └── view/
|
|
# │ └── mypackage/
|
|
# │ └── main.js # LuCI JavaScript view
|
|
# └── root/
|
|
# ├── etc/
|
|
# │ ├── config/
|
|
# │ │ └── mypackage # UCI config file
|
|
# │ ├── init.d/
|
|
# │ │ └── mypackage # Init script (executable)
|
|
# │ └── uci-defaults/
|
|
# │ └── 99-mypackage # First-run setup (executable)
|
|
# └── usr/
|
|
# ├── libexec/
|
|
# │ └── rpcd/
|
|
# │ └── mypackage # RPCD backend script (executable)
|
|
# └── share/
|
|
# ├── luci/
|
|
# │ └── menu.d/
|
|
# │ └── luci-app-mypackage.json # Menu entry
|
|
# └── rpcd/
|
|
# └── acl.d/
|
|
# └── luci-app-mypackage.json # ACL permissions
|
|
#
|
|
# ================================================
|
|
# COMMON LUCI_DEPENDS OPTIONS
|
|
# ================================================
|
|
#
|
|
# +luci-base - Required for all LuCI apps
|
|
# +luci-compat - Legacy API compatibility
|
|
# +luci-lib-jsonc - JSON-C library
|
|
# +rpcd - RPC daemon (for backend scripts)
|
|
# +curl - HTTP client
|
|
# +jq - JSON processor
|
|
# +wireguard-tools - WireGuard utilities
|
|
# +qrencode - QR code generator
|
|
#
|
|
# ================================================
|