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>
5.0 KiB
Gestionnaire VHost et Notes sur le Reverse Proxy
Version : 1.0.0 Derniere mise a jour : 2025-12-28 Statut : Actif
SecuBox inclut luci-app-vhost-manager (tableau de bord LuCI + backend RPC) ainsi que l'assistant scripts/vhostctl.sh permettant aux applications, assistants et profils de publier de maniere declarative des services HTTP derriere nginx avec TLS et authentification HTTP optionnels.
Prerequis
- Paquets :
luci-app-vhost-managerinstalle (installe le script RPCD + interface LuCI) et nginx avec SSL (nginx-ssl). - Certificats : ACME via
acme.sh(automatique) ou fichiers PEM manuels pourtls manual. - Applications : Assurez-vous que le service en amont ecoute sur localhost ou LAN (ex., interface Zigbee2MQTT sur
http://127.0.0.1:8080). - Pare-feu : Autoriser les ports entrants 80/443 sur l'interface WAN.
CLI (scripts/vhostctl.sh)
Cet assistant manipule /etc/config/vhosts et peut etre invoque par les futurs assistants/installateurs de l'App Store.
# Lister les mappages existants
scripts/vhostctl.sh list
# Ajouter un reverse proxy HTTPS pour l'interface Zigbee2MQTT
scripts/vhostctl.sh add \
--domain zigbee.home.lab \
--upstream http://127.0.0.1:8080 \
--tls acme \
--websocket \
--enable
# Activer/desactiver ou supprimer ulterieurement
scripts/vhostctl.sh disable --domain zigbee.home.lab
scripts/vhostctl.sh remove --domain zigbee.home.lab
# Recharger nginx apres modifications
scripts/vhostctl.sh reload
Options :
| Option | Description |
|---|---|
--domain |
Nom d'hote public (obligatoire). |
--upstream |
URL du service local (http://127.0.0.1:8080). |
| `--tls off | acme |
--auth-user/--auth-pass |
Activer l'authentification HTTP basique. |
--websocket |
Ajouter les en-tetes Upgrade pour les applications WebSocket. |
--enable / --disable |
Activer/desactiver sans supprimer. |
Le script est idempotent : executer add avec un domaine existant met a jour l'entree.
Tableau de bord LuCI
Naviguez vers Services -> SecuBox -> Gestionnaire VHost pour :
- Voir les vhosts actifs/desactives, le statut TLS, les expirations de certificats.
- Modifier ou supprimer des entrees, demander des certificats ACME, consulter les logs d'acces.
- Utiliser le formulaire pour creer des entrees (domaine, upstream, TLS, authentification, WebSocket).
Le backend LuCI ecrit dans le meme fichier /etc/config/vhosts, donc les modifications depuis vhostctl.sh apparaissent immediatement.
Exemple : Publier Zigbee2MQTT
- Installez Zigbee2MQTT (Docker) et confirmez que l'interface ecoute sur le port 8080 (voir
docs/embedded/zigbee2mqtt-docker.md). - Mappez-le derriere HTTPS :
scripts/vhostctl.sh add \ --domain zigbee.secubox.local \ --upstream http://127.0.0.1:8080 \ --tls acme \ --websocket scripts/vhostctl.sh reload - (Optionnel) Utilisez LuCI pour demander des certificats et surveiller les logs.
Mode DMZ + Workflow VHost
Lors de l'activation du nouveau mode reseau Routeur + DMZ (admin -> SecuBox -> Reseau -> Modes -> DMZ) :
- Assignez
eth2(ou un autre port physique) comme interface DMZ et attribuez-lui un sous-reseau tel que192.168.50.1/24. - Appliquez le mode ; le backend cree une zone pare-feu dediee (
dmz) qui ne redirige que vers WAN. - Connectez les serveurs (ex., Lyrion, interface Zigbee2MQTT) au port DMZ afin qu'ils puissent atteindre Internet mais pas le LAN.
- Utilisez
scripts/vhostctl.sh add ... --upstream http://192.168.50.10:32400pour exposer le service DMZ via nginx avec TLS.
Le retour arriere est en un clic : utilisez la boite de dialogue "Confirmer / Annuler" des Modes Reseau dans la fenetre de 2 minutes pour restaurer automatiquement les configurations precedentes.
Depannage
| Probleme | Solution |
|---|---|
scripts/vhostctl.sh add ... retourne "Unknown option" |
Assurez-vous que busybox sh est utilise (/bin/sh). |
| Certificat ACME manquant | Confirmez que acme.sh est installe, que le domaine pointe vers le routeur, que 80/443 sont accessibles. |
| Erreurs 502/504 | Verifiez le service amont, le pare-feu, ou changez --upstream pour l'IP LAN. |
| Le mode TLS manuel echoue | Fournissez les chemins complets vers les fichiers PEM et verifiez les permissions. |
| Modifications non visibles | Executez scripts/vhostctl.sh reload ou ubus call luci.vhost-manager reload_nginx. |
Notes d'automatisation
- Les assistants/App Store peuvent appeler
scripts/vhostctl.shpour enregistrer les services lors de leur installation. - Les profils peuvent conserver des manifestes declaratifs (domaine -> upstream) et appeler
vhostctl.sh add/removelors du changement de modes. /etc/config/vhostsreste la source unique de verite, consommee par l'application LuCI et le backend RPC.