服务器开机记录1.5: ghost in Docker 之 覆 灭
A Farewell Song for ghost0, Forever.
ghost使用没多久我就发现了一个问题,就是通过Docker好像没法改一个很重要的配置文件config.development.json
。我需要的发信邮箱配置只能直接通过这个文件编辑,而Staff和Member的邀请和订阅就依赖这里的SMTP配置。当前版本的ghost已经只能挂载/ghost/contents
,不能直接挂/ghost
了。尽管翻了一下之后发现可以单独挂这个文件,但挂上去之后试着改了一下好像没什么卵用来着……?
之后我发现了bitnami/ghost这个镜像说是可以通过环境变量-e
输入邮箱的相关设定,但正好之前就觉得还是对网页的掌控度高一点比较好,所以最后还是决定不用Docker装ghost了。反正之前这个ghost已经给了我足够的 折磨 磨练了,已经可以不用不用再战斗了哦,ghost0……一路走好!
好在ghost可以方便地在后台一键导出当前所有的文章和设置到一个.json
里,最后很轻松地就恢复了!
流程
安装Node.js 12.x
yum install -y nodejs
安装ghost CLI
npm install ghost-cli@latest -g
ghostCLI不能通过root来执行,如果没有其他用户的话先新建一个用户:
adduser newUser
usermod -aG wheel newUser #加入管理员组
su newUser #切换到新建的用户
cd path/for/ghost #找个合适的空目录装ghost
ghost install local
nano config.development.json
这回终于可以编辑config.development.json
了,参照官方文档编辑就成:
{
"url": "https://your.website/",
"server": {
"port": 2368,
"host": "172.64.0.1"
},
"database": {
"client": "sqlite3",
"connection": {
"filename": "/home/shigure/ghost/content/data/ghost-local.db"
}
},
"mail": {
"transport": "SMTP",
"from": "your@email.address",
"options": {
"host": "hwsmtp.exmail.qq.com",
"port": 465,
"secureConnection": true,
"auth": {
"user": "your@email.address",
"pass": "yourEmailPassword"
}
}
},
"logging": {
"transports": [
"file",
"stdout"
]
},
"process": "local",
"paths": {
"contentPath": "/home/shigure/ghost/content"
}
}
只需要修改url
,server
,mail
。
url写你的网址;server填监听的IP和端口。这里注意我们已经把ghost装到外边了,地址应该填写负责和Caddy所在子网通信的网桥的IP,而非其Docker容器的IP。
mail试了一下QQ企业邮箱需要from
(不写进去的话默认是noreply@your.site
)和options/auth/user
保持一致才能成功发送邮件;而service
无特殊情况也应该是可以删掉的;其他都看你邮箱服务的安排。
改完json,将ghost重启一下就可以退出来改Caddyfile了:
ghost restart
exit #退出新建用户
nano /path/to/caddy/Caddyfile #编辑Caddyfile
docker restart yourCaddy
要编辑的Caddyfile内容和前面编辑的json监听地址相呼应,即把反代地址改为网桥IP即可。重启完Caddy之后即可看到你的新ghost博客上线辣(