群晖上搭建Ghost博客

每次自己都没想起来的时候,运营商、航空公司、银行、券商却从不曾忘记,虽然只是短信,也让我感受到了你们的真诚,让我们携手共进,共创辉煌!😁😁😁


本文是应网友 luffy 的要求重新折腾的,原文主框架完成于 20214 月,采用了 SQLite 作为数据库,本次应要求改为了 MySQL ,发布前对大部分图片进行了重新截取;

什么是 Ghost ?

Ghost 是一款个人博客系统,采用 Node.js 编写,同时支持 MariaDBSQLitePostgreSQL 数据库。前后台简洁,占用资源少,支持 Markdown,是一个现代化的,开源的博客发布平台。

关于数据库

老苏首先尝试了使用系统自带的 MariaDB,但 MariaDB 不是 Ghost 官方支持的数据库 ,在安装过程中遇到了各种数据库错误,似乎是 KnexMariaDB 的兼容问题。

Ghost 5.0 开始,官方建议使用 MySQL8 ,所以接下来老苏采用了 MySQL 容器,但似乎 MySQL5.7 也可以正常工作。

下面的安装,图形化安装方式和 docker cli 安装方式继续保留了之前采用的 SQLitedocker-compose 命令行方式则重新采用了 MySQL

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 ghost ,选择第一个 ghost,版本选择 latest

docker 文件夹中,创建一个新文件夹 ghost,并在其中建一个子文件夹 data

文件夹 装载路径 说明
docker/ghost/data /var/lib/ghost/content 存放设置

端口

直接用了默认的端口 2368

本地端口 容器端口
2368 2368

环境

因为采用了 SQLite ,所以不需要设置 database 相关的参数

可变
database__client 数据库类型
database__connection__host 数据库主机IP
database__connection__port 数据库端口
database__connection__user 数据库用户
database__connection__password 数据库访问密码
database__connection__database 数据库名
NODE_ENV 默认为 production,必须修改为 development
url url地址

  • 这个 url 会影响到主界面的菜单地址,不设置的时候,默认主菜单地址会是 http://localhost:2368
  • 老苏只是在局域网用,所以设的是局域网 IP
  • 如果在公网使用,请设置为公网 IP 或者域名;
  • 必须设置为 development,否则容器日志会显示 "Unknown database error"错误,导致不可访问

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 新建文件夹 ghost 和 子目录
mkdir -p /volume2/docker/ghost/data

# 进入 ghost 目录
cd /volume2/docker/ghost

# 运行容器(采用 SQLite)
docker run -d \
--restart always \
--name ghost \
-p 2368:2368 \
-v $(pwd)/data:/var/lib/ghost/content \
-e NODE_ENV=development \
-e url=http://192.168.0.197:2368 \
ghost

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
version: '3.1'

services:

ghost:
image: ghost
container_name: gh_ghost
restart: always
ports:
- 2368:2368
environment:
#NODE_ENV: development
NODE_ENV: production
url: http://192.168.0.197:2368
database__client: 'mysql'
database__connection__host: 'db'
database__connection__user: 'root'
database__connection__password: '321.qwerty'
database__connection__database: 'ghost'

db:
image: mysql:5.7
container_name: gh_mysql
volumes:
- ./mysql:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: '321.qwerty'
MYSQL_DATABASE: 'ghost'
MYSQL_USER: 'ghost'
MYSQL_PASSWORD: '123456'
command: --character-set-server=utf8 --collation-server=utf8_unicode_ci

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 ghost 和 子目录
mkdir -p /volume2/docker/ghost/{data,mysql}

# 进入 ghost 目录
cd /volume2/docker/ghost

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:2368,就能看到首界面了

上面是老版本的,下面是现在新版本的,相比之下,现在的版本界面似乎更简洁

创建用户

在浏览器中输入 http://群晖IP:2368/ghost

首先要创建账号

进入主界面

发布帖子

接下来你可以发第一个帖子

发布完成后回到首页的效果

后台管理

在浏览器中输入 http://群晖IP:2368/ghost,如果之前登陆过,会看到整个后台管理的 Dashboard 界面

可以做管理帖子、管理人员、装修站点等操作。

参考文档

TryGhost/Ghost: 👻 The #1 headless Node.js CMS for professional publishing
地址:https://github.com/TryGhost/Ghost

Ghost: Turn your audience into a business
地址:https://ghost.org/

Ghost Docs
地址:https://ghost.org/docs/install/docker/