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> |
||
|---|---|---|
| .. | ||
| .github/workflows | ||
| htdocs/luci-static/resources | ||
| po/templates | ||
| root/usr | ||
| .gitignore | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
🛡️ LuCI CrowdSec Dashboard
Version: 0.4.0
Last Updated: 2025-12-28
Status: Active
A modern, responsive, and dynamic dashboard for monitoring CrowdSec security on OpenWrt routers.
✨ Features
- Real-time Overview - Monitor active bans, alerts, and bouncer status at a glance
- Decision Management - View, search, filter, and manage IP bans directly from the interface
- Alert History - Browse and analyze security alerts with detailed event information
- Metrics Dashboard - Comprehensive view of CrowdSec engine metrics, parsers, and scenarios
- Responsive Design - Works perfectly on desktop, tablet, and mobile devices
- Auto-refresh - Data updates automatically every 30-60 seconds
- Dark Theme - Industrial cybersecurity aesthetic optimized for low-light environments
📦 Installation
From OpenWrt Package Repository (Recommended)
opkg update
opkg install luci-app-crowdsec-dashboard
Manual Installation
-
Download the latest release from the Releases page
-
Transfer to your OpenWrt device:
scp luci-app-crowdsec-dashboard_*.ipk root@router:/tmp/
- Install the package:
opkg install /tmp/luci-app-crowdsec-dashboard_*.ipk
- Restart uhttpd:
/etc/init.d/uhttpd restart
/etc/init.d/rpcd restart
Building from Source
- Clone into your OpenWrt build environment:
cd ~/openwrt/feeds/luci/applications/
git clone https://github.com/YOUR_USERNAME/luci-app-crowdsec-dashboard.git
- Update feeds and select the package:
cd ~/openwrt
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
# Navigate to LuCI → Applications → luci-app-crowdsec-dashboard
- Build:
make package/luci-app-crowdsec-dashboard/compile V=s
🔧 Requirements
- OpenWrt 21.02 or later
- CrowdSec Security Engine installed and running
- CrowdSec Firewall Bouncer (recommended)
- LuCI web interface
Recommended CrowdSec packages:
opkg install crowdsec crowdsec-firewall-bouncer
📱 Screenshots
Overview Dashboard
Real-time stats, top scenarios, and countries visualization.
Decisions Manager
Full-featured table with search, sort, bulk actions, and manual ban capability.
Alert History
Chronological view of all security events with filtering options.
Metrics View
Detailed engine metrics, bouncer status, and hub components.
🏗️ Architecture
luci-app-crowdsec-dashboard/
├── Makefile # OpenWrt build instructions
├── htdocs/
│ └── luci-static/resources/
│ ├── crowdsec-dashboard/
│ │ ├── api.js # RPC API module
│ │ └── dashboard.css # Cybersecurity theme styles
│ └── view/crowdsec-dashboard/
│ ├── overview.js # Main dashboard view
│ ├── decisions.js # Decisions management
│ ├── alerts.js # Alerts history
│ └── metrics.js # Metrics display
├── root/
│ ├── usr/libexec/rpcd/
│ │ └── crowdsec # RPCD backend (shell script)
│ └── usr/share/
│ ├── luci/menu.d/ # Menu configuration
│ └── rpcd/acl.d/ # ACL permissions
└── po/ # Translations
🔌 API Endpoints
The dashboard uses ubus RPC calls through the crowdsec RPCD module:
| Method | Description |
|---|---|
decisions |
Get all active decisions |
alerts |
Get alert history with limit |
metrics |
Get Prometheus metrics |
bouncers |
List registered bouncers |
machines |
List registered machines |
hub |
Get hub status (collections, parsers, scenarios) |
status |
Get service status |
stats |
Get aggregated dashboard statistics |
ban |
Add manual IP ban |
unban |
Remove IP ban |
🎨 Customization
Changing the Theme
Edit /htdocs/luci-static/resources/crowdsec-dashboard/dashboard.css:
:root {
--cs-bg-primary: #0a0e14;
--cs-accent-green: #00d4aa;
/* ... modify colors as needed */
}
Adding New Metrics
- Add RPC method in
/root/usr/libexec/rpcd/crowdsec - Declare RPC call in
/htdocs/luci-static/resources/crowdsec-dashboard/api.js - Create UI component in the appropriate view file
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
📄 License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
🙏 Acknowledgments
- CrowdSec - The open-source security engine
- OpenWrt - The freedom to make your network your own
- LuCI - OpenWrt Configuration Interface
📬 Contact
Gandalf - CyberMind.fr
- Website: https://cybermind.fr
- GitHub: @YOUR_USERNAME
Made with ❤️ for the OpenWrt and CrowdSec communities
