Mikuの鬆

Mikuの鬆

心有多宽,世界就有多远

Docker部署Outline并使用Github作为OAuth服务

前言#

前段时间,我所属的组织木创社需要部署一个文档协作程序,在一番挑选(其实以前就用过)之后选中了 Outline 作为文档协作程序,看了眼网上部署教程,依然抽象,实际上如果不考虑把 Nginx 集成的话其实不算特别困难,因为不需要特殊的权限管理和分配,所以直接在木创社 GitHub 组织新建了 OAuth App 作为登录验证方式,这样也省去自建 SSO 服务的麻烦。

准备#

  • 一台服务器(建议至少 1c2g)并安装 Docker 和 Docker Compose
  • 一个域名,建议为顶级域名

服务#

  • Outline(本体)
  • PostgreSQL(数据库)
  • Redis(缓存数据库)
  • Minio(对象存储服务)

部署#

请先安装 Docker 和 Docker Compose 服务,如果你安装 1Panel 作为服务器面板,那么已经自带了相关服务,部署分为三部分,第一部分部署 Minio 并设置文件对象存储服务,第二部分获取 GitHub OAuth 相关设置,第三部分部署 Outline 相关服务。

你也可以使用兼容 AWS S3 协议的对象存储服务作为 Outline 的对象存储,例如:CloudFlare R2,缤纷云,腾讯云 OSS 等

如果你使用了在线对象存储服务,则可跳过部署 Minio,直接开始部署 Outline。参考你的对象存储服务文档填写相关机密信息和 Endpoint。

部署 Minio#

新建一个文件夹放入部署相关文件,比如/opt/Minio,使用以下命令新建相关文件夹并前往目录,然后新建相关文件。

以下为docker-compose.yml文件示例

你还需要在 Minio 放置 Docker Compose 文件的目录新建.env文件,并填入以下内容,其中相关账密信息建议自行修改提高安全性。

使用 Nginx 反向代理 minio 服务,其中 9502 端口为 minio 服务的 http 端口,9503 端口为 minio 服务的 API 端口。

示例: localhost:9502-> https://minio.example.com localhost:9503 -> https://api-minio.example.com

部署完成后,请访问https://minio.example.com,使用设定的用户名和密码登录。

登录后,在设置中将Region设置为cn-1,并且在Bucket中增加一个bucket,命名为outline用于存储outline的数据,并把访问权限设置为私有

可选操作

Bucket->outline->Access->User中增加一个用户,用于 outline 服务访问 minio 服务。

配置 GitHub OAuth#

1. 访问 GitHub 并登录 2. 进入OAuth Apps 页面(也可以依次点击:右上角头像 - Settings - Developer Settings - OAuth Apps) 3. 点击New OAuth App 4. 填写 Register a new OAuth application 表单

  • Application name: 可自行填写,例如 outline
  • Homepage URL: 填写 Outline 的主页 URL
  • Authorization callback URL: 填写 <Homepage URL>/auth/oidc.callback,其中 <Homepage URL> 需要替换为 Outline 的主页 URL

5. 点击 Register application 按钮,进入应用详情页面 6. 点击Generate a new client secret按钮 7. 记下 Client ID 和 Client secret,后面填写环境变量用(注意 Client secret 仅在创建时显示一次,后续不可再查询;如不慎遗失,可以再次点击按钮重新创建一个)

部署 Outline#

跟 Minio 一样,新建一个文件夹放入部署相关文件,比如/opt/Outline,使用以下命令新建相关文件夹并前往目录,然后新建相关文件。

以下为docker-compose.yml文件示例

下面配置请逐行详细阅读,并根据实际情况修改,注意相关拼写!

跟 Minio 一样,在放置 Docker Compose 文件的目录新建.env文件,并复制填入以下内容:

启动服务后,使用 Nginx 反向代理 Outline 服务,其中 9303 端口为 outline 服务的 http 端口

示例: localhost:9303 -> https://docs.example.com

浏览器访问你部署的 Outline 主页(例如https://docs.example.com),选择使用GitHub登录,如果配置正确,会跳到 GitHub 的授权页面,使用你的GitHub相关信息授权登录即可。

此文由 Mix Space 同步更新至 xLog
原始链接为 https://www.sotkg.com/posts/site/7


加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。