secubox-openwrt/package/secubox/secubox-app-streamlit-forge/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

347 lines
9.9 KiB
Markdown

[English](README.md) | Francais | [中文](README.zh.md)
# Streamlit Forge
Plateforme de publication d'applications Streamlit pour SecuBox.
## Presentation
Streamlit Forge est une plateforme complete pour creer, gerer et publier des applications Streamlit. Creez des applications a partir de modeles, gerez les instances, exposez via HAProxy avec SSL et publiez sur le catalogue mesh SecuBox.
## Fonctionnalites
- **Modeles d'applications** - Modeles de base : Basic, Dashboard, Data-Viewer
- **Gestion des instances** - Demarrer, arreter, redemarrer les instances d'applications
- **Allocation de ports** - Attribution automatique des ports
- **Integration HAProxy** - Exposition vhost + SSL en une commande
- **Publication Mesh** - Partagez les applications sur le reseau mesh SecuBox
- **Configuration UCI** - Parametres d'applications persistants
## Installation
```bash
opkg install secubox-app-streamlit-forge
```
## Utilisation CLI
```bash
# Gestion des applications
slforge create <name> [options]
--from-template <tpl> # Utiliser un modele (basic, dashboard, data-viewer)
--from-upload <zip> # Creer depuis un fichier ZIP
--from-git <url> # Cloner depuis un depot Git
slforge list # Lister toutes les applications
slforge info <app> # Afficher les details de l'application
slforge delete <app> # Supprimer l'application
# Controle des instances
slforge start <app> # Demarrer l'instance
slforge stop <app> # Arreter l'instance
slforge restart <app> # Redemarrer l'application
slforge status [app] # Afficher le statut
slforge logs <app> [-f] # Voir les logs
# Configuration
slforge config <app> list # Lister la config
slforge config <app> get <key> # Obtenir une valeur
slforge config <app> set <k> <v> # Definir une valeur
# Publication
slforge expose <app> [--domain <d>] # Creer vhost + SSL
slforge hide <app> # Retirer l'acces public
slforge publish <app> # Ajouter au catalogue mesh
slforge unpublish <app> # Retirer du mesh
# Integration Launcher (demarrage a la demande)
slforge launcher status # Afficher le statut du launcher
slforge launcher priority <app> <n> # Definir la priorite (1-100)
slforge launcher always-on <app> # Marquer comme toujours actif
# Modeles
slforge templates # Lister les modeles disponibles
```
## Exemple de Workflow
```bash
# 1. Creer une application depuis le modele dashboard
slforge create mydashboard --from-template dashboard
# 2. Demarrer l'application
slforge start mydashboard
# URL: http://192.168.255.1:8501
# 3. Exposer avec SSL
slforge expose mydashboard --domain mydashboard.gk2.secubox.in
# 4. Publier sur le catalogue mesh
slforge publish mydashboard
```
## Modeles
### Basic
Application Streamlit minimale avec barre laterale et disposition en deux colonnes.
### Dashboard
Dashboard multi-pages avec :
- Cartes de metriques avec indicateurs delta
- Graphiques en lignes et en aires
- Tableau de donnees avec export CSV
- Page de parametres
### Data-Viewer
Explorateur de donnees CSV/Excel avec :
- Upload de fichiers (CSV, XLSX)
- Filtrage dynamique par colonnes
- Histogrammes et nuages de points
- Resume statistique
- Matrice de correlation
## Configuration
Config UCI : `/etc/config/streamlit-forge`
```
config forge 'main'
option enabled '1'
option gitea_url 'http://127.0.0.1:3000'
option gitea_org 'streamlit-apps'
option apps_dir '/srv/streamlit/apps'
option previews_dir '/srv/streamlit/previews'
option base_domain 'apps.secubox.in'
option default_port_start '8501'
option default_memory '512M'
config app 'myapp'
option name 'myapp'
option enabled '1'
option port '8501'
option entrypoint 'app.py'
option memory '512M'
option domain 'myapp.gk2.secubox.in'
```
## Structure du Repertoire d'Application
```
/srv/streamlit/apps/<app>/
|-- src/ # Code source de l'application
| |-- app.py # Point d'entree Streamlit principal
| |-- requirements.txt # Dependances Python
| +-- ...
|-- data/ # Donnees persistantes
+-- config.json # Configuration runtime
```
## Interface LuCI
Installez `luci-app-streamlit-forge` pour l'interface web dans **Services > Streamlit Forge**.
Fonctionnalites :
- Dashboard de statut (applications en cours/total, statut LXC)
- Dialogue de creation d'application avec selection de modele
- Tableau d'applications avec Demarrer/Arreter/Ouvrir/Exposer/Publier/Supprimer
- Actualisation automatique
## Runtime
Les applications s'executent dans le conteneur LXC `streamlit` :
- Applications montees dans `/srv/apps/` a l'interieur du conteneur
- Virtualenv Python avec Streamlit pre-installe
- Redirection de ports vers le reseau hote
## Dependances
- python3, python3-pip
- lxc, lxc-common
- jsonfilter
## Emplacements des Fichiers
| Chemin | Description |
|--------|-------------|
| `/etc/config/streamlit-forge` | Configuration UCI |
| `/usr/sbin/slforge` | Outil CLI |
| `/srv/streamlit/apps/` | Repertoires sources des applications |
| `/srv/streamlit/previews/` | Previews generees |
| `/usr/share/streamlit-forge/templates/` | Modeles d'applications |
| `/var/run/streamlit-*.pid` | Fichiers PID |
| `/var/log/streamlit-*.log` | Logs des applications |
## Manifeste du Catalogue Mesh
Les applications publiees creent un manifeste dans `/usr/share/secubox/plugins/catalog/` :
```json
{
"id": "streamlit-myapp",
"name": "myapp",
"type": "streamlit-app",
"version": "1.0.0",
"category": "apps",
"runtime": "streamlit",
"actions": {
"start": "slforge start myapp",
"stop": "slforge stop myapp"
}
}
```
## Launcher a la Demande
Installez `secubox-app-streamlit-launcher` pour l'optimisation des ressources :
- **Chargement Paresseux** - Les applications demarrent uniquement lors du premier acces
- **Arret sur Inactivite** - Arret des applications apres un delai configurable (defaut : 30 min)
- **Gestion Memoire** - Arret force des applications a basse priorite en cas de pression memoire
- **Systeme de Priorite** - Garde les applications critiques en fonctionnement plus longtemps
### Commandes Launcher
```bash
# Verifier le statut du launcher
slforge launcher status
# Definir la priorite (plus haut = reste actif plus longtemps, max 100)
slforge launcher priority myapp 75
# Marquer comme toujours actif (jamais arrete automatiquement)
slforge launcher always-on dashboard
```
### Niveaux de Priorite
| Priorite | Comportement |
|----------|--------------|
| 100 + always_on | Jamais arrete automatiquement |
| 80-99 | Arrete en dernier lors de pression memoire |
| 50 (defaut) | Priorite normale |
| 1-49 | Arrete en premier lors de pression memoire |
### Fonctionnement
1. L'utilisateur accede a `https://app.example.com`
2. Si l'application est arretee, le launcher la demarre a la demande
3. Le temps d'acces est enregistre
4. Apres le delai d'inactivite, l'application est automatiquement arretee
5. La pression memoire declenche l'arret des applications a basse priorite
Voir le README de `secubox-app-streamlit-launcher` pour la configuration complete.
## Manifeste de Module (NFO)
Les applications peuvent inclure un manifeste `README.nfo` avec des metadonnees pour :
- **Identite** - Nom, version, auteur, licence
- **Classification** - Categorie, mots-cles, tags
- **Runtime** - Port, memoire, dependances
- **Dynamiques** - Contexte IA pour l'integration de contenu generatif
### Commandes NFO
```bash
# Generer README.nfo pour une application existante
slforge nfo init myapp
# Voir le resume NFO
slforge nfo info myapp
# Editer le manifeste
slforge nfo edit myapp
# Valider le manifeste
slforge nfo validate myapp
# Exporter en JSON (pour APIs)
slforge nfo json myapp
# Installer une application depuis un repertoire avec NFO
slforge nfo install /path/to/myapp
```
### Structure du Fichier NFO
```nfo
[identity]
id=myapp
name=My Application
version=1.0.0
author=CyberMind
[description]
short=Un dashboard pour les metriques systeme
long=<<EOF
Description detaillee multi-lignes...
EOF
[tags]
category=administration
keywords=dashboard,monitoring,metrics
[runtime]
type=streamlit
port=8501
memory=512M
[dynamics]
prompt_context=<<EOF
Cette application affiche les metriques systeme.
Les utilisateurs peuvent demander des graphiques ou exports de donnees.
EOF
capabilities=data-visualization,export
input_types=api,json
output_types=charts,tables,csv
```
### Installateur Integre
Les applications peuvent inclure un `install.sh` qui lit le NFO :
```bash
# Installer depuis un repertoire
cd /path/to/myapp
./install.sh
# Ou utiliser slforge
slforge nfo install /path/to/myapp
```
Voir `/usr/share/streamlit-forge/NFO-SPEC.md` pour la specification complete.
### Integration IA Generative
La section `[dynamics]` fournit un contexte pour les assistants IA :
```nfo
[dynamics]
prompt_context=<<EOF
Cette application est un dashboard de visualisation de donnees.
Elle peut afficher des graphiques, tableaux et exporter des donnees.
Donnees disponibles : CPU, memoire, metriques reseau.
EOF
capabilities=data-visualization,real-time-updates,export
input_types=json,api,prometheus
output_types=charts,tables,csv,pdf
```
Les systemes IA peuvent lire ce contexte pour comprendre ce que fait l'application et comment assister les utilisateurs.
## Emplacements des Fichiers
| Chemin | Description |
|--------|-------------|
| `/etc/config/streamlit-forge` | Configuration UCI |
| `/usr/sbin/slforge` | Outil CLI |
| `/srv/streamlit/apps/` | Repertoires sources des applications |
| `/srv/streamlit/apps/<app>/README.nfo` | Manifeste de l'application |
| `/srv/streamlit/previews/` | Previews generees |
| `/usr/share/streamlit-forge/templates/` | Modeles d'applications |
| `/usr/share/streamlit-forge/lib/nfo-parser.sh` | Bibliotheque parseur NFO |
| `/usr/share/streamlit-forge/nfo-template.nfo` | Modele NFO |
| `/usr/share/streamlit-forge/install.sh` | Installateur integre |
| `/var/run/streamlit-*.pid` | Fichiers PID |
| `/var/log/streamlit-*.log` | Logs des applications |