Replace github.com/gkerma/secubox-openwrt with github.com/CyberMind-FR/secubox-openwrt across all files. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
333 lines
10 KiB
Bash
Executable File
333 lines
10 KiB
Bash
Executable File
#!/bin/bash
|
|
# GitHub Wiki Setup Script
|
|
# Syncs DOCS/ directory to GitHub Wiki
|
|
|
|
set -e
|
|
|
|
WIKI_REPO="git@github.com:gkerma/secubox-openwrt.wiki.git"
|
|
DOCS_DIR="./DOCS"
|
|
WIKI_DIR="./wiki-temp"
|
|
|
|
echo "🔧 SecuBox GitHub Wiki Setup"
|
|
echo "=============================="
|
|
echo ""
|
|
|
|
# Check if docs directory exists
|
|
if [ ! -d "$DOCS_DIR" ]; then
|
|
echo "❌ Error: DOCS directory not found"
|
|
exit 1
|
|
fi
|
|
|
|
# Clone wiki repository
|
|
echo "📥 Cloning wiki repository..."
|
|
if [ -d "$WIKI_DIR" ]; then
|
|
rm -rf "$WIKI_DIR"
|
|
fi
|
|
|
|
git clone "$WIKI_REPO" "$WIKI_DIR" 2>/dev/null || {
|
|
echo "⚠️ Wiki repository doesn't exist yet."
|
|
echo " Please enable Wiki in GitHub repository settings first:"
|
|
echo " https://github.com/CyberMind-FR/secubox-openwrt/settings"
|
|
echo ""
|
|
echo " Then run this script again."
|
|
exit 1
|
|
}
|
|
|
|
cd "$WIKI_DIR"
|
|
|
|
echo "🗑️ Cleaning old wiki content..."
|
|
# Keep .git directory, remove everything else
|
|
find . -maxdepth 1 -not -name '.git' -not -name '.' -not -name '..' -exec rm -rf {} +
|
|
|
|
echo "📋 Creating wiki structure..."
|
|
|
|
# Create Home page (wiki landing page)
|
|
cat > Home.md << 'EOF'
|
|
# SecuBox Documentation
|
|
|
|
**Version:** 1.0.0
|
|
**Last Updated:** 2025-12-28
|
|
**Project:** OpenWrt LuCI Security & Management Suite
|
|
|
|
Welcome to the SecuBox documentation wiki! This comprehensive guide covers all aspects of developing, deploying, and maintaining SecuBox modules.
|
|
|
|
---
|
|
|
|
## 📚 Quick Navigation
|
|
|
|
### Getting Started
|
|
- **[Quick Start Guide](Quick-Start)** - Essential rules and commands for daily development
|
|
- **[Documentation Index](Documentation-Index)** - Complete guide to all documentation
|
|
|
|
### Core Guides
|
|
- **[Development Guidelines](Development-Guidelines)** - Complete development reference with architecture diagrams
|
|
- **[Code Templates](Code-Templates)** - Working code examples and patterns
|
|
- **[Module Implementation](Module-Implementation-Guide)** - Step-by-step implementation workflow
|
|
|
|
### Reference
|
|
- **[RPCD & Architecture](CLAUDE)** - Build system, CI/CD, and critical naming conventions
|
|
- **[Validation Guide](Validation-Guide)** - Module validation and testing
|
|
- **[Permissions Guide](Permissions-Guide)** - File permissions reference
|
|
|
|
### Module Specifications
|
|
- **[Feature Regeneration Prompts](Feature-Regeneration-Prompts)** - AI prompts for all 15 modules
|
|
- **[Module Status](Module-Status)** - Current status of all modules
|
|
- **[LuCI Development Reference](LuCI-Development-Reference)** - LuCI framework guide
|
|
|
|
### Tools & Automation
|
|
- **[TODO Roadmap](TODO-Analyse)** - Documentation improvement roadmap
|
|
- **[Archived Documents](archive/)** - Historical and completed documentation
|
|
|
|
---
|
|
|
|
## 🏗️ Architecture Overview
|
|
|
|
SecuBox is a comprehensive security and network management suite for OpenWrt consisting of 15 LuCI application modules:
|
|
|
|
### Core Control (2 modules)
|
|
- **SecuBox Central Hub** - Main dashboard and module management
|
|
- **System Hub** - System administration (9 tabs: health, services, logs, backup, etc.)
|
|
|
|
### Security & Monitoring (2 modules)
|
|
- **CrowdSec Dashboard** - Intrusion prevention and threat intelligence
|
|
- **Netdata Dashboard** - Real-time system monitoring
|
|
|
|
### Network Intelligence (2 modules)
|
|
- **Netifyd Dashboard** - Deep packet inspection and classification
|
|
- **Network Modes** - Network profile management
|
|
|
|
### VPN & Access Control (3 modules)
|
|
- **WireGuard Dashboard** - VPN tunnel management
|
|
- **Client Guardian** - Network access control and captive portal
|
|
- **Auth Guardian** - Authentication system
|
|
|
|
### Bandwidth & Traffic (2 modules)
|
|
- **Bandwidth Manager** - QoS and bandwidth quotas
|
|
- **Traffic Shaper** - Advanced traffic shaping
|
|
|
|
### Performance & Services (2 modules)
|
|
- **CDN Cache** - Content delivery network proxy cache
|
|
- **VHost Manager** - Virtual host configuration
|
|
|
|
### System Optimization (2 modules)
|
|
- **Media Flow** - Media traffic optimization
|
|
- **KSM Manager** - Kernel same-page merging
|
|
|
|
---
|
|
|
|
## 🚀 Quick Start
|
|
|
|
### For New Contributors
|
|
1. Start with **[Quick Start Guide](Quick-Start)** - Essential rules and commands
|
|
2. Read **[Development Guidelines](Development-Guidelines)** - Complete development guide
|
|
3. Review **[CLAUDE](CLAUDE)** - Build system and architecture
|
|
|
|
### For AI-Assisted Development
|
|
1. Use **[Module Implementation Guide](Module-Implementation-Guide)** - Step-by-step workflow
|
|
2. Copy prompts from **[Feature Regeneration Prompts](Feature-Regeneration-Prompts)**
|
|
3. Reference **[Code Templates](Code-Templates)** for implementation patterns
|
|
|
|
---
|
|
|
|
## 📊 Design System
|
|
|
|
SecuBox uses a modern, consistent design system:
|
|
|
|
- **Color Palette:** Indigo/Violet gradients with dark mode support
|
|
- **Typography:** Inter (text) + JetBrains Mono (code/values)
|
|
- **Components:** Cards, badges, buttons with gradient effects
|
|
- **Layout:** Responsive grid system (130px, 240px, 300px minimums)
|
|
|
|
See **[Development Guidelines - Design System](Development-Guidelines#design-system--ui-guidelines)** for complete specifications.
|
|
|
|
---
|
|
|
|
## 🔧 Development Workflow
|
|
|
|
### Critical Rules
|
|
1. **RPCD Naming:** Script name must match ubus object (`luci.module-name`)
|
|
2. **Menu Paths:** Must match view file locations exactly
|
|
3. **Permissions:** 755 for RPCD scripts, 644 for CSS/JS
|
|
4. **Validation:** Always run `./secubox-tools/validate-modules.sh` before commit
|
|
|
|
### Tools
|
|
- `validate-modules.sh` - 7 automated validation checks
|
|
- `fix-permissions.sh` - Auto-fix file permissions
|
|
- `local-build.sh` - Local package building
|
|
|
|
---
|
|
|
|
## 🌐 Live Demo
|
|
|
|
**Production Demo:** https://secubox.cybermood.eu
|
|
|
|
- Main dashboard: `/`
|
|
- System Hub: `/system-hub`
|
|
- CrowdSec: `/crowdsec`
|
|
- All 15 modules accessible
|
|
|
|
---
|
|
|
|
## 📞 Support
|
|
|
|
- **Documentation Issues:** [GitHub Issues](https://github.com/CyberMind-FR/secubox-openwrt/issues)
|
|
- **Technical Support:** support@cybermind.fr
|
|
- **Company:** CyberMind.fr
|
|
|
|
---
|
|
|
|
## 📝 License
|
|
|
|
Apache-2.0
|
|
|
|
---
|
|
|
|
**Maintainer:** CyberMind.fr
|
|
**Last Updated:** 2025-12-28
|
|
EOF
|
|
|
|
# Create sidebar navigation
|
|
cat > _Sidebar.md << 'EOF'
|
|
## 📚 Navigation
|
|
|
|
### Getting Started
|
|
* [Home](Home)
|
|
* [Quick Start](Quick-Start)
|
|
* [Documentation Index](Documentation-Index)
|
|
|
|
### Core Guides
|
|
* [Development Guidelines](Development-Guidelines)
|
|
* [Code Templates](Code-Templates)
|
|
* [Module Implementation](Module-Implementation-Guide)
|
|
|
|
### Reference
|
|
* [RPCD & Architecture](CLAUDE)
|
|
* [Validation Guide](Validation-Guide)
|
|
* [Permissions Guide](Permissions-Guide)
|
|
|
|
### Specifications
|
|
* [Feature Prompts](Feature-Regeneration-Prompts)
|
|
* [Module Status](Module-Status)
|
|
* [LuCI Reference](LuCI-Development-Reference)
|
|
|
|
### Tools
|
|
* [TODO Roadmap](TODO-Analyse)
|
|
* [Archive](archive)
|
|
|
|
---
|
|
|
|
### Quick Links
|
|
* [GitHub Repo](https://github.com/CyberMind-FR/secubox-openwrt)
|
|
* [Live Demo](https://secubox.cybermood.eu)
|
|
* [Issues](https://github.com/CyberMind-FR/secubox-openwrt/issues)
|
|
EOF
|
|
|
|
echo "📄 Copying documentation files..."
|
|
|
|
# Function to convert filename to wiki format
|
|
convert_filename() {
|
|
local filename="$1"
|
|
# Remove .md extension, replace hyphens with spaces for wiki URLs
|
|
# GitHub wiki uses kebab-case in filenames but displays with spaces
|
|
echo "${filename%.md}" | sed 's/-/ /g'
|
|
}
|
|
|
|
# Copy main documentation files
|
|
# GitHub Wiki uses filenames without extensions in links
|
|
cp "../$DOCS_DIR/QUICK-START.md" "Quick-Start.md"
|
|
cp "../$DOCS_DIR/DEVELOPMENT-GUIDELINES.md" "Development-Guidelines.md"
|
|
cp "../$DOCS_DIR/DOCUMENTATION-INDEX.md" "Documentation-Index.md"
|
|
cp "../$DOCS_DIR/CODE-TEMPLATES.md" "Code-Templates.md"
|
|
cp "../$DOCS_DIR/CLAUDE.md" "CLAUDE.md"
|
|
cp "../$DOCS_DIR/VALIDATION-GUIDE.md" "Validation-Guide.md"
|
|
cp "../$DOCS_DIR/PERMISSIONS-GUIDE.md" "Permissions-Guide.md"
|
|
cp "../$DOCS_DIR/FEATURE-REGENERATION-PROMPTS.md" "Feature-Regeneration-Prompts.md"
|
|
cp "../$DOCS_DIR/MODULE-IMPLEMENTATION-GUIDE.md" "Module-Implementation-Guide.md"
|
|
cp "../$DOCS_DIR/MODULE_STATUS.md" "Module-Status.md"
|
|
cp "../$DOCS_DIR/LUCI_DEVELOPMENT_REFERENCE.md" "LuCI-Development-Reference.md"
|
|
cp "../TODO-ANALYSE.md" "TODO-Analyse.md"
|
|
|
|
# Create archive index page
|
|
cat > archive.md << 'EOF'
|
|
# Documentation Archive
|
|
|
|
Historical and completed documentation.
|
|
|
|
## Archived Documents
|
|
|
|
* [Build Issues](archive/Build-Issues) - Historical build troubleshooting
|
|
* [Completion Report](archive/Completion-Report) - Project completion milestone
|
|
* [Module Enable/Disable Design](archive/Module-Enable-Disable-Design) - Feature design document
|
|
|
|
See [Archive README](archive/README) for archive policy and details.
|
|
|
|
---
|
|
|
|
[← Back to Home](Home)
|
|
EOF
|
|
|
|
# Create archive directory and copy files
|
|
mkdir -p archive
|
|
cp "../$DOCS_DIR/archive/README.md" "archive/README.md"
|
|
cp "../$DOCS_DIR/archive/BUILD_ISSUES.md" "archive/Build-Issues.md"
|
|
cp "../$DOCS_DIR/archive/COMPLETION_REPORT.md" "archive/Completion-Report.md"
|
|
cp "../$DOCS_DIR/archive/MODULE-ENABLE-DISABLE-DESIGN.md" "archive/Module-Enable-Disable-Design.md"
|
|
|
|
echo "🔧 Fixing internal links for wiki format..."
|
|
# GitHub Wiki uses different link format: [Text](Page-Name) instead of [Text](./file.md)
|
|
find . -name "*.md" -type f -exec sed -i \
|
|
-e 's|\](\.\/QUICK-START\.md)|](Quick-Start)|g' \
|
|
-e 's|\](\.\/DEVELOPMENT-GUIDELINES\.md)|](Development-Guidelines)|g' \
|
|
-e 's|\](\.\/DOCUMENTATION-INDEX\.md)|](Documentation-Index)|g' \
|
|
-e 's|\](\.\/CODE-TEMPLATES\.md)|](Code-Templates)|g' \
|
|
-e 's|\](\.\/CLAUDE\.md)|](CLAUDE)|g' \
|
|
-e 's|\](\.\/VALIDATION-GUIDE\.md)|](Validation-Guide)|g' \
|
|
-e 's|\](\.\/PERMISSIONS-GUIDE\.md)|](Permissions-Guide)|g' \
|
|
-e 's|\](\.\/FEATURE-REGENERATION-PROMPTS\.md)|](Feature-Regeneration-Prompts)|g' \
|
|
-e 's|\](\.\/MODULE-IMPLEMENTATION-GUIDE\.md)|](Module-Implementation-Guide)|g' \
|
|
-e 's|\](\.\/MODULE_STATUS\.md)|](Module-Status)|g' \
|
|
-e 's|\](\.\/LUCI_DEVELOPMENT_REFERENCE\.md)|](LuCI-Development-Reference)|g' \
|
|
-e 's|\](\.\.\/TODO-ANALYSE\.md)|](TODO-Analyse)|g' \
|
|
-e 's|\](\.\/CODEX\.md)|](CODEX)|g' \
|
|
{} +
|
|
|
|
echo "📊 Generating wiki statistics..."
|
|
file_count=$(find . -name "*.md" -type f | wc -l)
|
|
echo " Total pages: $file_count"
|
|
|
|
echo ""
|
|
echo "💾 Committing changes to wiki..."
|
|
git add .
|
|
git commit -m "Sync documentation from DOCS/ directory
|
|
|
|
- Updated all documentation files
|
|
- Added Home page with navigation
|
|
- Created sidebar for easy navigation
|
|
- Organized archive section
|
|
- Fixed internal links for wiki format
|
|
|
|
Total pages: $file_count
|
|
|
|
🤖 Generated with SecuBox wiki sync script
|
|
Date: $(date +%Y-%m-%d)
|
|
"
|
|
|
|
echo ""
|
|
echo "📤 Pushing to GitHub Wiki..."
|
|
git push origin master
|
|
|
|
echo ""
|
|
echo "✅ Wiki successfully updated!"
|
|
echo ""
|
|
echo "🌐 View your wiki at:"
|
|
echo " https://github.com/CyberMind-FR/secubox-openwrt/wiki"
|
|
echo ""
|
|
echo "📋 Pages created: $file_count"
|
|
echo ""
|
|
|
|
# Cleanup
|
|
cd ..
|
|
rm -rf "$WIKI_DIR"
|
|
|
|
echo "🎉 Done! Wiki is live on GitHub."
|