Ghost - 开源专业博客平台,Node.js开发,Markdown编辑器,内置会员与Newsletter,替代WordPress

Ghost - 开源专业博客平台,Node.js开发,Markdown编辑器,内置会员与Newsletter,替代WordPress

_

Ghost开源项目详解:专业开源博客平台部署教程与Node.js CMS实战指南

一、项目概述

Ghost 是一款专业级开源博客和内容管理系统,采用 Node.js 开发,专为追求简洁、快速、独立的内容创作而设计。它是传统 WordPress 的轻量级替代品,专注于内容创作体验,无复杂的插件生态和繁重的后台管理。

Ghost 同时提供托管服务(Ghost Pro)和完全开源的自托管版本。项目在 GitHub 上获得 48K+ Stars,被数以百万计的博主和内容创作者使用,是最受欢迎的开源博客平台之一。

1.1 核心特性

特性 说明
专业编辑器 Markdown 支持,所见即所得编辑
会员系统 内置免费/付费会员功能
Newsletter 内置邮件订阅和发送功能
SEO 优化 自动化 SEO 优化
主题市场 提供专业主题模板
REST API 完整的 Content API
Webhook 支持 Webhook 触发外部服务
多语言 支持国际化

1.2 与同类产品对比

特性 Ghost WordPress Hugo Jekyll
内容编辑 Markdown+可视化 可视化+经典编辑器 Markdown Markdown
动态内容 原生支持 插件支持 静态生成 静态生成
会员系统 内置 插件
邮件订阅 内置 插件
学习曲线 中等 中等 中等
性能 较慢 极快 极快
数据库 SQLite/MySQL MySQL

二、系统要求

项目 最低要求 推荐配置
CPU 1 核 2 核+
内存 512 MB 1 GB+
磁盘 1 GB 10 GB+
系统 Ubuntu 18.04+ Ubuntu 22.04+
Node.js 18+ 20 LTS
MySQL 8.0+ 8.0+

三、安装 Ghost-CLI

3.1 安装 Node.js

# Ubuntu/Debian
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs

# 验证安装
node --version
npm --version

3.2 安装 Ghost-CLI

npm install ghost-cli@latest -g

# 验证安装
ghost --version

四、本地安装

4.1 创建博客目录

mkdir my-ghost-blog
cd my-ghost-blog

4.2 本地安装(开发模式)

ghost install local

安装完成后,Ghost 会在 http://localhost:2368 运行。

4.3 访问本地博客

  • 博客前台:http://localhost:2368
  • 管理后台:http://localhost:2368/ghost

五、生产环境安装

5.1 服务器环境准备

# 更新系统
sudo apt update && sudo apt upgrade -y

# 安装 Nginx
sudo apt install nginx

# 安装 MySQL
sudo apt install mysql-server

# 安装 Certbot(用于 SSL)
sudo apt install certbot python3-certbot-nginx

# 创建 ghost 用户
sudo adduser ghost
sudo usermod -aG www-data ghost
sudo mkdir -p /var/www/ghost
sudo chown ghost:www-data /var/www/ghost

5.2 配置 MySQL

# 登录 MySQL
sudo mysql

# 创建数据库和用户
CREATE DATABASE ghost_production;
CREATE USER 'ghost'@'localhost' IDENTIFIED BY 'your-password';
GRANT ALL PRIVILEGES ON ghost_production.* TO 'ghost'@'localhost';
FLUSH PRIVILEGES;
EXIT;

5.3 安装 Ghost

# 切换到 ghost 用户
sudo su - ghost

# 进入目录
cd /var/www/ghost

# 安装 Ghost
ghost install

# 或者指定版本
ghost install 5.x

5.4 安装过程配置

安装过程中会提示配置:

Enter your blog URL: https://yourdomain.com
Enter your MySQL hostname: localhost
Enter your MySQL username: ghost
Enter your MySQL password: your-password
Enter your Ghost database name: ghost_production

六、Nginx 配置

6.1 自动配置

ghost install 会自动配置 Nginx。如果需要手动配置:

server {
    listen 80;
    server_name yourdomain.com;

    root /var/www/ghost/system/nginx-root;
    port 2368;

    location / {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $;
        proxy_pass http://127.0.0.1:2368;
    }
}

6.2 HTTPS 配置

# 使用 Certbot 自动配置 HTTPS
sudo certbot --nginx -d yourdomain.com

七、Docker 部署

7.1 创建 docker-compose.yml

version: "3.8"

services:
  ghost:
    image: ghost:5-alpine
    container_name: ghost
    restart: unless-stopped
    ports:
      - "2368:2368"
    environment:
      url: https://yourdomain.com
      database__client: mysql
      database__connection__host: db
      database__connection__user: ghost
      database__connection__password: your-password
      database__connection__database: ghost
    volumes:
      - ./content:/var/lib/ghost/content
    depends_on:
      - db

  db:
    image: mysql:8
    container_name: ghost_db
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: root-password
      MYSQL_DATABASE: ghost
      MYSQL_USER: ghost
      MYSQL_PASSWORD: your-password
    volumes:
      - db_data:/var/lib/mysql

volumes:
  db_data:

7.2 启动服务

docker compose up -d

八、主题开发

8.1 创建主题

# 在 Ghost 内容目录创建主题
cd /var/www/ghost/content/themes
ghost start

