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

7.0 KiB

SecuBox HexoJS

Languages: English | Francais | 中文

Generateur de blog statique auto-heberge pour OpenWrt avec integration Gitea.

Fonctionnalites

  • Generateur de site statique Hexo 8.x avec Node.js 22 LTS
  • Theme CyberMind avec mode sombre et design moderne
  • Integration Gitea pour la gestion de contenu
  • Gestion des articles et pages avec Markdown
  • Bibliotheque de medias pour images et fichiers
  • Support du deploiement GitHub Pages
  • Serveur de previsualisation pour les tests locaux

S'execute dans un conteneur LXC avec Alpine Linux.

Installation

# Installer le paquet
opkg install secubox-app-hexojs

# Configurer le conteneur et creer le site
hexoctl install
hexoctl site create default

# Activer et demarrer le service
uci set hexojs.main.enabled=1
uci commit hexojs
/etc/init.d/hexojs enable
/etc/init.d/hexojs start

Previsualisation sur http://<ip-routeur>:4000

Commandes

Gestion du conteneur

hexoctl install           # Telecharger et configurer le conteneur LXC
hexoctl uninstall         # Supprimer le conteneur (conserve les donnees)
hexoctl update            # Mettre a jour Hexo et les dependances
hexoctl status            # Afficher le statut du service
hexoctl shell             # Ouvrir un shell dans le conteneur
hexoctl logs              # Voir les logs du conteneur
hexoctl exec <cmd>        # Executer une commande dans le conteneur

Gestion du site

hexoctl site create <nom>   # Creer un nouveau site Hexo
hexoctl site list            # Lister tous les sites
hexoctl site delete <nom>   # Supprimer un site

Commandes de contenu

hexoctl new post "Titre"     # Creer un nouvel article de blog
hexoctl new page "Titre"     # Creer une nouvelle page
hexoctl new draft "Titre"    # Creer un nouveau brouillon
hexoctl publish <slug>       # Publier un brouillon
hexoctl list posts           # Lister tous les articles (JSON)
hexoctl list drafts          # Lister tous les brouillons (JSON)

Commandes de build

hexoctl serve               # Demarrer le serveur de previsualisation (port 4000)
hexoctl build               # Generer les fichiers statiques
hexoctl clean               # Nettoyer les fichiers generes
hexoctl deploy              # Deployer vers la cible configuree

Integration Gitea

Synchroniser le contenu du blog depuis un depot Gitea.

Configuration

# Activer l'integration Gitea
uci set hexojs.gitea.enabled=1
uci set hexojs.gitea.url='http://192.168.255.1:3000'
uci set hexojs.gitea.user='admin'
uci set hexojs.gitea.token='votre-jeton-d-acces-gitea'
uci set hexojs.gitea.content_repo='blog-content'
uci set hexojs.gitea.content_branch='main'
uci commit hexojs

Commandes

hexoctl gitea setup         # Configurer les credentials git dans le conteneur
hexoctl gitea clone         # Cloner le depot de contenu depuis Gitea
hexoctl gitea sync          # Recuperer le dernier contenu et synchroniser avec Hexo
hexoctl gitea status        # Afficher le statut de synchronisation Gitea (JSON)

Workflow

┌─────────────┐    ┌─────────────┐    ┌─────────────┐
│   Gitea     │───►│   HexoJS    │───►│   Portal    │
│   Contenu   │    │   Build     │    │   Statique  │
└─────────────┘    └─────────────┘    └─────────────┘
      │                  │                  │
  blog-content/      hexo generate      /www/blog/
   _posts/*.md         public/          index.html
  1. Creer/modifier les articles dans le depot Gitea
  2. Executer hexoctl gitea sync pour recuperer les changements
  3. Executer hexoctl build pour generer le site statique
  4. Les fichiers statiques sont disponibles dans /srv/hexojs/site/public/

Structure du depot de contenu

blog-content/
├── _posts/           # Articles publies
│   └── 2025-01-24-hello-world.md
├── _drafts/          # Brouillons
├── images/           # Fichiers medias
├── about/            # Page A propos
├── portfolio/        # Page Portfolio
└── services/         # Page Services

Configuration

Editer /etc/config/hexojs :

config hexojs 'main'
    option enabled '1'
    option http_port '4000'
    option data_path '/srv/hexojs'
    option active_site 'default'
    option memory_limit '512M'

config site 'default'
    option title 'Mon Blog'
    option subtitle 'Auto-heberge sur OpenWrt'
    option author 'Admin'
    option language 'fr'
    option theme 'cybermind'
    option url 'http://localhost:4000'
    option root '/'
    option per_page '10'

config deploy 'deploy'
    option type 'git'
    option repo ''
    option branch 'gh-pages'

config gitea 'gitea'
    option enabled '0'
    option url 'http://192.168.255.1:3000'
    option user 'admin'
    option token ''
    option content_repo 'blog-content'
    option content_branch 'main'
    option auto_sync '0'

config theme_config 'theme'
    option default_mode 'dark'
    option allow_toggle '1'
    option accent_color '#f97316'

Structure des repertoires

/srv/hexojs/
├── site/                    # Site Hexo
│   ├── source/
│   │   ├── _posts/          # Articles de blog
│   │   ├── _drafts/         # Brouillons
│   │   └── images/          # Medias
│   ├── themes/
│   │   └── cybermind/       # Theme CyberMind
│   ├── public/              # Fichiers statiques generes
│   └── _config.yml          # Configuration Hexo
├── content/                 # Depot de contenu Gitea clone
├── themes/                  # Themes partages
└── media/                   # Medias partages

Theme CyberMind

Theme sombre inclus avec :

  • Design responsive
  • Bascule mode sombre/clair
  • Couleur d'accent orange (#f97316)
  • Logo style terminal
  • Support des categories et tags
  • Section portfolio d'applications

Depannage

Le conteneur ne demarre pas

# Verifier le statut du conteneur
lxc-info -n hexojs

# Voir les logs
hexoctl logs

# Reinstaller le conteneur
hexoctl uninstall
hexoctl install

Echec du clone Gitea

# Verifier les credentials
hexoctl gitea status

# Reconfigurer les credentials git
hexoctl gitea setup

# Verifier que le token a acces au depot
curl -H "Authorization: token VOTRE_TOKEN" \
  http://192.168.255.1:3000/api/v1/user/repos

Erreurs de build

# Nettoyer et reconstruire
hexoctl clean
hexoctl build

# Verifier a l'interieur du conteneur
hexoctl shell
cd /opt/hexojs/site
npm install
hexo generate --debug

Integration avec Metabolizer

HexoJS fonctionne avec le pipeline CMS Metabolizer :

Streamlit CMS → Gitea → HexoJS → Portal
   (editer)     (stocker) (build)  (servir)

Voir secubox-app-metabolizer pour l'experience CMS complete.

Licence

MIT License - CyberMind Studio 2025