Ghost

A collection of 7 posts
Ghost

Ghost进阶系列:填坑总结

更新时间:2023年3月5日20点32分 除非 Ghost 有你不可替代的功能需求,或者喜欢上手高难度,否则我建议你放弃。 备份和更新 Docker 版不支持完整的 Ghost CLI,例如通过命令行进行备份,备份参考文档:如何重新安装幽灵。 Docker容器更新办法: 一种方式是通过 Watchtower 自动更新,比较省事,但是可能会出问题,博客掉线了可能都不知道。 另一种方式是手动更新: * 初始搭建时选择 ghost:latest 这个名称的镜像。 * 更新只需重新下载,镜像同名但是最新版本,新镜像将会替换旧镜像。 * 然后将正在运行的 Ghost 容器复制一份。 * 关闭旧容器并删除旧容器上的端口映射。 * 启动新镜像的容器并选择复制旧容器的设置和数据,重新映射端口。 * 博客已经运行在新容器上,数据没有损失。 * 运行一段时间后再决定是否删除旧容器和镜像。这种更新方式比较安全。 扩展阅读:如何更新群晖Synology的Docker容器_哔哩哔哩_bilibili 问题1:每次系统重启或容器更新时 Ghost
4 min read
自托管

listmonk:优秀的Newsletter自托管工具

