Major Features: - Add comprehensive 6-step setup wizard for CrowdSec initial configuration - Automated hub update, collection installation, and bouncer configuration - Complete turnkey solution requiring zero manual configuration Wizard Flow: 1. Welcome & Prerequisites - Check CrowdSec and LAPI status 2. Update CrowdSec Hub - Fetch latest security collections 3. Install Collections - Pre-selected security packs (ssh-bf, http-cve, linux) 4. Configure Firewall Bouncer - Auto-register with API key generation 5. Enable & Start Services - Start bouncer and verify nftables 6. Verification & Summary - Show completion status with statistics UI Components: - Visual stepper with active/complete/pending states - Real-time progress indicators and status badges - Auto-advancement after successful operations - Professional dark-themed styling with animations - Fully responsive design (mobile/tablet/desktop) New Files: - htdocs/luci-static/resources/view/crowdsec-dashboard/wizard.js (815 lines) - htdocs/luci-static/resources/crowdsec-dashboard/wizard.css (578 lines) Backend Enhancements: - Add check_wizard_needed() RPC method for first-time setup detection - Add wizard_state() RPC method for wizard initialization - Update API module with wizard method declarations - Add wizard menu item (order: 5, appears first in CrowdSec section) - Update ACL permissions for wizard RPC methods User Experience: - < 2 minute complete CrowdSec setup from fresh install - Clear visual feedback at each step - Error handling with retry capability - Final verification shows all systems operational Version: 0.6.0-1 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
76 lines
1.5 KiB
JSON
76 lines
1.5 KiB
JSON
{
|
|
"admin/secubox/security/crowdsec": {
|
|
"title": "CrowdSec",
|
|
"order": 10,
|
|
"action": {
|
|
"type": "firstchild"
|
|
},
|
|
"depends": {
|
|
"acl": ["luci-app-crowdsec-dashboard"]
|
|
}
|
|
},
|
|
"admin/secubox/security/crowdsec/wizard": {
|
|
"title": "Setup Wizard",
|
|
"order": 5,
|
|
"action": {
|
|
"type": "view",
|
|
"path": "crowdsec-dashboard/wizard"
|
|
}
|
|
},
|
|
"admin/secubox/security/crowdsec/overview": {
|
|
"title": "Overview",
|
|
"order": 10,
|
|
"action": {
|
|
"type": "view",
|
|
"path": "crowdsec-dashboard/overview"
|
|
}
|
|
},
|
|
"admin/secubox/security/crowdsec/decisions": {
|
|
"title": "Decisions",
|
|
"order": 20,
|
|
"action": {
|
|
"type": "view",
|
|
"path": "crowdsec-dashboard/decisions"
|
|
}
|
|
},
|
|
"admin/secubox/security/crowdsec/alerts": {
|
|
"title": "Alerts",
|
|
"order": 30,
|
|
"action": {
|
|
"type": "view",
|
|
"path": "crowdsec-dashboard/alerts"
|
|
}
|
|
},
|
|
"admin/secubox/security/crowdsec/bouncers": {
|
|
"title": "Bouncers",
|
|
"order": 40,
|
|
"action": {
|
|
"type": "view",
|
|
"path": "crowdsec-dashboard/bouncers"
|
|
}
|
|
},
|
|
"admin/secubox/security/crowdsec/waf": {
|
|
"title": "WAF/AppSec",
|
|
"order": 45,
|
|
"action": {
|
|
"type": "view",
|
|
"path": "crowdsec-dashboard/waf"
|
|
}
|
|
},
|
|
"admin/secubox/security/crowdsec/metrics": {
|
|
"title": "Metrics",
|
|
"order": 50,
|
|
"action": {
|
|
"type": "view",
|
|
"path": "crowdsec-dashboard/metrics"
|
|
}
|
|
},
|
|
"admin/secubox/security/crowdsec/settings": {
|
|
"title": "Settings",
|
|
"order": 90,
|
|
"action": {
|
|
"type": "view",
|
|
"path": "crowdsec-dashboard/settings"
|
|
}
|
|
}
|
|
} |