一个有理想有抱负的 Ghost 博客搭建起来后,要做的日常维护有两方面:
- 邀请作者、管理内容
- 备份数据、美化界面
先说说第一部分。Ghost 搭建起来的是多人博客,不同作者的博文会汇集到主页上。虽然每个作者也有自己的个人页,但可定制程度不如当年百花齐放的博客时代。
老印象中的博客,用户可以主动注册成为博主,有一个花里胡哨的个人主页让你像搞园艺那样天天去忙活。几十上百套主题皮肤,挑到眼花。还有相册、音乐播放器、友链,这都是标配。可是在 Ghost,这些全都没有!
首先,Ghost 是邀请制,每个作者都必须收到邮件邀请才能注册,成为作者(author)、编辑(editor)、管理员(administrator)这三种角色中的一个。
-
最常见的就是作者,作者登入管理后台只能看见自己的文章,定制自己的一亩三分地,可定制项非常有限,也就是给文章换换头图什么的。其实 Ghost 默认的主题就已经很不错了,不让用户自己定制,反倒可以让用户花更多精力在内容上,我觉得利大于弊。
-
编辑是什么角色呢?作者能干的事情编辑都能干,除此之外,编辑还能修改任何一个作者的博文。
-
管理员拥有和博主(blog owner)几乎一样的权限,可以发邀请信、删用户、删帖子,这些大招全都有。唯一动不了的只有博主。这么狠的角色,千万不要轻易分配出去,当博主本人不想管事的时候再指派管理员。
如何打开 Ghost 的管理面板?只要在博客首页地址后面加/ghost
路径,就会进到管理面板。第一个打开管理面板页注册的人就是博主。博主给其他人分配了权限,其他人便可以通过同样的 /ghost
后缀进入管理面板。例如在本地调试的时候,若 config.js 里的 url 参数是http://localhost:2368
,那么打开管理面板的地址就是http://localhost:2368/ghost
开发相关设置
开发的工作量主要在前期:设置开发环境、版本控制;生产环境配置 Nginx、数据库自动备份。后期没什么可做的,就是优化优化主题。
用你的 IDE 打开 Ghost 解压后的那个目录,这就是你的项目根目录了。提交到 git 需要忽略一些文件,下面列出的几项加到 .gitignore 文件里:
node_modules/
*.log
content/data/
content/images/
开发环境和生产环境代码相同、数据不同,上面的content/data/
存放 sqlite 数据库文件,content/images/
存放上传的图片文件,这都属于数据内容,所以不应该提交进代码。
node_modules/
目录里是项目所依赖的包,忽略里面的内容,是因为不同平台上安装的二进制包可能不同,所以需要在各环境下执行 npm install。
content/themes
是主题样式的目录,内置了简洁漂亮的 casper 主题,主题不仅有 css 样式,还有 hbs 模板文件,理论上可以做到百分之百的定制。
部署环境设置
Nginx 配置
Nginx 配置上,有一大一小两个坑。
先说大坑,配置完proxy_pass
如果不加proxy_set_header
访问网站会因为重定向太多而出错,完全没法用!解决的方法是加上proxy_set_header
,下面有配置代码。
再说小坑,Nginx 默认允许上传的文件大小是1M,如果你要上传一张照片,很可能就超了限制。解决的方法是指定client_max_body_size
为一个更大的数值比如10M。下面是配置文件示例,在跑 Ghost 的那个 server,加上以下配置:
server{
client_max_body_size 10m;
location / {
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:2368;
}
}
到此,技术上的坑基本填平,可以愉快地邀请作者了。