Docker-образ для среды блога Hexo — нулевая настройка, не требуется установка Node.js / npm / Hexo.
Опубликовано на Docker Hub:bloodstar/hexo
🇬🇧 English · 🇨🇳 简体中文 · 🇭🇰 繁體中文 · 🇯🇵 日本語 · 🇰🇷 한국어 🇪🇸 Español · 🇫🇷 Français · 🇩🇪 Deutsch · 🇵🇹 Português · 🇷🇺 Русский · 🇸🇦 العربية
Зачем создавать свой собственный независимый блог?
- Личная визитная карточка!
- Полная свобода слова, без цензуры со стороны посторонних или компаний.
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 hexoПри первом запуске, если /app пуст, контейнер автоматически выполняет hexo init и устанавливает стандартные плагины.
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| Переменная | По умолчанию | Описание |
|---|---|---|
HEXO_SERVER_PORT |
4000 |
Порт сервера Hexo |
GIT_USER |
— | Глобальное имя пользователя Git |
GIT_EMAIL |
— | Глобальный email Git |
Docker автоматически генерирует SSH-ключи в /app/.ssh. Добавьте открытый ключ на GitHub или другие платформы для развертывания.
# Просмотр открытого ключа
docker exec hexo cat /app/.ssh/id_rsa.pubИнструкция по SSH-ключам GitHub
docker exec -it hexo bashВойдите в контейнер для выполнения любых команд hexo.
У каждого свои вкусы. Вот несколько рекомендуемых тем:
После загрузки темы настройте её в соответствии с инструкциями и выполните hexo g для сборки. Перейдите по адресу http://[docker IP]:4000, чтобы увидеть свой сайт.
cd /app
git clone https://github.com/пользователь/hexo-theme-xxx.git themes/xxxОтредактируйте /app/_config.yml, установите theme: xxx, затем выполните hexo g для перегенерации.
Добавьте команды автоматической настройки и установки плагинов, выполняемые при запуске Docker.
Отредактируйте /app/userRun.sh:
#!/bin/bash
echo "add User CMD here!"
echo "=====User CMD Start!====="
# Быстрый алиас для входа в GitHub
alias github='eval "$(/usr/bin/ssh-agent -s)";/usr/bin/ssh-add ~/.ssh/id_rsa'
# Перезапуск внутреннего сервера pm2
alias repm2='pm2 restart /hexo_run.js'
#### Зеркало Debian China (закомментируйте, если сеть быстрая)
sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
#### Настройка 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/
#### Сохранение истории
rm -rfv ~/.bash_history
ln -s /app/.bash_history ~/.bash_history
#### Настройка 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
#### Установка 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!====="Если сеть медленная, настройте прокси перед сетевыми запросами:
export http_proxy=http://192.168.0.100:1089;export https_proxy=http://192.168.0.100:1089
# Использование имени хоста Docker для прокси (рекомендуется)
export http_proxy=http://xray:1089;export https_proxy=http://xray:1089Добавьте файл requirements.txt в том вашего блога (один npm-пакет на строку). Пакеты автоматически устанавливаются при запуске:
hexo-generator-json-content
hexo-generator-feed| Действие | Команда |
|---|---|
| Войти в контейнер | docker exec -it hexo bash |
| Просмотр логов | docker logs --follow hexo |
| Перезапуск pm2 | docker exec hexo pm2 restart /hexo_run.js |
| Перезапуск контейнера | docker restart hexo |
| Генерация статических файлов | docker exec hexo hexo g |
| Развертывание на удаленный сервер | docker exec hexo hexo d |
| Новая запись | docker exec hexo hexo new post "Заголовок записи" |
| Новая страница | docker exec hexo hexo new page "music" |
| Очистка кэша | docker exec hexo hexo clean |
Добавьте эти алиасы в ваш ~/.bashrc или ~/.zshrc, чтобы использовать команды hexo без постоянного ввода docker exec:
# Быстрые команды контейнера 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 "Мой заголовок"
# hexo g
# hexo d
# hexo cleanВыполните source ~/.bashrc для активации, затем используйте напрямую:
hexo new post "Моя новая запись"
hexo g
hexo d
hexo-shellHexo поддерживает автоматическую перезагрузку при изменении файлов. После редактирования записи или темы просто обновите браузер.
Если изменения не применяются, возможно, кэш node устарел. Перезапустите веб-сервис:
# Перезапуск pm2
pm2 restart /hexo_run.js
# Перезапуск Docker hexo
docker restart hexo- Hexo Docker環境與Hexo基礎配置篇
- hexo博客自定義修改篇
- hexo博客網絡優化篇
- hexo博客增強部署篇
- hexo博客個性定製篇
- hexo博客常見問題篇
- Hexo Markdown以及各種插件功能測試
- hexo博客博文撰寫篇之完美筆記大攻略終極完全版
- 在 Hexo 博客中插入 ECharts 動態圖表
- 使用nodeppt給hexo博客嵌入PPT演示
- Vercel部署高級用法教程
- Документация Hexo
- API Hexo
- Плагины Hexo
| Документ | Описание |
|---|---|
| AGENTS.md | AI-соглашения, команды, стандарты разработки |
| docs/ARCHITECTURE.md | Архитектура, компоненты, потоки данных |
| docs/REQUIREMENTS.md | Функциональные и нефункциональные требования |
| docs/TESTING.md | Стратегия тестирования, проверка сборки Docker |
| docs/CHANGELOG.md | История версий |
- Документация Hexo
- Docker Hub — bloodstar/hexo
- Вышестоящий проект:spurin/docker-hexo