Image Docker pour environnement de blog Hexo — zéro configuration, pas besoin d'installer Node.js / npm / Hexo localement.
Publiée sur Docker Hub:bloodstar/hexo
🇬🇧 English · 🇨🇳 简体中文 · 🇭🇰 繁體中文 · 🇯🇵 日本語 · 🇰🇷 한국어 🇪🇸 Español · 🇫🇷 Français · 🇩🇪 Deutsch · 🇵🇹 Português · 🇷🇺 Русский · 🇸🇦 العربية
Pourquoi créer son propre blog indépendant ?
- Une carte de visite personnelle !
- Une liberté d'expression totale, sans censure de la part d'étrangers ou d'entreprises.
docker create --name=hexo \
-e HEXO_SERVER_PORT=4000 \
-e GIT_USER="yourname" \
-e GIT_EMAIL="you@example.com" \
-v /path/to/blog:/app \
-p 4000:4000 \
bloodstar/hexo
docker start hexoAu premier démarrage, si /app est vide, le conteneur exécute automatiquement hexo init et installe les plugins courants.
services:
hexo:
container_name: hexo
image: bloodstar/hexo:latest
hostname: hexo
ports:
- "7800:4000"
volumes:
- /path/to/blog:/app
environment:
- HEXO_SERVER_PORT=4000
- GIT_USER=yourname
- GIT_EMAIL=you@example.com
- TZ=Asia/Shanghai
restart: always| Variable | Défaut | Description |
|---|---|---|
HEXO_SERVER_PORT |
4000 |
Port d'écoute du serveur Hexo |
GIT_USER |
— | Nom d'utilisateur Git global |
GIT_EMAIL |
— | Email Git global |
Docker génère automatiquement des clés SSH dans /app/.ssh. Ajoutez la clé publique à GitHub ou d'autres plateformes pour le déploiement.
# Voir la clé publique
docker exec hexo cat /app/.ssh/id_rsa.pubTutoriel sur les clés SSH GitHub
docker exec -it hexo bashEntrez dans le conteneur pour exécuter toutes les commandes hexo.
Les goûts de chacun sont différents. Voici quelques thèmes recommandés :
Après avoir téléchargé un thème, configurez-le selon les instructions, puis exécutez hexo g pour générer. Visitez http://[docker IP]:4000 pour voir votre site.
cd /app
git clone https://github.com/utilisateur/hexo-theme-xxx.git themes/xxxModifiez /app/_config.yml, définissez theme: xxx, puis exécutez hexo g pour régénérer.
Ajoutez des commandes de configuration automatique et d'installation de plugins qui s'exécutent au démarrage de Docker.
Modifiez /app/userRun.sh :
#!/bin/bash
echo "add User CMD here!"
echo "=====User CMD Start!====="
# Alias rapide pour la connexion GitHub
alias github='eval "$(/usr/bin/ssh-agent -s)";/usr/bin/ssh-add ~/.ssh/id_rsa'
# Redémarrer le serveur pm2 interne
alias repm2='pm2 restart /hexo_run.js'
#### Miroir Debian Chine (commenter si votre réseau est rapide)
sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
#### Configuration npm
npm config ls -l
mkdir -p /app/.cache/npm
npm config set cache "/app/.cache/npm"
npm config set registry https://registry.npmjs.org/
#### Persistance de l'historique
rm -rfv ~/.bash_history
ln -s /app/.bash_history ~/.bash_history
#### Configuration ssh
chmod 600 /app/.ssh/id_rsa
chmod 644 /app/.ssh/id_rsa.pub
chmod 700 /app/.ssh
rm -rfv ~/.ssh
ln -s /app/.ssh ~/.ssh
#### Installation des plugins npm
npm install --save \
hexo-admin \
hexo-include-markdown \
hexo-douban-card-new \
hexo-github-card \
hexo-bilibili-card-new \
hexo-feed
echo "=====User CMD end!====="Si le réseau est lent, configurez un proxy avant les requêtes réseau :
export http_proxy=http://192.168.0.100:1089;export https_proxy=http://192.168.0.100:1089
# Utilisation du nom d'hôte Docker pour le proxy (recommandé)
export http_proxy=http://xray:1089;export https_proxy=http://xray:1089Ajoutez un fichier requirements.txt à votre volume de blog (un paquet npm par ligne). Les paquets sont installés automatiquement au démarrage :
hexo-generator-json-content
hexo-generator-feed| Action | Commande |
|---|---|
| Entrer dans le conteneur | docker exec -it hexo bash |
| Voir les logs | docker logs --follow hexo |
| Redémarrer pm2 | docker exec hexo pm2 restart /hexo_run.js |
| Redémarrer le conteneur | docker restart hexo |
| Générer les fichiers statiques | docker exec hexo hexo g |
| Déployer vers le remote | docker exec hexo hexo d |
| Nouvel article | docker exec hexo hexo new post "Titre de l'article" |
| Nouvelle page | docker exec hexo hexo new page "music" |
| Vider le cache | docker exec hexo hexo clean |
Ajoutez ces alias à votre ~/.bashrc ou ~/.zshrc pour utiliser les commandes hexo sans taper docker exec à chaque fois :
# Raccourcis du conteneur hexo
alias hexo='docker exec -it hexo hexo'
alias hexo-shell='docker exec -it hexo bash'
alias hexo-logs='docker logs --follow hexo'
alias hexo-restart='docker exec hexo pm2 restart /hexo_run.js'
alias hexo-reboot='docker restart hexo'
# hexo new post "Mon Titre"
# hexo g
# hexo d
# hexo cleanExécutez source ~/.bashrc pour les activer, puis utilisez directement :
hexo new post "Mon Nouvel Article"
hexo g
hexo d
hexo-shellHexo supporte le rechargement automatique des modifications de fichiers. Après avoir modifié un article ou un thème, actualisez simplement le navigateur.
Si les changements ne s'appliquent pas, le cache node est peut-être obsolète. Redémarrez le service web :
# Redémarrer pm2
pm2 restart /hexo_run.js
# Redémarrer Docker hexo
docker restart hexo- Hexo Docker環境與Hexo基礎配置篇
- hexo博客自定義修改篇
- hexo博客網絡優化篇
- hexo博客增強部署篇
- hexo博客個性定製篇
- hexo博客常見問題篇
- Hexo Markdown以及各種插件功能測試
- hexo博客博文撰寫篇之完美筆記大攻略終極完全版
- 在 Hexo 博客中插入 ECharts 動態圖表
- 使用nodeppt給hexo博客嵌入PPT演示
- Vercel部署高級用法教程
- Documentation Hexo
- API Hexo
- Plugins Hexo
| Document | Description |
|---|---|
| AGENTS.md | Conventions AI, commandes, standards d'ingénierie |
| docs/ARCHITECTURE.md | Architecture, composants, flux de données |
| docs/REQUIREMENTS.md | Exigences fonctionnelles et non fonctionnelles |
| docs/TESTING.md | Stratégie de test, vérification de build Docker |
| docs/CHANGELOG.md | Historique des versions |
- Documentation Hexo
- Docker Hub — bloodstar/hexo
- Projet upstream:spurin/docker-hexo