# 📚 Documentation Claude pour SecuBox Ce rĂ©pertoire contient la documentation et les guides pour travailler avec Claude Code sur le projet SecuBox. --- ## 📁 Fichiers Disponibles ### 1. `module-prompts.md` **Prompts d'implĂ©mentation pour les 14 modules de base** Contient les spĂ©cifications complĂštes pour chaque module SecuBox existant: - SecuBox Hub, System Hub - CrowdSec, Netdata, Netifyd Dashboards - Network Modes, Client Guardian, Auth Guardian - WireGuard, Bandwidth Manager, Media Flow - VHost Manager, CDN Cache, Traffic Shaper **Usage**: Copie-colle le prompt du module que tu veux implĂ©menter ou modifier. ### 2. `module-implementation-guide.md` ⭐ NOUVEAU **Template structurĂ© pour crĂ©er de nouveaux modules** Guide complet avec: - Template rĂ©utilisable pour tout nouveau module - Checklist de validation complĂšte - Exemple dĂ©taillĂ©: KSM Manager (gestion de clĂ©s + Nitrokey) - Workflow d'implĂ©mentation Ă©tape par Ă©tape - SpĂ©cifications techniques dĂ©taillĂ©es **Usage**: 1. Copie le template 2. Remplis les sections pour ton module 3. Soumets le prompt complet Ă  Claude 4. Valide avec `validate-modules.sh` ### 3. `settings.local.json` **Configuration locale de Claude Code** Contient les paramĂštres de dĂ©veloppement pour cette session. --- ## 🚀 Quick Start: CrĂ©er un Nouveau Module ### Étape 1: PrĂ©paration ```bash # Assure-toi d'ĂȘtre dans le bon rĂ©pertoire cd /home/reepost/CyberMindStudio/_files/secubox # Lis le guide d'implĂ©mentation cat .claude/module-implementation-guide.md ``` ### Étape 2: RĂ©diger les SpĂ©cifications Ouvre `module-implementation-guide.md` et copie le template. Remplis: **Obligatoire**: - Nom du module - CatĂ©gorie (Security/Network/System/Performance/Services) - Description et cas d'utilisation - 3-5 fonctionnalitĂ©s principales - MĂ©thodes RPCD (minimum 5-8) - Configuration UCI - Views JavaScript (minimum 2-3) **RecommandĂ©**: - DĂ©pendances systĂšme - SpĂ©cifications de parsing CLI - Gestion d'erreurs - Notes de sĂ©curitĂ© ### Étape 3: Soumettre Ă  Claude ``` [Colle ton prompt basĂ© sur le template] ``` Claude gĂ©nĂ©rera: - ✅ Makefile - ✅ RPCD Backend - ✅ API Client - ✅ Views JavaScript - ✅ Menu JSON - ✅ ACL JSON - ✅ README.md ### Étape 4: Validation ```bash # Validation automatique ./secubox-tools/validate-modules.sh # VĂ©rification syntaxe JavaScript node -c luci-app-{module}/htdocs/luci-static/resources/**/*.js # Test RPCD sur router (si disponible) ubus call luci.{module} status ``` --- ## 📖 Exemples d'Utilisation ### Exemple 1: Module Simple (Monitoring) ```markdown ## Nouveau Module SecuBox: System Monitor **Nom**: luci-app-system-monitor **CatĂ©gorie**: System **Description**: Monitoring temps rĂ©el CPU, RAM, Disk, Network ### FonctionnalitĂ©s: 1. MĂ©triques systĂšme (CPU%, RAM%, Disk%, Temp) 2. Graphiques temps rĂ©el (5min, 1h, 24h) 3. Alertes configurables (seuils) 4. Export donnĂ©es (CSV, JSON) ### MĂ©thodes RPCD: - status - get_metrics - get_history - set_alert - list_alerts [... reste du template ...] ``` ### Exemple 2: Module Complexe (KSM Manager) Voir l'exemple complet dans `module-implementation-guide.md` → Section "Exemple Concret: Module KSM" 22 mĂ©thodes RPCD, 8 views, support HSM hardware, gestion certificats, audit logs, etc. ### Exemple 3: Module IntĂ©gration (Home Assistant) ```markdown ## Nouveau Module SecuBox: Home Assistant Bridge **Nom**: luci-app-hass-bridge **CatĂ©gorie**: Services **Description**: IntĂ©gration bidirectionnelle avec Home Assistant ### FonctionnalitĂ©s: 1. Auto-discovery MQTT 2. Entities SecuBox → HASS (sensors, switches) 3. Services HASS → SecuBox (actions) 4. Webhooks bidirectionnels 5. Dashboard widgets ### MĂ©thodes RPCD: - status - get_entities - publish_entity - trigger_service - list_webhooks - add_webhook [... reste du template ...] ``` --- ## 🎯 Bonnes Pratiques ### Naming Conventions **Package**: - Format: `luci-app-{nom-module}` (tout en minuscules, tirets) - Exemples: `luci-app-cdn-cache`, `luci-app-ksm-manager` **RPCD Script**: - **OBLIGATOIRE**: `luci.{nom-module}` (prĂ©fixe `luci.` requis!) - Emplacement: `/root/usr/libexec/rpcd/luci.{nom-module}` - Permissions: ExĂ©cutable (`chmod +x`) **UCI Config**: - Fichier: `/etc/config/{nom-module}` (sans `luci-app-`) - Exemple: `/etc/config/ksm` pour `luci-app-ksm-manager` **Views**: - Emplacement: `/htdocs/luci-static/resources/view/{module}/` - Fichiers: `overview.js`, `{feature}.js` **API Client**: - Emplacement: `/htdocs/luci-static/resources/{module}/api.js` - Export: `L.Class.extend({ ... })` ### Structure Minimale **Petit module** (< 5 mĂ©thodes): ``` luci-app-{module}/ ├── Makefile ├── README.md ├── htdocs/luci-static/resources/ │ ├── {module}/ │ │ └── api.js │ └── view/{module}/ │ └── overview.js └── root/ ├── usr/ │ ├── libexec/rpcd/ │ │ └── luci.{module} │ └── share/ │ ├── luci/menu.d/ │ │ └── luci-app-{module}.json │ └── rpcd/acl.d/ │ └── luci-app-{module}.json └── etc/config/ └── {module} (optionnel) ``` **Module complet** (> 8 mĂ©thodes): ``` [Structure minimale +] ├── htdocs/luci-static/resources/ │ └── view/{module}/ │ ├── overview.js │ ├── management.js │ ├── settings.js │ └── logs.js └── root/etc/init.d/ └── {module} (si besoin d'un daemon) ``` ### Checklist PrĂ©-Commit Avant de commiter un nouveau module: - [ ] `./secubox-tools/validate-modules.sh` passe ✅ - [ ] Tous les fichiers JavaScript valident avec `node -c` - [ ] Tous les JSON valident avec `jsonlint` - [ ] RPCD script est exĂ©cutable - [ ] Nom RPCD = `luci.{module}` (avec prĂ©fixe!) - [ ] README.md complet avec installation/usage - [ ] Makefile a toutes les dĂ©pendances - [ ] ACL contient toutes les mĂ©thodes RPCD - [ ] Menu paths matchent les fichiers view - [ ] Git commit message descriptif --- ## 🔧 Outils de DĂ©veloppement ### Validation Automatique ```bash # Validation complĂšte de tous les modules ./secubox-tools/validate-modules.sh # Validation d'un module spĂ©cifique ./secubox-tools/secubox-debug.sh luci-app-{module} # RĂ©paration automatique des problĂšmes courants ./secubox-tools/secubox-repair.sh ``` ### Build Local ```bash # Build tous les packages ./secubox-tools/local-build.sh build # Build un package spĂ©cifique ./secubox-tools/local-build.sh build luci-app-{module} # Build pour architecture spĂ©cifique ./secubox-tools/local-build.sh build --arch aarch64-cortex-a72 # Validation seule (rapide) ./secubox-tools/local-build.sh validate ``` ### Test sur Router ```bash # Transfer IPK scp build/x86-64/luci-app-{module}_*.ipk root@192.168.1.1:/tmp/ # Install sur router ssh root@192.168.1.1 opkg install /tmp/luci-app-{module}_*.ipk /etc/init.d/rpcd restart /etc/init.d/uhttpd restart # Test RPC manuel ubus list | grep {module} ubus call luci.{module} status ``` --- ## 📚 Ressources ### Documentation OpenWrt/LuCI - [LuCI API Reference](https://openwrt.github.io/luci/) - [UCI Configuration](https://openwrt.org/docs/guide-user/base-system/uci) - [RPCD Guide](https://openwrt.org/docs/techref/rpcd) - [OpenWrt Packages](https://openwrt.org/packages/start) ### Exemples de Code Tous les 14 modules SecuBox existants servent de rĂ©fĂ©rence: **Simples** (bon pour dĂ©buter): - `luci-app-netdata-dashboard` - Iframe simple + contrĂŽles - `luci-app-network-modes` - Preset application **Moyens**: - `luci-app-bandwidth-manager` - QoS avec graphiques - `luci-app-media-flow` - DĂ©tection + stats **AvancĂ©s** (patterns complexes): - `luci-app-wireguard-dashboard` - GĂ©nĂ©ration clĂ©s + QR codes - `luci-app-auth-guardian` - OAuth + vouchers + sessions - `luci-app-traffic-shaper` - TC/CAKE intĂ©gration ### Architecture SecuBox ``` SecuBox Hub (luci-app-secubox) ├── Security Layer │ ├── CrowdSec Dashboard │ └── Auth Guardian ├── Network Layer │ ├── Network Modes │ ├── Client Guardian │ ├── WireGuard Dashboard │ └── VHost Manager ├── Traffic Layer │ ├── Bandwidth Manager │ ├── Media Flow │ ├── CDN Cache │ └── Traffic Shaper ├── Monitoring Layer │ ├── Netdata Dashboard │ ├── Netifyd Dashboard │ └── System Hub └── [Nouveau Module] ``` --- ## đŸ€ Contribution ### Workflow Git ```bash # CrĂ©er branche pour nouveau module git checkout -b feature/luci-app-{module} # DĂ©velopper avec validation continue # ... dĂ©veloppement ... ./secubox-tools/validate-modules.sh # Commit git add luci-app-{module}/ git commit -m "feat: implement {Module Name} - {brief description}" # Push git push origin feature/luci-app-{module} # Tag pour release git tag v0.0.X git push origin v0.0.X ``` ### Format de Commit Messages ``` feat: implement KSM Manager - hardware key storage with Nitrokey fix: correct RPCD method naming in CDN Cache docs: add installation guide for Traffic Shaper chore: update dependencies for Bandwidth Manager refactor: improve error handling in Auth Guardian ``` --- ## 💡 Support ### Debug Module Issues **ProblĂšme**: Module n'apparaĂźt pas dans le menu - VĂ©rifier menu JSON path - VĂ©rifier ACL permissions - RedĂ©marrer uhttpd: `/etc/init.d/uhttpd restart` **ProblĂšme**: RPC errors "Object not found" - VĂ©rifier nom RPCD = `luci.{module}` - VĂ©rifier RPCD exĂ©cutable: `chmod +x` - RedĂ©marrer rpcd: `/etc/init.d/rpcd restart` - Tester ubus: `ubus list | grep {module}` **ProblĂšme**: JavaScript errors - Valider syntaxe: `node -c {file}.js` - VĂ©rifier imports: `'require {module}/api'` - Check console browser (F12) **ProblĂšme**: Build failures - VĂ©rifier Makefile dependencies - VĂ©rifier include path: `../../luci.mk` - Clean build: `make clean` ### Demander de l'Aide Ouvre une issue GitHub avec: 1. Nom du module 2. Description du problĂšme 3. Logs d'erreur 4. Output de `./secubox-tools/validate-modules.sh` 5. Configuration (anonymisĂ©e si nĂ©cessaire) --- ## 🎉 Success Stories Modules dĂ©jĂ  implĂ©mentĂ©s avec succĂšs: 1. **WireGuard Dashboard** - GĂ©nĂ©ration peers + QR codes 2. **Auth Guardian** - OAuth + vouchers complĂšte 3. **Bandwidth Manager** - QoS avec graphiques temps rĂ©el 4. **Media Flow** - DĂ©tection streaming avec donut chart 5. **CDN Cache** - Hit ratio gauge + cache management 6. **Traffic Shaper** - TC/CAKE avec presets Tous validĂ©s ✅ et production-ready 🚀 --- **Bon dĂ©veloppement avec SecuBox!** 🔧🔐🌐