私有化部署Outline

Outline介绍

Github
Outline是一个开源的知识库, 类似Notion/语雀的 基于块的可以协作的文本编辑器
因为是开源的 所以可以拿来私有化部署

docker配置

参考官方的文档, 需要配置一个postgres和一个redis

我写这篇的时候, 官方的文档的docker-compose配置是把redis和postgres暴露到宿主机的端口的, 其实可以不用暴露出来 走docker网络就可以了

环境配置

必须的配置项:

  • 开头的各种token
  • redis和postgres 和Outline自身的存储
  • SMTP, 用于登录时接收登录链接(相当于接收验证码)

配置账号

docker -ps 找到outline的dontainer, 然后docker exec -it xxxxxx bash, 然后 根据Outline官方的文档, 执行node build/server/scripts/seed.js my@email.com, outline会给你一个url, 浏览器访问一下这个url 你就得到最开始的管理员账号了, 后续可以从管理员账号邀请 来创建其他人的账号

这个方式在下次outline重启的时候会报让执行node ./build/server/scripts/20210226232041-migrate-authentication.js这个错, 不要去执行这个命令, 出现这个报错的原因是 outline不允许product环境下 有用户却没有OAuth2的登录提供商, 我们只需要连接上数据库之后在authentication_providers表随便造一条数据就可以了

网络

暴露到公网

CF Tunnel

给公开的访问的, 通过cf访问

Caddy反代

因为嫌CF Tunnel有点慢有点不稳, 所以我要直连家里的服务器, 所以用的caddy反代

修改manifest

我弄得有点复杂, 因为我想把manifest (https://your.outline.domain/static/manifest.webmanifest) 篡改一下, 来让PWA在手机和电脑上安装之后用我自定义的图标, 所以在cf worker 仅针对manifest做一个反代, 将manifest的请求打到另一个文件上(minio文件)

Caddy同理, 仅将manifest的url做篡改

Outline的好用法

文本画图

Outline内置了Mermaid, 可以进行文本画图

公开共享

https://p.qri.moe
这个链接是一个公开共享的文档集, 可以当公开的文档用. Outline官方的文档就是这么搞的(