secubox-openwrt/package/secubox/luci-app-crowdsec-dashboard
CyberMind-FR a960c20124 fix(crowdsec): Fix firewall health sync detection for CAPI blocklists
- Consider sync OK when CAPI blocklists are active (capi_elements > 0)
  even if local decisions = 0
- Add capi_elements_count to health response
- Fixes false "Out of sync" warning when using community blocklists

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 06:52:31 +01:00
..
.github/workflows feat(structure): reorganize luci-app packages into package/secubox/ + appstore migration 2026-01-01 14:59:38 +01:00
htdocs/luci-static/resources refactor: Merge secubox-app-crowdsec-bouncer into cs-firewall-bouncer 2026-01-17 06:46:09 +01:00
po/templates feat(structure): reorganize luci-app packages into package/secubox/ + appstore migration 2026-01-01 14:59:38 +01:00
root fix(crowdsec): Fix firewall health sync detection for CAPI blocklists 2026-01-21 06:52:31 +01:00
.gitignore feat(structure): reorganize luci-app packages into package/secubox/ + appstore migration 2026-01-01 14:59:38 +01:00
LICENSE feat(structure): reorganize luci-app packages into package/secubox/ + appstore migration 2026-01-01 14:59:38 +01:00
Makefile refactor(packages): Rename and reorganize SecuBox packages 2026-01-15 10:42:52 +01:00
README.md feat(structure): reorganize luci-app packages into package/secubox/ + appstore migration 2026-01-01 14:59:38 +01:00

🛡️ 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.

License OpenWrt CrowdSec

Dashboard Overview

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

opkg update
opkg install luci-app-crowdsec-dashboard

Manual Installation

  1. Download the latest release from the Releases page

  2. Transfer to your OpenWrt device:

scp luci-app-crowdsec-dashboard_*.ipk root@router:/tmp/
  1. Install the package:
opkg install /tmp/luci-app-crowdsec-dashboard_*.ipk
  1. Restart uhttpd:
/etc/init.d/uhttpd restart
/etc/init.d/rpcd restart

Building from Source

  1. Clone into your OpenWrt build environment:
cd ~/openwrt/feeds/luci/applications/
git clone https://github.com/YOUR_USERNAME/luci-app-crowdsec-dashboard.git
  1. 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
  1. 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
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

  1. Add RPC method in /root/usr/libexec/rpcd/crowdsec
  2. Declare RPC call in /htdocs/luci-static/resources/crowdsec-dashboard/api.js
  3. Create UI component in the appropriate view file

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. 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


Made with ❤️ for the OpenWrt and CrowdSec communities