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>
6.9 KiB
6.9 KiB
Metabolizer Blog Pipeline
Un pipeline CMS complet integrant Gitea, Streamlit et HexoJS pour SecuBox OpenWrt.
┌─────────────────────────────────────────────────────────────────────────┐
│ PIPELINE METABOLIZER │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ GITEA │───►│ STREAMLIT │───►│ HEXOJS │───► PORTAL │
│ │ Stockage │ │ App CMS │ │ Generateur │ (statique)│
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │ │ │ │
│ Clone depuis Editer posts clean → │
│ URL GitHub + medias generate → │
│ publish │
└─────────────────────────────────────────────────────────────────────────┘
Fonctionnalites
- Integration Gitea - Mirrorer des repos GitHub, stocker le contenu du blog localement
- CMS Streamlit - Editeur markdown web avec apercu en direct
- Generateur HexoJS - Generation de site statique avec theme cyberpunk
- Automatisation par webhook - Reconstruction automatique sur git push
- Acces Portal - Blog statique servi sur
/blog/
Installation
opkg install secubox-app-metabolizer
metabolizerctl install
Dependances
secubox-app-gitea- Serveur de depots Gitsecubox-app-streamlit- Serveur d'applications Streamlitsecubox-app-hexojs- Generateur de site statiquersync- Synchronisation de fichiersgit- Controle de version
Demarrage rapide
1. Installer le pipeline
metabolizerctl install
Cela va :
- Creer le repo
blog-contentdans Gitea - Deployer l'application CMS sur Streamlit
- Configurer les webhooks pour la reconstruction automatique
2. Mirrorer depuis GitHub (optionnel)
metabolizerctl mirror https://github.com/user/my-blog.git
3. Acceder au CMS
Ouvrez http://<ip-routeur>:8501 dans votre navigateur.
4. Voir votre blog
Naviguez vers http://<ip-routeur>/blog/
Commandes
| Commande | Description |
|---|---|
metabolizerctl install |
Configurer les repos, webhooks, deployer le CMS |
metabolizerctl uninstall |
Supprimer la configuration metabolizer |
metabolizerctl status |
Afficher le statut du pipeline (JSON) |
metabolizerctl mirror <url> |
Cloner un repo GitHub vers Gitea |
metabolizerctl sync |
Tirer les dernieres modifications de tous les repos |
metabolizerctl build |
Executer Hexo clean → generate → publish |
metabolizerctl publish |
Copier le site statique vers le portal |
metabolizerctl cms deploy |
Deployer l'application CMS sur Streamlit |
metabolizerctl cms update |
Tirer et redemarrer le CMS |
Pages CMS
Editeur (/pages/1_editor.py)
Editeur markdown a deux colonnes avec :
- Apercu en direct
- Editeur YAML front matter (titre, date, categories, tags)
- Enregistrer comme brouillon ou publier directement
- Declencher le build Hexo depuis l'interface
Articles (/pages/2_posts.py)
Gerer votre contenu :
- Voir les articles publies et les brouillons
- Editer, supprimer, publier/depublier
- Synchroniser depuis Git
- Reconstruire le blog
Medias (/pages/3_media.py)
Bibliotheque de medias :
- Upload d'images par glisser-deposer
- Vue galerie avec miniatures
- Copier le code markdown pour l'integration
- Synchronisation automatique vers le blog
Parametres (/pages/4_settings.py)
Controles du pipeline :
- Statut des services (Gitea, Streamlit, HexoJS)
- Operations Git (pull, status, mirror)
- Pipeline de build (clean, generate, publish)
- Configuration du portal
Configuration
Configuration UCI dans /etc/config/metabolizer :
config metabolizer 'main'
option enabled '1'
option gitea_url 'http://127.0.0.1:3000'
option webhook_port '8088'
config content 'content'
option repo_name 'blog-content'
option repo_path '/srv/metabolizer/content'
config hexo 'hexo'
option source_path '/srv/hexojs/site/source/_posts'
option public_path '/srv/hexojs/site/public'
option portal_path '/www/blog'
option auto_publish '1'
config portal 'portal'
option enabled '1'
option url_path '/blog'
Flux de donnees
1. L'auteur ecrit un article dans le CMS Streamlit
│
▼
2. Le CMS commit + push vers Gitea
│
▼
3. Le webhook Gitea declenche metabolizer-webhook
│
▼
4. Le webhook execute : sync → build → publish
│
├─► git pull du repo de contenu
├─► rsync des posts vers la source Hexo
├─► hexoctl clean
├─► hexoctl generate
└─► rsync public/ vers /www/blog/
│
▼
5. Blog accessible sur http://routeur/blog/
Structure des repertoires
/srv/metabolizer/
├── content/ # Repo git du contenu du blog
│ ├── _posts/ # Fichiers markdown publies
│ ├── _drafts/ # Brouillons
│ └── images/ # Fichiers medias
/srv/hexojs/site/
├── source/_posts/ # Source Hexo (synchronisee depuis content)
└── public/ # Site statique genere
/www/blog/ # Fichiers statiques du portal (publies)
Integration webhook
L'ecouteur webhook fonctionne sur le port 8088 (configurable) et gere :
- Push du repo de contenu → Sync + Build + Publish
- Push du repo CMS → Mettre a jour l'application Streamlit
URL du webhook : http://<ip-routeur>:8088/webhook
Depannage
Verifier le statut des services
metabolizerctl status
Voir les logs
logread | grep metabolizer
Reconstruction manuelle
metabolizerctl sync
metabolizerctl build
Reinitialiser le pipeline
metabolizerctl uninstall
metabolizerctl install
Licence
MIT License - CyberMind Studio