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

准备

  • 一台服务器(建议至少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,使用以下命令新建相关文件夹并前往目录,然后新建相关文件。

text
mkdir /opt/Minio && cd /opt/Minio

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

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

text
DOCKER_MINIO_IMAGE_NAME=minio/minio:RELEASE.2024-08-03T04-33-23Z.fips
DOCKER_MINIO_ROOT_USER=admin
DOCKER_MINIO_ROOT_PASSWORD=admin

使用 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,使用以下命令新建相关文件夹并前往目录,然后新建相关文件。

text
mkdir /opt/Outline &amp;&amp; cd /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相关信息授权登录即可。

记一次被1Panel官方应用商店拒绝合并
君と光:我与高木圈的故事

评论区

评论加载中...