secubox-openwrt/secubox-tools/README.fr.md
CyberMind-FR ccfb58124c docs: Add trilingual documentation (French and Chinese translations)
Add complete French (fr) and Chinese (zh) translations for all documentation:

- Root files: README, CHANGELOG, SECURITY, BETA-RELEASE
- docs/: All 16 core documentation files
- DOCS/: All 19 deep-dive documents including embedded/ and archive/
- package/secubox/: All 123+ package READMEs
- Misc: secubox-tools/, scripts/, EXAMPLES/, config-backups/, streamlit-apps/

Total: 346 translation files created

Each file includes language switcher links for easy navigation between
English, French, and Chinese versions.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-20 10:00:18 +01:00

787 lines
24 KiB
Markdown

# Outils de Developpement SecuBox
[English](README.md) | Francais | [中文](README.zh.md)
**Version :** 1.2.0
**Derniere mise a jour :** 2026-02-28
**Statut :** Actif
Ce repertoire contient des utilitaires pour la validation, le debogage et la maintenance des modules SecuBox.
---
## Voir Aussi
- **Commandes Rapides et Regles :** [DOCS/QUICK-START.md](../DOCS/QUICK-START.md)
- **Garde-fous d'Automatisation :** [DOCS/CODEX.md](../DOCS/CODEX.md)
- **Guide de Validation :** [DOCS/VALIDATION-GUIDE.md](../DOCS/VALIDATION-GUIDE.md)
- **Procedures de Deploiement :** [DOCS/DEVELOPMENT-GUIDELINES.md §9](../DOCS/DEVELOPMENT-GUIDELINES.md#deployment-procedures)
## Apercu des Outils
### Outils de Compilation et Test
#### local-build.sh
**NOUVEAU !** Systeme de compilation local qui replique les workflows GitHub Actions.
Compilez et testez les packages localement sans pousser vers GitHub. Telecharge et configure automatiquement le SDK OpenWrt, compile les packages et collecte les artefacts.
**Utilisation :**
```bash
# Valider tous les packages
./secubox-tools/local-build.sh validate
# Compiler tous les packages (x86_64)
./secubox-tools/local-build.sh build
# Compiler un seul package
./secubox-tools/local-build.sh build luci-app-system-hub
# Compiler le package SecuBox Core
./secubox-tools/local-build.sh build secubox-core
# Compiler pour une architecture specifique
./secubox-tools/local-build.sh build --arch aarch64-cortex-a72
# Compiler une image firmware pour MOCHAbin
./secubox-tools/local-build.sh build-firmware mochabin
# Compiler une image firmware pour ESPRESSObin V7
./secubox-tools/local-build.sh build-firmware espressobin-v7
# Validation complete + compilation
./secubox-tools/local-build.sh full
# Nettoyer les artefacts de compilation
./secubox-tools/local-build.sh clean
# Tout nettoyer y compris le source OpenWrt
./secubox-tools/local-build.sh clean-all
```
**Architectures supportees (pour la compilation de packages) :**
- `x86-64` - PC, VMs (par defaut)
- `aarch64-cortex-a53` - ARM Cortex-A53 (ESPRESSObin)
- `aarch64-cortex-a72` - ARM Cortex-A72 (MOCHAbin, RPi4)
- `aarch64-generic` - ARM64 generique
- `mips-24kc` - MIPS 24Kc (TP-Link)
- `mipsel-24kc` - MIPS LE (Xiaomi, GL.iNet)
**Appareils supportes (pour la compilation firmware) :**
- `espressobin-v7` - ESPRESSObin V7 (1-2GB DDR4)
- `espressobin-ultra` - ESPRESSObin Ultra (PoE, WiFi)
- `sheeva64` - Sheeva64 (Plug computer)
- `mochabin` - MOCHAbin (Quad-core A72, 10G)
- `x86-64` - x86_64 PC generique
**Variables d'environnement :**
- `OPENWRT_VERSION` - Version OpenWrt (par defaut : 24.10.5, supporte aussi : 25.12.0-rc1, 23.05.5, SNAPSHOT)
- `SDK_DIR` - Repertoire SDK (par defaut : ./sdk)
- `BUILD_DIR` - Repertoire de sortie de compilation (par defaut : ./build)
- `CACHE_DIR` - Repertoire de cache de telechargement (par defaut : ./cache)
- `OPENWRT_DIR` - Repertoire source OpenWrt pour les compilations firmware (par defaut : ./openwrt)
**Sortie :**
- Les packages compiles sont places dans `build/<arch>/` avec des checksums SHA256
- Les images firmware sont placees dans `build/firmware/<device>/` avec checksums et infos de compilation
**Dependances :**
```bash
# Requises pour la compilation
sudo apt-get install -y build-essential clang flex bison g++ gawk \
gcc-multilib g++-multilib gettext git libncurses5-dev \
libssl-dev python3-setuptools python3-dev rsync \
swig unzip zlib1g-dev file wget curl jq ninja-build
# Optionnelles pour la validation
sudo apt-get install -y shellcheck nodejs
```
**Fonctionnalites :**
- **Compilation de packages** : Telecharge et met en cache le SDK OpenWrt pour des compilations plus rapides
- **Compilation firmware** : Telecharge le source OpenWrt complet et compile des images firmware personnalisees
- Configure automatiquement les feeds (packages, luci)
- Valide les packages avant compilation
- Compile des packages .ipk avec sortie verbose
- Compile des images firmware completes (.img.gz, *sysupgrade.bin, etc.)
- Collecte les artefacts avec checksums
- Supporte un seul package ou tous les packages
- Support de multiples architectures et appareils
- Verification du profil appareil avant compilation
**IMPORTANT : Compilations SDK vs Toolchain Complet**
Certains packages **DOIVENT** etre compiles avec la toolchain OpenWrt complete (`openwrt/`) au lieu du SDK :
| Package | Raison |
|---------|--------|
| `crowdsec` | Binaire Go avec CGO - Le SDK produit des atomiques ARM64 LSE qui plantent sur certains CPUs |
| `crowdsec-firewall-bouncer` | Binaire Go avec CGO |
| `netifyd` | Binaire natif C++ |
| `nodogsplash` | Binaire natif C |
**Pour compiler ces packages :**
```bash
cd secubox-tools/openwrt
make package/<package-name>/compile V=s
```
Les applications LuCI et les packages shell/Lua peuvent utiliser le SDK via `local-build.sh`.
**Exemple de Workflow - Compilation Toolchain (pour packages Go/natifs) :**
```bash
# 1. Naviguer vers le repertoire de compilation OpenWrt complet
cd secubox-tools/openwrt
# 2. Mettre a jour les feeds si necessaire
./scripts/feeds update -a
./scripts/feeds install -a
# 3. Compiler CrowdSec avec la toolchain complete
make package/crowdsec/compile V=s
# 4. Compiler le firewall bouncer
make package/crowdsec-firewall-bouncer/compile V=s
# 5. Les packages sont dans : bin/packages/aarch64_cortex-a72/packages/
```
**Exemple de Workflow - Compilation de Packages (SDK) :**
```bash
# 1. Faire des modifications a un module
vim luci-app-system-hub/htdocs/luci-static/resources/view/system-hub/overview.js
# 2. Valider et compiler localement
./secubox-tools/local-build.sh full
# 3. Tester sur le routeur
scp build/x86-64/*.ipk root@192.168.1.1:/tmp/
ssh root@192.168.1.1
opkg install /tmp/luci-app-system-hub*.ipk
/etc/init.d/rpcd restart
```
### Outils d'Image et Deploiement
#### secubox-image.sh
Compile des images firmware SecuBox via l'API OpenWrt ASU (Attended SysUpgrade).
**Utilisation :**
```bash
# Compiler une image firmware pour un appareil
./secubox-tools/secubox-image.sh build mochabin
# Generer une config firmware-selector
./secubox-tools/secubox-image.sh firmware-selector mochabin
# Verifier le statut de compilation
./secubox-tools/secubox-image.sh status <build-hash>
# Telecharger la compilation terminee
./secubox-tools/secubox-image.sh download <build-hash>
```
**Fonctionnalites :**
- Utilise le backend firmware-selector.openwrt.org (API ASU)
- Supporte MOCHAbin, ESPRESSObin V7/Ultra, x86-64
- Partition rootfs maximale (1024 MB)
- Le script de premier demarrage installe automatiquement les packages SecuBox
- Redimensionnement d'image pour utilisation complete de l'eMMC
**Sortie :** Images firmware dans `build/images/` avec checksums SHA256
#### secubox-sysupgrade.sh
Met a niveau un appareil SecuBox en fonctionnement tout en preservant les packages.
**Utilisation :**
```bash
# Verifier la version actuelle et les mises a niveau disponibles
secubox-sysupgrade check
# Compiler l'image sysupgrade (sans flasher)
secubox-sysupgrade build
# Compiler + telecharger + flasher (mise a niveau complete)
secubox-sysupgrade upgrade
# Afficher les infos de l'appareil
secubox-sysupgrade status
```
**Fonctionnalites :**
- Detection automatique de l'appareil, version et packages installes
- Demande une image personnalisee avec tous les packages preserves
- Preserve /etc/config, /etc/secubox, /srv/ lors des mises a niveau
- Utilise /etc/board.json pour la detection de l'appareil
#### quick-deploy.sh
Deploiement de developpement rapide vers le routeur.
**Utilisation :**
```bash
# Deployer un package IPK
./secubox-tools/quick-deploy.sh --ipk /tmp/package.ipk
# Deployer depuis un repertoire source
./secubox-tools/quick-deploy.sh --src package/secubox/luci-app-example
# Raccourci pour les applications LuCI
./secubox-tools/quick-deploy.sh --app system-hub
# Deployer depuis un depot git
./secubox-tools/quick-deploy.sh --git https://github.com/user/repo --branch develop
# Lister les applications disponibles
./secubox-tools/quick-deploy.sh --list-apps
```
**Fonctionnalites :**
- Modes source multiples : IPK, APK, tar, git
- Detection automatique des applications LuCI
- Verification post-deploiement et vidage du cache
- Capacite de sauvegarde et restauration
- Multiplexage SSH pour des transferts plus rapides
#### c3box-vm-builder.sh
Compile des images VM C3Box portables pour VMware/VirtualBox.
**Utilisation :**
```bash
# Compiler le firmware x86-64
./secubox-tools/c3box-vm-builder.sh build
# Convertir aux formats VM
./secubox-tools/c3box-vm-builder.sh convert
# Compilation complete + conversion
./secubox-tools/c3box-vm-builder.sh full
# Creer une archive distribuable
./secubox-tools/c3box-vm-builder.sh package
```
**Formats de sortie :** VMDK (VMware), OVA, VDI (VirtualBox), QCOW2 (KVM)
#### secubox-clone-station.sh
Orchestre le clonage d'appareils SecuBox via double serie USB.
**Utilisation :**
```bash
# Detecter les peripheriques serie
./secubox-tools/secubox-clone-station.sh detect
# Extraire la config du maitre
./secubox-tools/secubox-clone-station.sh pull --master /dev/ttyUSB0
# Flasher l'appareil cible
./secubox-tools/secubox-clone-station.sh flash --target /dev/ttyUSB1
# Workflow de clonage complet
./secubox-tools/secubox-clone-station.sh clone
```
**Fonctionnalites :**
- Extraction de la config depuis l'appareil maitre
- Compilation de l'image clone avec l'API ASU
- Generation du token de jonction pour le mesh
- Automatisation U-Boot via MOKATOOL
- Flashage base sur TFTP
---
### Utilitaires de Journalisation et Debogage
#### secubox-log.sh
Journaliseur/aggregateur centralise pour les modules SecuBox. Ajoute des evenements etiquetes a `/var/log/seccubox.log`, capture des snapshots qui fusionnent `dmesg` + `logread`, et peut suivre le fichier agrege pour le depannage.
```
# Ajouter un message
secubox-log.sh --tag netdata --message "Netdata restarted"
# Ajouter un snapshot avec queue dmesg/logread
secubox-log.sh --snapshot
# Suivre le log agrege
secubox-log.sh --tail 100
```
Le script est aussi installe sur le routeur sous `/usr/sbin/secubox-log` (via `luci-app-secubox`) pour que les modules LuCI puissent journaliser les evenements de cycle de vie et collecter des bundles de debogage.
**Exemple de Workflow - Compilation Firmware :**
```bash
# 1. Compiler le firmware pour MOCHAbin avec SecuBox pre-installe
./secubox-tools/local-build.sh build-firmware mochabin
# 2. Flasher sur l'appareil
# Les images firmware sont dans : build/firmware/mochabin/
# - openwrt-*-sysupgrade.bin (pour mise a niveau d'OpenWrt existant)
# - openwrt-*-factory.bin (pour installation initiale)
# - SHA256SUMS (checksums pour verification)
# - BUILD_INFO.txt (details de compilation)
# - packages/ (fichiers .ipk SecuBox)
# 3. Nettoyer apres compilation (optionnel)
./secubox-tools/local-build.sh clean-all # Supprime le source OpenWrt (economise ~20GB)
```
### Outils de Validation
#### validate-modules.sh
Validation rapide de tous les modules dans le depot.
**Utilisation :**
```bash
./secubox-tools/validate-modules.sh
```
**Verifications effectuees :**
1. **Noms de scripts RPCD vs objets ubus** - Verifie que les noms de fichiers de scripts RPCD correspondent aux declarations d'objets ubus JavaScript
2. **Chemins de menu vs fichiers de vue** - Verifie que les chemins JSON menu.d correspondent aux fichiers de vue reels
3. **Les fichiers de vue ont des entrees de menu** - Verifie que tous les fichiers de vue sont references dans les menus
4. **Permissions des scripts RPCD** - Verifie que les scripts sont executables
5. **Validation de syntaxe JSON** - Valide tous les fichiers JSON menu.d et acl.d
6. **Convention de nommage ubus** - Verifie que tous les objets ubus utilisent le prefixe `luci.`
**Codes de sortie :**
- `0` - Toutes les verifications passees (ou seulement des avertissements)
- `1` - Erreurs critiques trouvees
**Exemple de sortie :**
```
✓ luci-app-cdn-cache: RPCD script 'luci.cdn-cache' matches ubus object 'luci.cdn-cache'
✓ luci-app-cdn-cache: Menu path 'cdn-cache/overview' → file exists
❌ ERROR: luci-app-example: RPCD script 'example' does not match ubus object 'luci.example'
```
#### validate-module-generation.sh
**NOUVEAU !** Validation complete pour un seul module pendant/apres la generation.
**Utilisation :**
```bash
./secubox-tools/validate-module-generation.sh luci-app-cdn-cache
```
**Verifications effectuees :**
- Completude du Makefile (tous les champs requis)
- Convention de nommage des scripts RPCD (prefixe luci.*)
- Structure et handlers des scripts RPCD
- Couverture des permissions ACL
- Validation des chemins de menu
- Validation des vues JavaScript
- Declarations de methodes RPC vs implementations RPCD
- Scans de securite (identifiants codes en dur, commandes dangereuses)
- Presence de documentation
**Quand utiliser :**
- Apres la generation d'un nouveau module
- Avant de commiter des modifications a un module
- Lors du debogage de problemes d'integration de module
#### pre-deploy-lint.sh
**NOUVEAU !** Validation de syntaxe complete avant deploiement. Detecte les erreurs JavaScript, JSON, shell et CSS avant qu'elles ne cassent la production.
**Utilisation :**
```bash
# Valider un seul package
./secubox-tools/pre-deploy-lint.sh luci-app-system-hub
# Valider par nom court
./secubox-tools/pre-deploy-lint.sh system-hub
# Valider tous les packages
./secubox-tools/pre-deploy-lint.sh --all
# Automatiquement via quick-deploy.sh (defaut pour applications LuCI)
./secubox-tools/quick-deploy.sh --app system-hub
```
**Verifications effectuees :**
1. **Validation JavaScript :**
- Verification de syntaxe complete via Node.js `--check` (si disponible)
- Verifications de secours basees sur les patterns pour erreurs communes
- Detecte : instructions debugger, console.log, 'use strict' manquant
- Specifique LuCI : valide le format des instructions require
2. **Validation JSON :**
- Verification de syntaxe menu.d et acl.d
- Python json.tool pour un parsing correct
3. **Validation de Scripts Shell :**
- Verification de syntaxe Bash/sh via flag `-n`
- Integration shellcheck (si disponible)
- Verifications specifiques RPCD : sortie JSON, dispatcher de methode
4. **Validation CSS :**
- Detection d'accolades non fermees
- Detection de fautes de frappe communes
**Integration avec quick-deploy.sh :**
```bash
# Lint s'execute automatiquement avant deploiement (defaut)
./secubox-tools/quick-deploy.sh --app cdn-cache
# Sauter le lint (non recommande)
./secubox-tools/quick-deploy.sh --app cdn-cache --no-lint
# Forcer le lint meme pour les deploiements non-LuCI
./secubox-tools/quick-deploy.sh --src ./path --lint
```
**Codes de sortie :**
- `0` - Toutes les verifications passees (ou seulement des avertissements)
- `1` - Erreurs critiques trouvees (deploiement bloque)
**Exemple de sortie :**
```
✓ luci-app-cdn-cache: All files validated
❌ JS syntax error: htdocs/view/cdn-cache/overview.js
SyntaxError: Unexpected token '}'
⚠️ console.log found in: htdocs/view/cdn-cache/debug.js
```
#### pre-push-validation.sh
**NOUVEAU !** Hook git pre-push qui valide tous les modules avant d'autoriser le push.
**Utilisation :**
```bash
# Automatique (via hook git) :
git push # la validation s'execute automatiquement
# Manuel :
./secubox-tools/pre-push-validation.sh
```
**Verifications effectuees :**
- Toute la validation de validate-modules.sh
- Analyse des changements git indexes
- Detection des modules modifies
- Scans de securite complets
- Validation complete des modules modifies
**Codes de sortie :**
- `0` - Push autorise
- `1` - Push bloque (erreurs critiques trouvees)
**Installation :**
```bash
./secubox-tools/install-git-hooks.sh
```
### Registre d'Applications et Plugins
#### secubox-app
Aide CLI pour le naissant App Store SecuBox. Il lit `plugins/*/manifest.json`, installe/supprime les packages listes, et execute les actions shell optionnelles (`install`, `check`, `update`, `status`) definies dans le manifest.
```bash
# Lister les manifests et l'etat d'installation
secubox-app list
# Installer Zigbee2MQTT (packages + zigbee2mqttctl install)
secubox-app install zigbee2mqtt
# Afficher le manifest ou executer status/update
secubox-app show zigbee2mqtt
secubox-app status zigbee2mqtt
secubox-app update zigbee2mqtt
```
Environnement : definir `SECUBOX_PLUGINS_DIR` pour overrider le repertoire des manifests (defaut `../plugins`). Requiert `opkg` et `jsonfilter`, donc executez-le sur un systeme OpenWrt (ou dans le chroot SDK).
### Outils de Maintenance
#### secubox-repair.sh
Outil de reparation automatique qui corrige les problemes courants dans les Makefiles et scripts RPCD.
**Utilisation :**
```bash
./secubox-tools/secubox-repair.sh
```
#### secubox-debug.sh
Valide la structure et les dependances d'un package individuel sur un appareil OpenWrt.
**Utilisation :**
```bash
./secubox-tools/secubox-debug.sh luci-app-<module-name>
```
#### install-git-hooks.sh
**NOUVEAU !** Installe les hooks git pour la validation automatique.
**Utilisation :**
```bash
./secubox-tools/install-git-hooks.sh
```
Ceci cree un lien symbolique de `.git/hooks/pre-push` vers `pre-push-validation.sh`.
## Workflow Recommande
### Lors de la Generation d'un Nouveau Module
1. **Generer les fichiers du module** (utiliser Claude avec module-prompts.md)
2. **Valider le module :**
```bash
./secubox-tools/validate-module-generation.sh luci-app-<module-name>
```
3. **Corriger toutes les ERREURS** (critique)
4. **Revoir et corriger les AVERTISSEMENTS** (recommande)
5. **Compiler et tester localement** (recommande) :
```bash
./secubox-tools/local-build.sh build luci-app-<module-name>
# Tester sur le routeur si necessaire
```
6. **Commiter les changements :**
```bash
git add luci-app-<module-name>
git commit -m "feat: implement <module-name> module"
git push # La validation pre-push s'execute automatiquement
```
### Lors de la Modification de Modules Existants
1. **Faire vos modifications**
2. **Executer une validation rapide :**
```bash
./secubox-tools/validate-modules.sh
```
3. **Pour des changements complexes, executer la validation complete :**
```bash
./secubox-tools/validate-module-generation.sh luci-app-<module-name>
```
4. **Compiler et tester localement** (recommande) :
```bash
./secubox-tools/local-build.sh build luci-app-<module-name>
```
5. **Commiter et pousser** (la validation s'execute automatiquement)
### Avant de Commiter des Changements
Executez toujours au moins un outil de validation avant de commiter :
1. **Executer la validation** (CRITIQUE) :
```bash
./secubox-tools/validate-modules.sh
# Ou utiliser local-build.sh pour validation + compilation :
./secubox-tools/local-build.sh full
```
2. Corriger toute erreur reportee
3. Executer shellcheck sur les scripts RPCD :
```bash
shellcheck luci-app-*/root/usr/libexec/rpcd/*
```
4. **Tester la compilation localement** (recommande) :
```bash
./secubox-tools/local-build.sh build
```
5. Commiter les changements
## Corrections Courantes
### Corriger le non-appariement de nommage RPCD
Si la validation reporte que le nom du script RPCD ne correspond pas a l'objet ubus :
```bash
# Renommer le script pour inclure le prefixe luci.
cd luci-app-example/root/usr/libexec/rpcd
mv example luci.example
```
### Corriger le non-appariement de chemin de menu
Si la validation reporte que le chemin de menu ne correspond pas au fichier de vue :
```bash
# Option 1 : Mettre a jour le JSON menu.d pour correspondre a l'emplacement du fichier
# Editer : root/usr/share/luci/menu.d/luci-app-example.json
# Changer : "path": "example/view" → "path": "example-dashboard/view"
# Option 2 : Deplacer les fichiers de vue pour correspondre au chemin de menu
mv htdocs/luci-static/resources/view/example-dashboard \
htdocs/luci-static/resources/view/example
```
### Corriger un script RPCD non-executable
```bash
chmod +x luci-app-example/root/usr/libexec/rpcd/luci.example
```
## Feed de Packages SecuBox
Le feed SecuBox fournit des packages OpenWrt personnalises installables via `opkg`. Apres la compilation des packages, ils sont synchronises vers `/www/secubox-feed` sur le routeur.
### Structure du Feed
```
/www/secubox-feed/
├── Packages # Index des packages (texte)
├── Packages.gz # Index des packages compresse
├── Packages.sig # Signature optionnelle
└── *.ipk # Fichiers de packages
```
### Configurer opkg pour Utiliser le Feed
**Option 1 : Acces fichier local (meme appareil)**
```bash
echo 'src/gz secubox file:///www/secubox-feed' >> /etc/opkg/customfeeds.conf
opkg update
```
**Option 2 : Acces HTTP (appareils reseau)**
```bash
# Depuis d'autres appareils sur le reseau (remplacer l'IP par l'adresse de votre routeur)
echo 'src/gz secubox http://192.168.255.1/secubox-feed' >> /etc/opkg/customfeeds.conf
opkg update
```
**Option 3 : Feed publie via HAProxy (avec SSL)**
```bash
# Si publie via HAProxy avec domaine
echo 'src/gz secubox https://feed.example.com' >> /etc/opkg/customfeeds.conf
opkg update
```
### Installer des Packages depuis le Feed
```bash
# Mettre a jour les listes de packages
opkg update
# Lister les packages SecuBox disponibles
opkg list | grep -E '^(luci-app-|secubox-)'
# Installer un package
opkg install luci-app-service-registry
# Installer avec dependances
opkg install --force-depends luci-app-haproxy
```
### Regenerer l'Index des Packages
Apres l'ajout de nouveaux fichiers .ipk au feed :
```bash
# Sur le routeur
cd /www/secubox-feed
/usr/libexec/opkg-make-index . > Packages
gzip -k Packages
```
Ou utiliser la commande de deploiement :
```bash
# Depuis la machine de developpement
./secubox-tools/local-build.sh deploy root@192.168.255.1 "luci-app-*"
```
### Integration App Store
L'App Store LuCI lit depuis `apps-local.json` pour lister les packages disponibles :
```bash
# Generer le manifest des apps depuis le feed
cat /www/secubox-feed/Packages | awk '
/^Package:/ { pkg=$2 }
/^Version:/ { ver=$2 }
/^Description:/ { desc=substr($0, 14); print pkg, ver, desc }
'
```
Le tableau de bord Service Registry agrege les applications installees et leur statut.
### Exposer le Feed via HAProxy
Pour publier le feed avec HTTPS :
```bash
# Creer le backend HAProxy pour le feed
ubus call luci.haproxy create_backend '{"name":"secubox-feed","mode":"http"}'
ubus call luci.haproxy create_server '{"backend":"secubox-feed","address":"127.0.0.1","port":80}'
ubus call luci.haproxy create_vhost '{"domain":"feed.example.com","backend":"secubox-feed","ssl":1,"acme":1}'
# Demander le certificat
ubus call luci.haproxy request_certificate '{"domain":"feed.example.com"}'
```
### Depannage
**Le feed ne se met pas a jour :**
```bash
# Verifier que l'URL du feed est accessible
curl -I http://192.168.255.1/secubox-feed/Packages
# Verifier la config opkg
cat /etc/opkg/customfeeds.conf
# Forcer le rafraichissement
rm /var/opkg-lists/secubox
opkg update
```
**Erreurs de signature de package :**
```bash
# Sauter la verification de signature (developpement uniquement)
opkg update --no-check-certificate
opkg install --force-checksum <package>
```
---
## Integration avec CI/CD
Le script de validation peut etre integre dans les workflows GitHub Actions :
```yaml
- name: Validate modules
run: |
chmod +x secubox-tools/validate-modules.sh
./secubox-tools/validate-modules.sh
```
## Regles de Nommage Critiques
**Ces regles sont OBLIGATOIRES** - les violations causeront des erreurs a l'execution :
1. **Les scripts RPCD** doivent etre nommes `luci.<module-name>`
-`luci.cdn-cache`
-`cdn-cache`
2. **Les chemins de menu** doivent correspondre aux emplacements des fichiers de vue
- Menu : `"path": "cdn-cache/overview"`
- Fichier : `view/cdn-cache/overview.js`
3. **Les objets ubus** doivent utiliser le prefixe `luci.`
-`object: 'luci.cdn-cache'`
-`object: 'cdn-cache'`
Voir `CLAUDE.md` pour la documentation complete.