Nas 部署 docmost 同步博客文章实现 seo 优化和本地线上知识库分离

问题一:文章没有知识库管理、与私有文章没有隔离。 目前开源的博客后台管理太简陋而且没有好的知识库管理,同时一旦发布就是公开数据,没法写私有文档

解决方案:有一个比较喜欢的开源知识库管理 docmost,基于 react 写的前端、qbsql,可直接使用 docker 自动化部署,因此可以部署到 Nas 进行知识库管理,他可以实现公开某个文档的访问,使用他替代博客。


引出-问题二:没有自定义首页等展示页面。由于是知识库管理因此与博客的展现方式是不一样的,我想要自定义的博客首页加可以同步 docmost 的知识库文档,那么就可以自动同步文档的内容到博客,同时又可以自定义博客网站

解决方案: 公开某个文档的时候进行数据库写入,把文章 id 写入到博客数据库进行关联,那么在访问某个文章卡片的时候跳转到 docmost 的公开文档


引出-问题三:页面加载慢,没有 SEO 优化。 由于是跳转访问的,因此会导致页面加载时间边长,同时非常不利于 seo 优化

解决方案: 查看 docmost 源码,分析是它是如何获取数据库数据进行文章渲染的,知道如何渲染的,那么我就可知直接请求 docmost 数据进行渲染到我的博客,那么我就实现了:1.文章同步。2.seo 优化。3.本地知识库与线上知识库分离。4.还可以用我喜欢的 docmost(因为之前用的语雀很不方便)


问题四:文章的数据备份

解决方案:查看 docmost 是使用 pgsql 数据库来保存数据的,还有本地进行图片保存,本地图片可以使用 docker 部署时文件映射来解决,数据备份需要使用数据库命令或者客户端进行备份。由于本人 pgsql 的学习不是很好,所以每次回复数据必须删除原有表才能恢复成功


优化一:之前需要自己来总结文章主题内容来生成副标题等数据,比较繁琐

解决方案: 文章同步的时候使用扣子 ai 流水线进行文章分析,提取关键字和文章简介然后进行写入数据库,同时使用 keys 与简介作为 seo 的 mate 标签

整体流程:

image.png