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

9.9 KiB

English | Francais | 中文

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

opkg install secubox-app-streamlit-forge

Utilisation CLI

# 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

# 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/ :

{
  "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

# 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

# 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

[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 :

# 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 :

[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