# 或使用主题脚手架
npm init -y
npm install @tryghost/theme-utils

8.2 主题结构

mytheme/
├── package.json
├── theme.conf
├── assets/
│   ├── css/
│   ├── js/
│   └── images/
├── partials/
├── templates/
│   ├── post.hbs
│   ├── page.hbs
│   ├── index.hbs
│   └── 404.hbs
└── default.hbs

8.3 基础模板

default.hbs

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>{{@site.title}}</title>
    {{ghost_head}}
</head>
<body>
    {{{body}}}
    {{ghost_foot}}
</body>
</html>

8.4 安装主题

  1. 进入管理后台 /ghost
  2. 点击 Design → Change theme
  3. 上传主题包

九、会员和 Newsletter

9.1 启用会员功能

  1. 进入 Settings → Membership
  2. 启用免费会员注册
  3. 配置会员层

9.2 发送 Newsletter

# 通过 Ghost API 发送
curl -X POST https://yourdomain.com/ghost/api/admin/posts \
  -H "Authorization: Ghost ${API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{"posts":[{"title":"My Post"}]}'

9.3 集成邮件服务

支持 Mailgun、Amazon SES、SendGrid 等:

# config.production.json
{
  "mail": {
    "transport": "SMTP",
    "options": {
      "service": "Mailgun",
      "auth": {
        "user": "postmaster@yourdomain.com",
        "pass": "your-mailgun-api-key"
      }
    }
  }
}

十、内容 API

10.1 获取 API Key

  1. 进入 Settings → Integrations
  2. 点击 Custom integrations
  3. 创建新的 API Key

10.2 REST API 调用

# 获取文章列表
curl -H "Authorization: Ghost ${API_KEY}" \
  "https://yourdomain.com/ghost/api/admin/posts/"

10.3 JavaScript SDK

const GhostContentAPI = require('@tryghost/content-api');

const api = new GhostContentAPI({
  url: 'https://yourdomain.com',
  key: 'your-api-key',
  version: "v5"
});

// 获取文章
const posts = await api.posts.browse({
  limit: 10
});

console.log(posts);

十一、常见问题与解决方案

11.1 502 Bad Gateway

解决方案

# 检查 Ghost 状态
ghost status

# 重启 Ghost
ghost restart

# 查看日志
ghost log

11.2 数据库连接失败

解决方案

  1. 检查 MySQL 凭据
  2. 确认数据库已创建
  3. 检查用户权限
# 测试 MySQL 连接
mysql -u ghost -p ghost_production

11.3 邮件发送失败

解决方案

# 配置邮件服务
ghost config mail --service Mailgun

# 或手动配置
ghost config mail \
  --from noreply@yourdomain.com \
  --host smtp.mailgun.org \
  --port 587 \
  --user postmaster@yourdomain.com \
  --pass your-password

11.4 性能问题

解决方案

  1. 启用缓存
  2. 使用 CDN
  3. 配置 Nginx 缓存
location / {
    proxy_pass http://127.0.0.1:2368;
    proxy_cache_valid 200 60m;
    add_header Cache-Control "public, max-age=60m";
}

十二、安全建议

建议 说明
HTTPS 强制使用 HTTPS
强密码 使用强管理员密码
定期更新 及时更新 Ghost 版本
备份 定期备份数据库和内容
文件权限 正确设置文件和目录权限
SSL 使用 Let’s Encrypt 免费证书

十三、迁移与备份

13.1 导出数据

  1. 进入 Settings → Labs
  2. 点击 Export
  3. 下载 JSON 导出文件

13.2 导入数据

  1. 进入 Settings → Labs
  2. 点击 Import
  3. 上传 JSON 文件

13.3 完整备份

# 备份数据库
mysqldump -u ghost -p ghost_production > backup.sql

# 备份内容
tar -czf content_backup.tar.gz /var/www/ghost/content

十四、社区与生态

资源 地址
GitHub https://github.com/TryGhost/Ghost
官网 https://ghost.org
文档 https://ghost.org/docs
论坛 https://forum.ghost.org
主题市场 https://ghost.org/marketplace
CLI 文档 https://ghost.org/docs/ghost-cli

总结

Ghost 是一款优雅而专业的开源博客平台,它专注于内容创作体验,提供了现代化的编辑器和内置的会员、Newsletter 功能。相比 WordPress 的繁重,Ghost 更加轻量和快速,是独立博主和内容创作者的绝佳选择。

它的核心优势在于:

  • 专注创作:简洁的界面,Markdown 支持,专注写作
  • 内置会员:无需插件,原生支持会员和订阅
  • 性能出色:基于 Node.js,响应速度快
  • API 完善:完整的 Content API,方便二次开发
  • 设计美观:默认主题专业简洁

对于追求独立、简洁、快速的内容创作平台的博主来说,Ghost 是一个非常值得推荐的选择。

立即体验:访问 https://ghost.org 了解更多,或使用 npm install ghost-cli@latest -g && ghost install local 在本地体验。

Khoj - 开源AI个人知识库与第二大脑,支持本地部署与Ollama集成,Python开发 2026-06-20
Dify - 开源LLM应用开发平台,支持RAG与Agent工作流,可视化管理,Python+TypeScript开发 2026-06-20

评论区