将本站从 Ghost 1.0 升级到 Ghost 6.0

从 2014 年的 Ghost 1.0 到 2025 年的 Ghost 6.0,多了很多新特性。十年之间,中外互联网的隔阂似乎也越来越深。

将本站从 Ghost 1.0 升级到 Ghost 6.0
Photo by Carl Heyerdahl / Unsplash

本站最早是2014年5月采用 Ghost 1.0 测试版本部署,已经过去了十多年。恰逢 Ghost 6.0 近期发布,利用周末时间将本站升级到 Ghost 6.0 版本。升级过程采用官方的 Docker 部署教程。从1.0升级到6.0,发现新增了 Caddy、Tinybird、ActivityPub 等默认组件。

安装过程

安装教程:[How To Install Ghost With Docker (preview)](https://docs.ghost.org/install/docker#install-ghost)。历经十年、六个大版本,Ghost 1.0 导出的 JSON 数据还可以正常导入最新的 Ghost 6.0,说明研发团队在版本迭代、向前兼容方面做得十分规范,结果也很优秀。

从整个教程可以看出,Ghost 6.0 的开发和部署中,始终贯彻“配置外置化”的理念,所有配置全部集中到.env环境变量配置中,十分方便。

如果初次安装时环境变量没有配置完整,后续要再更新的话,只重启ghost与caddy服务器,不需要重启数据库,命令如下:

docker compose pull
docker compose up -d --force-recreate ghost caddy

一个小问题:配置smtp服务时,默认的示例不带 mail.from 参数,但缺失 mail.from 配置项会导致事务型邮件(transactional mail)发送失败。摸索出这个问题后,我在 GitHub 提了一个 Pull Request([Add mail.from config to .env.example](https://github.com/TryGhost/ghost-docker/pull/64)),在示例配置中加上了 mail.from 配置,希望有机会合并入 master 分支。

Caddy 取代 Nginx

Caddy 是一个轻量级的HTTP服务器,相比Nginx,有2个主要的优点:

  1. 配置文件更加简明
  2. 自带SSL证书

Tinybird

Tinybird是一个面向开发者和数据团队的实时数据分析平台,基于高性能的ClickHouse数据库构建,注册和创建应用都很方便。免费版本可以支持10QPS,对于访问量不大的个人网站来说基本够用。

ActivityPub

“互联网精神”

Unsplash 一键配图

实测了几张图发现,最好选用横排图片,避免在移动端占用一整屏空间