Skip to content

Latest commit

 

History

History
257 lines (191 loc) · 10.3 KB

File metadata and controls

257 lines (191 loc) · 10.3 KB

Docker Pulls Docker Image Version Build Status

docker-hexo

Docker-образ для среды блога Hexo — нулевая настройка, не требуется установка Node.js / npm / Hexo.

Опубликовано на Docker Hub:bloodstar/hexo

🇬🇧 English · 🇨🇳 简体中文 · 🇭🇰 繁體中文 · 🇯🇵 日本語 · 🇰🇷 한국어 🇪🇸 Español · 🇫🇷 Français · 🇩🇪 Deutsch · 🇵🇹 Português · 🇷🇺 Русский · 🇸🇦 العربية

Зачем создавать свой собственный независимый блог?

  • Личная визитная карточка!
  • Полная свобода слова, без цензуры со стороны посторонних или компаний.

Быстрый Старт

Использование docker CLI

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 и устанавливает стандартные плагины.

Использование docker compose

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

SSH-ключи

Docker автоматически генерирует SSH-ключи в /app/.ssh. Добавьте открытый ключ на GitHub или другие платформы для развертывания.

# Просмотр открытого ключа
docker exec hexo cat /app/.ssh/id_rsa.pub

Инструкция по SSH-ключам GitHub

Вход в Docker

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

Добавьте файл 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-shell

Живой Предпросмотр

Hexo поддерживает автоматическую перезагрузку при изменении файлов. После редактирования записи или темы просто обновите браузер.

Если изменения не применяются, возможно, кэш node устарел. Перезапустите веб-сервис:

# Перезапуск pm2
pm2 restart /hexo_run.js

# Перезапуск Docker hexo
docker restart hexo

Полные Руководства

Документация

Документ Описание
AGENTS.md AI-соглашения, команды, стандарты разработки
docs/ARCHITECTURE.md Архитектура, компоненты, потоки данных
docs/REQUIREMENTS.md Функциональные и нефункциональные требования
docs/TESTING.md Стратегия тестирования, проверка сборки Docker
docs/CHANGELOG.md История версий

Ресурсы