Add two complete documentation files for creating new SecuBox modules:
1. module-implementation-guide.md
- Reusable template for any new module
- Complete example: KSM Manager (Key Storage Manager)
* Hardware security module support (Nitrokey, YubiKey)
* Cryptographic key management (RSA, ECDSA, Ed25519)
* Secure secrets storage (AES-256-GCM)
* Certificate management with CSR generation
* SSH key management
* Comprehensive audit logging
* 22 RPCD methods specification
* 8 JavaScript views specification
- Step-by-step implementation workflow
- Complete validation checklist
- Technical specifications and security guidelines
2. README.md
- Documentation directory overview
- Quick start guide for new modules
- Best practices and naming conventions
- Development tools reference
- Git workflow and contribution guidelines
- Troubleshooting guide
- 3 usage examples (simple, complex, integration)
These guides enable rapid development of new SecuBox modules
following established patterns from the 14 existing modules.
🎯 Generated with Claude Code
23 KiB
🔧 Guide d'Implémentation de Nouveaux Modules SecuBox
Ce guide fournit un framework structuré pour implémenter de nouveaux modules SecuBox avec suivi complet du développement.
📋 Template de Prompt d'Implémentation
Utilise ce template pour demander l'implémentation d'un nouveau module:
## Nouveau Module SecuBox: {NOM_MODULE}
### 🎯 Contexte et Objectif
**Nom du module**: luci-app-{nom-module}
**Catégorie**: [Security / Network / System / Performance / Services]
**Description courte**: {Description en 1-2 phrases}
**Cas d'utilisation**: {Qui utilisera ce module et pourquoi}
### 📊 Fonctionnalités Requises
Liste numérotée des fonctionnalités principales:
1. **{Fonctionnalité 1}**: {Description détaillée}
- Sous-fonctionnalité A
- Sous-fonctionnalité B
2. **{Fonctionnalité 2}**: {Description détaillée}
- Sous-fonctionnalité A
- Sous-fonctionnalité B
3. **{Fonctionnalité 3}**: {Description détaillée}
### 🔌 Intégration Système
**Service système**: {nom du daemon/service}
**Commandes CLI**:
- `{commande1}` - {description}
- `{commande2}` - {description}
**Fichiers de configuration**:
- `/etc/{config-file}` - {description}
- `/var/run/{runtime-file}` - {description}
**Dépendances packages**:
- `{package1}` - {description}
- `{package2}` - {description}
### 🎨 Méthodes RPCD
Script: `/usr/libexec/rpcd/luci.{nom-module}`
#### Méthodes de Base
1. **status**: État du service
- Retour: `{ "running": bool, "enabled": bool, "version": string, ... }`
2. **get_info**: Informations système
- Retour: `{ ... }`
#### Méthodes de Gestion
3. **list_{ressource}**: Liste des ressources
- Retour: `{ "{ressources}": [...] }`
4. **get_{ressource}**: Détails d'une ressource
- Params: `id`
- Retour: `{ ... }`
5. **add_{ressource}**: Créer une ressource
- Params: `{ param1, param2, ... }`
- Retour: `{ "success": bool, "id": string }`
6. **update_{ressource}**: Modifier une ressource
- Params: `{ id, param1, param2, ... }`
- Retour: `{ "success": bool }`
7. **delete_{ressource}**: Supprimer une ressource
- Params: `id`
- Retour: `{ "success": bool }`
#### Méthodes Spécifiques
8. **{methode_specifique_1}**: {Description}
9. **{methode_specifique_2}**: {Description}
### 🗄️ Configuration UCI
Fichier: `/etc/config/{nom-module}`
```uci
config global 'main'
option enabled '1'
option {param1} '{valeur}'
option {param2} '{valeur}'
config {type_section} '{id_section}'
option {param1} '{valeur}'
option {param2} '{valeur}'
list {param_list} '{valeur1}'
list {param_list} '{valeur2}'
🎨 Interface Utilisateur (Views)
Vue 1: Overview/Dashboard
Fichier: htdocs/luci-static/resources/view/{module}/overview.js
Éléments:
- Status cards (service running, stats)
- Graphiques/visualisations
- Actions rapides
- Liens vers autres vues
Auto-refresh: Oui (5s pour status, 10s pour stats)
Vue 2: {Nom Vue 2}
Fichier: htdocs/luci-static/resources/view/{module}/{vue2}.js
Éléments:
- Tableau CRUD avec form.GridSection
- Modals pour création/édition
- Validation des inputs
- Confirmations de suppression
Vue 3: {Nom Vue 3}
Fichier: htdocs/luci-static/resources/view/{module}/{vue3}.js
Éléments:
- ...
🎯 Spécifications Techniques
Parsing de Sortie CLI
# Exemple de commande et parsing attendu
{commande} | {parsing}
# Output format attendu
{...}
Gestion d'Erreurs
- Erreur si service non installé:
{ "error": "Service not installed" } - Erreur si permission refusée:
{ "error": "Permission denied" } - Erreur si ressource inexistante:
{ "error": "Not found" }
Sécurité
- Validation des inputs: {regex/validation}
- Sanitization des chaînes: Oui/Non
- Permissions requises: {root/user/...}
📦 Livrables Attendus
IMPORTANT: Génère TOUS les fichiers complets suivants:
- Makefile avec dépendances correctes
- RPCD Backend (
/root/usr/libexec/rpcd/luci.{module})- Toutes les méthodes implémentées
- Gestion d'erreurs complète
- JSON valide pour chaque retour
- API Client (
/htdocs/luci-static/resources/{module}/api.js)- Déclarations RPC pour toutes les méthodes
- Fonctions utilitaires (formatage, etc.)
- Views JavaScript (tous les fichiers .js nécessaires)
- Code complet, pas de placeholders
- Gestion d'erreurs UI
- Auto-refresh où approprié
- Menu JSON (
/root/usr/share/luci/menu.d/luci-app-{module}.json) - ACL JSON (
/root/usr/share/rpcd/acl.d/luci-app-{module}.json) - UCI Config Template (optionnel si besoin)
- README.md avec:
- Installation
- Configuration
- Usage
- Dépendances
- Troubleshooting
✅ Checklist de Validation
Avant de marquer comme terminé, vérifier:
- Tous les fichiers générés
- RPCD script exécutable (chmod +x)
- Nom RPCD =
luci.{module}(convention obligatoire) - Tous les appels RPC matchent les méthodes RPCD
- Paths menu matchent les fichiers view
- JavaScript syntaxe valide (node -c)
- JSON files valides (jsonlint)
- ACL inclut toutes les méthodes RPCD
- Dépendances Makefile complètes
- Gestion d'erreurs implémentée partout
- Documentation README complète
🔄 Workflow d'Implémentation
-
Phase 1: Backend
- Implémenter RPCD avec toutes les méthodes
- Tester chaque méthode individuellement avec
ubus call
-
Phase 2: API Client
- Créer api.js avec déclarations RPC
- Ajouter fonctions utilitaires
-
Phase 3: Views
- Implémenter vue overview (dashboard)
- Implémenter vues CRUD
- Implémenter vues spécifiques
-
Phase 4: Configuration
- Menu JSON
- ACL JSON
- UCI template si nécessaire
-
Phase 5: Validation
- Run
./secubox-tools/validate-modules.sh - Vérifier syntaxe JavaScript
- Tester sur router si possible
- Run
📝 Notes d'Implémentation
{Notes spécifiques, contraintes, choix d'architecture, etc.}
Instructions Finales
Implémente ce module en suivant EXACTEMENT les patterns des 14 modules existants:
- Structure des fichiers identique
- Conventions de nommage cohérentes
- Style de code similaire
- Validation complète avant livraison
Génère tous les fichiers complets. Ne laisse AUCUN placeholder ou TODO.
---
## 🔐 Exemple Concret: Module KSM (Key Storage Manager)
Voici un exemple d'utilisation du template pour un module de gestion de clés avec support Nitrokey:
```markdown
## Nouveau Module SecuBox: Key Storage Manager
### 🎯 Contexte et Objectif
**Nom du module**: luci-app-ksm-manager
**Catégorie**: Security
**Description courte**: Gestionnaire centralisé de clés cryptographiques avec support hardware (Nitrokey, YubiKey) et stockage sécurisé.
**Cas d'utilisation**: Administrateurs système gérant des certificats SSL, clés SSH, secrets d'application, et tokens avec support HSM/USB.
### 📊 Fonctionnalités Requises
1. **Gestion des Clés Cryptographiques**
- Génération de clés (RSA, ECDSA, Ed25519)
- Import/export de clés (PEM, DER, P12)
- Listing avec métadonnées (type, taille, usage, expiration)
- Suppression sécurisée (shred)
2. **Support Hardware Security Modules**
- Détection automatique Nitrokey/YubiKey (USB)
- Initialisation/PIN management
- Génération de clés on-chip
- Opérations cryptographiques (sign, encrypt)
- Backup/restore de tokens
3. **Stockage Sécurisé de Secrets**
- Keystore chiffré (AES-256-GCM)
- Secrets applicatifs (API keys, passwords)
- Rotation automatique de secrets
- Historique d'accès (audit log)
4. **Intégration Certificats**
- Génération CSR (Certificate Signing Request)
- Import certificats (Let's Encrypt, CA interne)
- Vérification chaîne de confiance
- Alertes expiration (< 30 jours)
5. **SSH Key Management**
- Génération de paires SSH
- Déploiement vers authorized_keys
- Agent SSH avec forward (ssh-agent)
- Support certificats SSH
### 🔌 Intégration Système
**Services système**:
- `nitropy` - CLI Nitrokey
- `ykman` - CLI YubiKey
- `gnupg2` - GPG/OpenPGP
- `opensc` - Smart card framework
**Commandes CLI**:
- `nitropy nk3 list` - Liste Nitrokey connectées
- `ykman list` - Liste YubiKey connectées
- `gpg --card-status` - Status carte OpenPGP
- `pkcs11-tool --list-tokens` - Liste tokens PKCS#11
- `openssl` - Génération clés/CSR
**Fichiers de configuration**:
- `/etc/ksm/keystore.db` - Base SQLite chiffrée
- `/etc/ksm/config.json` - Configuration module
- `/var/log/ksm-audit.log` - Logs d'accès
**Dépendances packages**:
- `nitropy` - Nitrokey tools
- `yubikey-manager` - YubiKey management
- `gnupg2` - GPG support
- `opensc` - Smart card support
- `openssl` - Crypto operations
- `libccid` - USB CCID driver
- `pcscd` - PC/SC daemon
### 🎨 Méthodes RPCD
Script: `/usr/libexec/rpcd/luci.ksm-manager`
#### Méthodes de Base
1. **status**: État du service
- Retour: `{ "running": bool, "keystore_unlocked": bool, "keys_count": int, "hsm_connected": bool }`
2. **get_info**: Informations système
- Retour: `{ "openssl_version": string, "gpg_version": string, "hsm_support": bool }`
#### Méthodes HSM/Hardware
3. **list_hsm_devices**: Liste devices USB
- Retour: `{ "devices": [{ "type": "nitrokey", "serial": "...", "version": "..." }] }`
4. **get_hsm_status**: Status d'un device
- Params: `serial`
- Retour: `{ "initialized": bool, "pin_retries": int, "keys_count": int }`
5. **init_hsm**: Initialiser un HSM
- Params: `serial, admin_pin, user_pin`
- Retour: `{ "success": bool }`
6. **generate_hsm_key**: Générer clé on-chip
- Params: `serial, key_type, key_size, label`
- Retour: `{ "success": bool, "key_id": string }`
#### Méthodes Gestion de Clés
7. **list_keys**: Liste toutes les clés
- Retour: `{ "keys": [{ "id": string, "label": string, "type": string, "size": int, "created": timestamp }] }`
8. **generate_key**: Générer une clé logicielle
- Params: `type, size, label, passphrase`
- Retour: `{ "success": bool, "id": string, "public_key": string }`
9. **import_key**: Importer une clé
- Params: `label, key_data, format, passphrase`
- Retour: `{ "success": bool, "id": string }`
10. **export_key**: Exporter une clé
- Params: `id, format, include_private, passphrase`
- Retour: `{ "success": bool, "key_data": string }`
11. **delete_key**: Supprimer une clé
- Params: `id, secure_erase`
- Retour: `{ "success": bool }`
#### Méthodes Certificats
12. **generate_csr**: Générer CSR
- Params: `key_id, subject_dn, san_list`
- Retour: `{ "success": bool, "csr": string }`
13. **import_certificate**: Importer certificat
- Params: `key_id, cert_data, chain`
- Retour: `{ "success": bool, "cert_id": string }`
14. **list_certificates**: Liste certificats
- Retour: `{ "certificates": [{ "id": string, "subject": string, "issuer": string, "valid_until": timestamp }] }`
15. **verify_certificate**: Vérifier certificat
- Params: `cert_id`
- Retour: `{ "valid": bool, "chain_valid": bool, "expires_in_days": int }`
#### Méthodes Secrets
16. **store_secret**: Stocker un secret
- Params: `label, secret_data, category, auto_rotate`
- Retour: `{ "success": bool, "secret_id": string }`
17. **retrieve_secret**: Récupérer un secret
- Params: `secret_id`
- Retour: `{ "success": bool, "secret_data": string, "accessed_at": timestamp }`
18. **list_secrets**: Liste secrets
- Retour: `{ "secrets": [{ "id": string, "label": string, "category": string, "created": timestamp }] }`
19. **rotate_secret**: Rotation de secret
- Params: `secret_id, new_secret_data`
- Retour: `{ "success": bool, "version": int }`
#### Méthodes SSH
20. **generate_ssh_key**: Générer paire SSH
- Params: `label, key_type, comment`
- Retour: `{ "success": bool, "key_id": string, "public_key": string }`
21. **deploy_ssh_key**: Déployer vers authorized_keys
- Params: `key_id, target_host, target_user`
- Retour: `{ "success": bool }`
#### Méthodes Audit
22. **get_audit_logs**: Logs d'accès
- Params: `limit, offset, filter_type`
- Retour: `{ "logs": [{ "timestamp": timestamp, "action": string, "user": string, "key_id": string }] }`
### 🗄️ Configuration UCI
Fichier: `/etc/config/ksm`
```uci
config global 'main'
option enabled '1'
option keystore_path '/etc/ksm/keystore.db'
option audit_enabled '1'
option audit_retention '90'
option auto_backup '1'
config hsm_device 'device_123'
option serial 'NK3-ABC123'
option type 'nitrokey'
option label 'Production HSM'
option enabled '1'
config key 'key_456'
option label 'SSL Certificate Key'
option type 'rsa'
option size '4096'
option usage 'ssl'
option storage 'hsm'
option hsm_serial 'NK3-ABC123'
option created '2025-01-15T10:00:00Z'
config secret 'secret_789'
option label 'API Key GitHub'
option category 'api_key'
option auto_rotate '1'
option rotation_days '90'
option created '2025-01-15T10:00:00Z'
config certificate 'cert_101'
option key_id 'key_456'
option subject 'CN=example.com'
option issuer 'CN=Let's Encrypt'
option valid_from '2025-01-01T00:00:00Z'
option valid_until '2025-04-01T00:00:00Z'
option alert_days '30'
🎨 Interface Utilisateur (Views)
Vue 1: Overview/Dashboard
Fichier: htdocs/luci-static/resources/view/ksm-manager/overview.js
Éléments:
- Status cards: Keystore locked/unlocked, HSM connected, Keys count, Expiring certs
- HSM Devices: Cards avec serial, type, status (connected/disconnected), PIN retries
- Quick Stats: Pie chart types de clés (RSA/ECDSA/Ed25519)
- Expiring Certificates: Timeline avec alertes < 30 jours
- Recent Activity: 10 dernières actions d'audit
- Actions rapides: Unlock keystore, Generate key, Import certificate
Auto-refresh: 10s pour HSM status, 30s pour stats
Vue 2: Keys Management
Fichier: htdocs/luci-static/resources/view/ksm-manager/keys.js
Éléments:
- Tableau GridSection avec:
- Colonnes: Label, Type, Size, Storage (software/hsm), Created, Actions
- Filtres: Type, Storage location
- Tri par date/label
- Modal Generate Key:
- Type (RSA/ECDSA/Ed25519)
- Size (dropdown: 2048/3072/4096 pour RSA, 256/384/521 pour ECDSA)
- Storage (software/hsm selector)
- Label, Passphrase
- Button "Generate" → progress → success
- Modal Import Key:
- Format (PEM/DER/P12)
- File upload ou paste textarea
- Passphrase si encrypted
- Label
- Actions inline:
- View public key (modal avec copy button)
- Export (format selector)
- Delete (confirmation avec secure erase option)
Vue 3: HSM Devices
Fichier: htdocs/luci-static/resources/view/ksm-manager/hsm.js
Éléments:
- Auto-detect: Button scan USB devices
- Device Cards pour chaque HSM:
- Header: Type icon (Nitrokey/YubiKey) + Serial + Label
- Status: Initialized, PIN retries (progress bar), Keys count
- Actions: Initialize, Change PIN, Generate key on-chip, Backup, Factory reset
- Modal Initialize HSM:
- Admin PIN (strength meter)
- User PIN (strength meter)
- Label
- Warning: Factory reset si déjà initialisé
- Modal Generate HSM Key:
- Key type, size, label
- Requires user PIN
- Progress indicator
- Key list per HSM: Expandable section showing keys stored on chip
Vue 4: Certificates
Fichier: htdocs/luci-static/resources/view/ksm-manager/certificates.js
Éléments:
- Tableau certificates:
- Colonnes: Subject CN, Issuer, Valid from/until, Days remaining, Status
- Color coding: Green (>30d), Orange (7-30d), Red (<7d), Gray (expired)
- Actions: View details, Export PEM, Revoke, Delete
- Modal Generate CSR:
- Select key (dropdown)
- Subject DN fields (CN, O, OU, C, ST, L)
- SAN list (domains, IPs)
- Generate button → CSR textarea avec copy
- Download .csr button
- Modal Import Certificate:
- Select key to associate
- Certificate PEM (textarea or file upload)
- Certificate chain (optional)
- Validate button → shows cert info before import
- Certificate Details Modal:
- Full subject/issuer DN
- Serial number
- Validity dates
- Public key info
- Extensions (Key Usage, Extended Key Usage, SAN)
- Certificate chain visualization
- Verify chain button
Vue 5: Secrets
Fichier: htdocs/luci-static/resources/view/ksm-manager/secrets.js
Éléments:
- Tableau secrets:
- Colonnes: Label, Category, Created, Last accessed, Auto-rotate, Actions
- Categories: API Key, Password, Token, Database, Other
- Masked secrets (show button reveals for 10s)
- Modal Add Secret:
- Label
- Category (dropdown)
- Secret value (textarea, masked)
- Auto-rotate toggle + rotation days
- Expiration date (optional)
- Modal View Secret:
- Shows secret with copy button
- Warning: "This access will be logged"
- Auto-hide after 30 seconds
- Access history table
- Actions:
- View/copy (logs access)
- Rotate (enter new value)
- Delete (confirmation)
Vue 6: SSH Keys
Fichier: htdocs/luci-static/resources/view/ksm-manager/ssh.js
Éléments:
- Tableau SSH keys:
- Colonnes: Label, Type, Fingerprint, Created, Deployed to, Actions
- Modal Generate SSH Key:
- Type (RSA/ECDSA/Ed25519)
- Size (for RSA)
- Comment
- Passphrase (optional)
- Modal Deploy Key:
- Select key
- Target host
- Target user
- Port
- Test connection button
- Deploy button
- Public key display: Copy to clipboard button
Vue 7: Audit Logs
Fichier: htdocs/luci-static/resources/view/ksm-manager/audit.js
Éléments:
- Timeline logs:
- Timestamp, User, Action, Resource (key/secret/cert), Status
- Color coding par action type
- Filtres: Date range, Action type, User, Resource
- Export logs: CSV/JSON download
- Auto-refresh: 15s
Vue 8: Settings
Fichier: htdocs/luci-static/resources/view/ksm-manager/settings.js
Éléments:
- Keystore Settings:
- Change master password
- Keystore path
- Auto-lock timeout
- Backup schedule
- Audit Settings:
- Enable/disable audit
- Retention period (days)
- Log level
- Alerts Settings:
- Certificate expiration threshold (days)
- Secret rotation reminder
- HSM disconnect alerts
- Backup/Restore:
- Create backup (encrypted archive)
- Restore from backup
- Auto-backup toggle + schedule
🎯 Spécifications Techniques
Parsing de Sortie CLI
Nitrokey List:
nitropy nk3 list --json | jq -c '.[]'
# Output: {"path": "/dev/hidraw0", "serial_number": "NK3-ABC123", "firmware_version": "1.2.0"}
YubiKey List:
ykman list --serials
# Output: NK3-ABC123
OpenSSL Key Generation:
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:4096 -out /tmp/key.pem
openssl rsa -in /tmp/key.pem -pubout -out /tmp/key.pub
Certificate Info:
openssl x509 -in cert.pem -noout -subject -issuer -dates -serial
Gestion d'Erreurs
- HSM non détecté:
{ "error": "HSM not found", "code": "HSM_NOT_FOUND" } - PIN incorrect:
{ "error": "Invalid PIN", "retries_left": 2, "code": "INVALID_PIN" } - Keystore locked:
{ "error": "Keystore locked", "code": "KEYSTORE_LOCKED" } - Clé inexistante:
{ "error": "Key not found", "code": "KEY_NOT_FOUND" } - Certificate expiré:
{ "error": "Certificate expired", "code": "CERT_EXPIRED" }
Sécurité
- Validation inputs:
- Serial:
^[A-Z0-9-]+$ - Label:
^[a-zA-Z0-9 _-]{1,64}$ - PIN: 6-32 caractères
- Serial:
- Sanitization: Toutes les entrées utilisateur passées à openssl/gpg
- Permissions: Root requis pour accès /dev/hidraw*
- Audit: Tous les accès aux secrets loggés
- Encryption: Keystore chiffré AES-256-GCM avec KDF (PBKDF2)
📦 Livrables Attendus
Génère TOUS les fichiers complets:
- ✅ Makefile avec dépendances (nitropy, yubikey-manager, gnupg2, opensc, openssl, libccid, pcscd)
- ✅ RPCD Backend avec 22 méthodes complètes
- ✅ API Client avec toutes les déclarations RPC + utilitaires
- ✅ 8 Views JavaScript (overview, keys, hsm, certificates, secrets, ssh, audit, settings)
- ✅ Menu JSON avec 8 entrées
- ✅ ACL JSON avec toutes les permissions
- ✅ README.md complet avec:
- Guide installation Nitrokey/YubiKey drivers
- Configuration initiale du keystore
- Exemples d'utilisation
- Troubleshooting USB permissions
- Best practices sécurité
✅ Checklist de Validation
- RPCD backend complet avec 22 méthodes
- Gestion HSM (Nitrokey + YubiKey)
- Génération/import/export de clés
- Gestion certificats avec CSR
- Stockage secrets chiffrés
- SSH key management
- Audit logs complets
- 8 views fonctionnelles
- Auto-refresh approprié
- Validation inputs partout
- Gestion erreurs complète
- Nom RPCD =
luci.ksm-manager - Syntaxe JavaScript valide
- Documentation README
🔄 Workflow d'Implémentation
Phase 1: Backend Core
- Implémenter détection HSM (nitropy/ykman)
- Créer keystore SQLite chiffré
- Implémenter méthodes de base (status, info, list)
Phase 2: Key Management 4. Génération clés software (openssl) 5. Import/export clés 6. Génération clés HSM (PKCS#11)
Phase 3: Certificates 7. Génération CSR 8. Import/validation certificats 9. Alertes expiration
Phase 4: Secrets & SSH 10. Stockage secrets chiffrés 11. Rotation automatique 12. SSH key management
Phase 5: Audit & UI 13. Système d'audit logs 14. Toutes les views 15. Auto-refresh et polling
Phase 6: Testing 16. Validation complète 17. Tests avec vrai HSM 18. Documentation
📝 Notes d'Implémentation
Architecture:
- Backend SQLite pour metadata + fichiers PEM pour clés
- Keystore master password → KDF → AES key pour chiffrement
- HSM operations via PKCS#11 (libccid + opensc)
- Audit logs append-only avec rotation
Performance:
- Cache status HSM (TTL 5s) pour éviter USB polling constant
- Index SQLite sur labels, created, expires
- Lazy loading de clés privées
Sécurité:
- Keystore auto-lock après timeout
- PIN retries limités (3 max avant lock)
- Secure memory (mlock) pour clés en RAM
- Shred files avant delete
- Audit tous les accès
Instructions Finales
Implémente le module KSM Manager en suivant exactement le template ci-dessus.
- Structure identique aux 14 modules SecuBox existants
- Code complet, zéro placeholders
- Validation complète avant livraison
- Documentation exhaustive
Génère TOUS les fichiers listés. Commence par le backend RPCD, puis API, puis views.
---
## 🎯 Utilisation du Template
### Pour implémenter un nouveau module:
1. **Copie le template** de ce fichier
2. **Remplis chaque section** avec les specs de ton module
3. **Soumets le prompt complet** à Claude
4. **Valide** avec `./secubox-tools/validate-modules.sh`
5. **Teste** sur router ou émulateur
### Exemples d'autres modules possibles:
- **luci-app-iot-hub**: Gestion centralisée dispositifs IoT (MQTT, Zigbee, Z-Wave)
- **luci-app-backup-manager**: Backups automatiques (rsync, rclone, cloud)
- **luci-app-dns-manager**: DNS local avancé (Pi-hole style, DoH, DoT)
- **luci-app-container-manager**: Docker/Podman management
- **luci-app-monitoring-alerts**: Alerting system (Prometheus, Grafana, webhooks)
Adapte le template selon tes besoins spécifiques!