Ghost博客迁移到极空间NAS的docker部署

Ghost博客迁移到极空间NAS的docker部署
Photo by Michal Balog / Unsplash

目前我的博客部署在阿里云的轻量应用服务器上,虽然没有任何不方便的地方,但服务器内存过小导致Ghost更新经常失败,所以后续不打算续费了,在找到替代方案之前需要先把博客迁移到nas中。

1. ghost导出

导出会得到一个json文件,这个文件包含了用户的ghost博客设置和所有post的文本内容,但不包含所有的媒体图片文件等等

老版本的导出

路径:SETTING-LABS-EXPORT
----_20250306184306

新版本的导出

路径:SETTING-ADVANCE-EXPORT
----_20250306185555

导出得到的文件格式如下

{BlogName}.ghost.yyyy-mm-dd-hh-mm-ss.json

2. 其他文件导出

推荐使用类似MobaXtrem的终端工具,可以直接图形化的拷贝文件,或者手动开启SFTP拷贝到本地~

如果是跟着官网文档在linux部署的用户,ghost的文件结构是如下图所示:
----_20250306191039

将 media、images、files 三个目录拷贝到本地
----_20250306191232

3. 在极空间的docker中部署ghost

3.1 下载镜像

搜索不到、下载不了的请挂代理科学上网,或者换源解决

----_20250306192201

3.2 编辑容器

将content路径映射到nas本地
----_20250306192456

映射本地端口到ghost端口
注意:极空间限制了3000以内的端口不可外部访问,所以要设置成>3000的端口
----_20250306192558

配置环境变量,这里我选择sqlite3作为数据库,url则填写自己的域名/IP+端口

database__client=sqlite3
database__connection__filename=content/data/ghost.db
url=http://127.0.0.1:3368/

----_20250306193128

至此,点击应用,Ghost应该可以正常启动了,访问nas的ip+端口号即可正常访问。

4. 导入json与其他文件

4.1 导入之前导出的json文件

路径:SETTING-ADVANCED-IMPORT
----_20250306193616
----_20250306193646

4.2 将之前复制的media、images、files三个目录拷贝到nas映射的content目录下

比如我在编辑容器时映射到了 /M.2存储/ghost,就将三个目录直接复制进来即可
----_20250306194057

4.3 重启容器

迁移完成