更新时间:2023年8月16日06点59分 Ghost大概是最佳的Newsletter[1]自托管方案,但一来它的学习与搭建成本比较高(参考我的#Ghost 系列博文),二来在Newsletter方面也有诸多限制:不支持SMTP,只支持Mailgun的API。 假设你拥有可用于批量投递的企业邮箱(从知名品牌服务商那儿获取的个人邮箱和非独立公网环境下自建的邮箱并不适合用来发送批量邮件——这应该成为常识),希望进行Newsletter形式的内容创作,Listmonk可以用作Ghost的补充工具。或者你并不需要一个博客,而是将listmonk单独使用——提供给访客一个简单的订阅表单,文章不发布于网站,只从邮件推送,此外也支持短信、手机通知,这个demo可以体验完整的功能,这里主要介绍如何安装。 官方文档介绍的是用docker-compose安装,默认配置也将安装Postgres DB,Postgres是必须的,许多Docker项目都依赖Postgres数据库,我建议独立安装,让许多服务连接同一个容器,安装教程参考postgres - Official Image | Docke
4 min read
Ghost

Ghost进阶:存储库和编辑器

更新时间:2022年10月22日15点37分 存储库的选择 Ghost编辑器默认将图片上传在本地content/images文件夹,支持第三方存储库,已提供的适配器包括Http-Store 、WebDAV、GitHub、Amazon S3、七牛云、又拍云、阿里云 OSS、Azure 云存储等,其中有些可能不兼容Ghost 4.0及以后版本。另外可以自己开发适配器——Docker部署的话,需要重新封装镜像,这为升级带来不便。 默认的本地存储库有许多缺点: * 尽管图片作为静态内容,可以用CDN缓存,但是和文章在同一个源站还是会占用比较大的上行带宽和流量; * Ghost对隐私的保护是不够的,照片通常会带有包含地理位置等隐私信息的元数据,虽然博文默认加载的是压缩和删除过元数据的照片,但是原始照片也保存在本地存储库中,可以以某种方式访问到; * Ghost没有图片管理界面,删除只能在文件夹中进行,不管博客前端是否加密、文章是否发布,上传的图片可通过直链公开访问的,因此,Ghost可以当作一个简单的图床,但最好不要把它当作个人日记本上传私密照片。 手动压缩图片和删
4 min read
自托管

使用C2 Object Storage作为图床

C2 Object Storage是群晖提供的云存储服务,有15G/月的免费额度(存储空间与流量),付费计划也相当实惠,大陆地区可直接访问北美和欧洲两个数据中心,实测下载速度可达5M/s左右,这两个数据中心的额度是彼此独立的,如果你拥有群晖账号,则可以一键开通C2并在这两个区域任意切换,Synology 知识中心-C2 Object Storage可以找到有关安装与使用的说明。 C2 Object Storage兼容大部分S3 API,在我看来,比较大的缺憾是不支持网站设定(文件直链,即链接域名不可自定义,并且是动态生成的:以Endpoint+有效期签名的形式)和CORS(跨站资源共享),不过,有办法解决这些问题,至少作为图床来说是足够的。 这得益于Alist这款开源文件列表托管程序,它可以将阿里云盘、OneDrive、蓝奏云、FTP、AWS S3、WebDAV、百度网盘、夸克网盘、一刻相册等个人网盘、对象存储服务OSS转为Web目录和WebDAV,并支持将其中的文件跨域直链,前提是你拥有一台24小时运行的服务器,并用Docker的方式部署它,部署的教程参考官方文档即可。
5 min read
Ghost

Ghost进阶: 一些依赖项的配置

更新时间:2022年9月15日13点40分 配置方式 如果没有自定义配置Ghost将使用默认配置,自定义配置:config.development.json和 config.production.json,这两个文件分别应用于开发和生产运行环境,默认在环境变量中指定: NODE_ENV=production(or development) Docker部署的容器直接映射配置文件在本地,方便修改,修改后重启才能生效。这两个文件在容器中的路径是: /var/lib/ghost/config.production.json /var/lib/ghost/config.development.json 环境变量也可以替换默认配置中的选项,嵌套配置选项使用两个下划线分隔,例如: admin__url=domain 对应: "admin": { "url": "domain"
4 min read
Ghost

Ghost进阶:邮箱配置避雷

更新时间:2022年8月28日00点02分 发送邮件类型 Ghost站点产生两种邮件类型,一种是通过SMTP发送的事务性邮件,用于会员注册/登录确认、管理员密码重置等;另一种是通过API发送的批量型邮件,用于Newsletter新闻通讯:文章批量推送到订阅会员的邮箱。目前批量邮箱仅支持Mailgun的API,尽管官方表示后续将提供更多接入,但这是一个长期以来就有的需求,恐怕短时间内不会得到开发。 如果要用Mailgun以外的邮箱发批量邮件,只能结合Zapier或自己开发外件,这里有一个例子,需要许多额外的工作。 为什么不能用SMTP发送批量邮件? 首先一般邮箱服务商有限制,不允许用户同时发送大量邮件;另一方面大多数收件人的邮箱也会过滤从未知域名、未知IP发送的大量邮件,甚至包括合法的电子邮件服务提供商,一经检测大量发送,会被当作垃圾邮件,并将IP拉入黑名单。这是一种保护措施。 Mailgun开通过程中遇到的问题 Mailgun是一家提供发送、接收和跟踪电子邮件的服务商,每个月有发送1000封的免费额度,我在注册过程中碰到一些问题: 1. Mai
5 min read
Ghost

Ghost进阶: Cloudflare相关

更新时间:2022年9月6日23点56分 图片无法跨域 关闭"Scrape Shield-Hotlink"保护(防止站外链接指向您的图像。)否则NewsLetter无法显示文章中的图片。 用Cloudflare Web Analytics Cloudflare 有一个功能全面的网站分析(Web Analytics)面板,如果你的域名托管在Cloudflare,则会自动进行访问统计,不需要在网站中植入脚本;否则,需要一段Cloudflare提供的JavaScript代码,可以在Ghost-Sttings-Code injection中引入,实测会被浏览器AdBlocker广告过滤插件会拦截,因此,如果域名不在Cloudflare解析,推荐用自托管的站点统计工具umami(Demo),好处是可以统计所有时段而不仅限于一个月,其他与Cloudflare相差无几。 用Cloudflare CDN Cloudflare的免费CDN只提供中国大陆以外的,大陆区访问延迟过高(响应200ms)左右,有时候还比较拥堵,当然对于自娱自乐个站来说,这些并不是考虑的重点。
6 min read