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 mTLS反代
因为嫌CF Tunnel有点慢有点不稳, 所以我要直连家里的服务器, 所以用的caddy反代. 用mTLS防止别人连我家宽https端口. 这个就是给我自己用的, 我自己编辑用
国内公开共享反代
因为cf tunnel从国内访问过慢, 我想分享给人看的东西别人看不到, 于是从国内服务器做一个反代. 但该反代把/auth和首页屏蔽到403了, 不允许登录/编辑, 只准看公开共享
国内七牛云CDN
又因为上面的服务器是个3mbps小水管…因此套了个cdn, 回源上面的国内反代. 同样只准看不准编辑
短链接
有些分享的链接嫌太长了, 想缩短下…就还是在上面的国内小水管机器上, 用caddy搞redir了
1 | graph |
修改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官方的文档就是这么搞的(