PassNAT LogoPassNAT

自建博客平台Ghost Docker部署,NAS一键启动内容管理系统

作者

小编

发布时间

Curving abstract shapes with an orange and blue gradient

项目介绍

Ghost 是一个现代化的开源内容管理系统(CMS),专为博客、杂志和新闻出版物而设计。它采用 Node.js 构建,提供了简洁优雅的编辑体验和强大的发布功能。无论你是独立博主、内容创作者还是媒体机构,Ghost 都能帮助你快速搭建专业的在线出版平台。

Ghost 具有轻量级、高性能的特点,支持 Markdown 编辑、会员系统、邮件订阅、SEO 优化等丰富功能。通过 Docker 容器化部署,让你可以在任何服务器上一键启动自己的内容平台。

项目地址:点我跳转

部署安装

如果你需要在公网上访问 Ghost,建议配置内网穿透服务。推荐使用 帕斯内网穿透 进行域名映射,先注册账号备用。具体操作步骤可参考 帕斯内网穿透全平台快速指南,轻松实现远程访问。

使用 Docker Compose 快速部署

复制下列的配置文件到你的服务器:

1version: '3.8'
2
3services:
4 mysql:
5 image: mysql:8.0
6 environment:
7 MYSQL_ROOT_PASSWORD: ${DATABASE_ROOT_PASSWORD}
8 MYSQL_DATABASE: ghost
9 MYSQL_USER: ghost
10 MYSQL_PASSWORD: ${DATABASE_PASSWORD}
11 volumes:
12 - mysql_data:/var/lib/mysql
13 restart: unless-stopped
14
15 ghost:
16 image: ghost:latest
17 depends_on:
18 - mysql
19 environment:
20 database__client: mysql
21 database__connection__host: mysql
22 database__connection__user: ghost
23 database__connection__password: ${DATABASE_PASSWORD}
24 database__connection__database: ghost
25 url: http://${DOMAIN}
26 ports:
27 - "2368:2368"
28 volumes:
29 - ghost_content:/var/lib/ghost/content
30 restart: unless-stopped
31
32volumes:
33 mysql_data:
34 ghost_content:

打开飞牛 NAS 或其他 NAS 设备,进入 Docker 管理界面。

第一步:配置环境变量

在部署前,你需要创建一个 `.env` 文件,配置以下必要参数:

必须设置的环境变量:

- `DOMAIN`:你的 Ghost 网站域名,例如 `myblog.com`

- `DATABASE_ROOT_PASSWORD`:MySQL 根密码(建议使用 `openssl rand -hex 32` 生成随机密码)

- `DATABASE_PASSWORD`:Ghost 数据库密码(建议使用 `openssl rand -hex 32` 生成随机密码)

可选设置的环境变量:

- `ADMIN_DOMAIN`:独立的管理后台域名,例如 `admin.myblog.com`(推荐配置)

- `SMTP_HOST`:邮件服务器地址(用于发送订阅邮件)

- `SMTP_USER`:邮件服务账号

- `SMTP_PASSWORD`:邮件服务密码

第二步:启动容器

将上述配置文件保存后,在文件所在目录执行以下命令:

1docker compose up -d

系统会自动下载所需镜像并启动 Ghost 服务和 MySQL 数据库。

第三步:端口配置说明

- 容器内端口:Ghost 运行在容器内的 `2368` 端口

- 主机映射端口:默认映射到主机的 `2368` 端口

如果你的主机上 `2368` 端口已被占用,可以修改配置文件中的端口映射。例如,将 `'2368:2368'` 改为 `'8080:2368'`,这样就可以通过 `http://你的IP:8080` 访问 Ghost。

第四步:存储配置

Ghost 需要持久化存储以下数据:

- `ghost_content`:存储你的文章、主题、上传的媒体文件等

- `mysql_data`:数据库文件存储位置

这些卷已在配置文件中定义,Docker 会自动管理存储。如需自定义存储位置,可将卷路径改为具体的本地路径,例如:

1volumes:
2 - /data/ghost_content:/var/lib/ghost/content
3 - /data/mysql_data:/var/lib/mysql

第五步:访问 Ghost

部署完成后,打开浏览器访问:

1http://你的域名:2368

或直接访问你配置的域名。首次访问会进入初始化界面,按照提示创建管理员账号,即可开始使用 Ghost。

访问管理后台:`http://你的域名:2368/ghost`

本篇教程结束。祝你使用 Ghost 愉快!