基于 Nginx All In One 的 Outline Wiki 部署方法

1. Outline 简介

官网:https://www.getoutline.com/

Outline 是一个开源的知识库和团队协作工具🧠,旨在帮助团队共享、组织和协作文档📝。它提供了一个简洁的界面,使用户能够轻松创建、编辑和查看文档。

以下是 Outline 的一些主要特点:

  1. 实时协作👥: 团队成员可以实时编辑和评论文档,提高协作效率。
  2. Markdown📄: 支持 Markdown 的大多数语法,包括高亮等。
  3. 文档组织📂: 用户可以通过文件夹和集合来组织文档,使内容易于查找和管理。
  4. 权限管理🔒: 可以设置不同级别的访问权限,确保敏感信息的安全。
  5. 集成第三方服务🔗: Outline 可以与 Slack、GitHub 等第三方服务集成,方便团队协作。
  6. 自托管或云服务☁️: Outline 可以在自己的服务器上托管,也可以使用官方提供的云服务。
  7. 开源💻: Outline 是开源软件,允许开发人员根据自己的需求进行定制和扩展。
  8. 自由导入导出🚚:Outline 支持一键式导出导入功能,格式可为 Markdown、HTML、JSON 等

Outline 宣传图

2. 文章目录结构

本文介绍了一种基于 Nginx All In One 的网络架构部署 Outline 的方法,目录结构如下:

0. 前言I. 需求II. Outline 简介III. 环境说明IV. Contact
1. 架构图
2. Nginx 部署2.1 概述2.2 配置域名2.2.1 需要了解的2.2.2 服务器域名配置2.3 获取 SSL 证书2.4 使用 Docker&Compose 部署 Nginx 与网络2.4.1 创建 Docker Network2.4.2 创建 Nginx2.5 配置 Nginx 反代 & SSL 证书2.5.1 安装 SSL 证书2.5.2 配置反向代理规则2.5.3 导入到 Nginx 配置2.5.4 启用最新配置
3. PostgreSQL 部署3.1 概述3.2 已有 PostgreSQL 服务3.3 使用 Docker-Compose 部署 PostgreSQL3.4 创建用户与数据库
4. Redis 部署4.1 概述4.2 使用 Docker-Compose 部署 Redis
5. Keycloak 部署5.1 概述5.2 使用 Docker-Compose 部署 Keycloak5.3 配置 Outline 的 OIDC 服务5.3.1 登陆5.3.2 创建 Outline Realm5.3.3 创建 Outline Client5.3.4 配置 Outline Client5.3.5 创建 Outline Client Role5.3.6 创建 Outline User5.3.7 授权 Outline User 访问 Outline Client 权限
6. MinIO 部署6.1 概述6.2 使用 Docker-Compose 部署 MinIO6.3 配置 Outline 的 OSS 服务
7. Outline 部署7.1 概述7.2 创建 Outline 配置文件7.3 outline-docker.env 配置文件详解7.4 初始化数据库7.5 使用 Docker-Compose 部署 Outline
8. 初步测试8.1 登陆 Outline8.2 测试 PostgreSQL 基本功能8.3 测试 MinIO 基本功能8.4 更多功能
9. 参考资料
X. Change Log

你可以访问在线文档查看

  • GitHub Page:https://jiang-taibai.github.io/deploy-outline-via-nginx
  • Gitee Page: https://jiang-taibai.gitee.io/deploy-outline-via-nginx

3. 部署架构图概览

在这里插入图片描述
涉及到的Outline服务以及它的依赖服务:

  • Outline: 超级棒的团队多人协同文档管理开源项目!3000 端口为访问 Outline 的端口,但该端口并不暴露,由 Nginx 通过 Docker Network 方式访问
  • Keycloak: 一个支持 OpenID Connect(下文简称 OIDC)的开源项目。用于 Outline 的单点登录服务。
  • Redis: 非关系型数据库,Outline 使用 Redis 实现缓存、消息队列、会话存储、实时协作等功能
  • PostgreSQL: 关系型数据库,Outline 使用 PostgreSQL 实现数据的持久化
  • Minio: 一款本地对象存储系统的开源项目。用于存储 Outline 的图片等资源

网络架构主干:

  • nginx_all_in_one: Docker Network,使用虚拟网卡实现多个容器之间的网络互通
  • Nginx: 占用主机的 80, 443 端口并反代了四个域名,而反代的端口确实来自虚拟局域网中的端口,由图中可知整个网络只有 80 和 443 端口暴露在外。

四个域名的作用:

  • outline.example.com: 用于访问 Outline 的主域名
  • sso.example.com: 提供身份权限验证服务,同时也是管理员入口
  • minio.example.com: MinIO API 为 Outline 提供对象存储服务 OSS
  • minio-admin.example.com: MinIO Admin 界面

这种部署方式的优点如下:

  • 安全性更高🔒: 所有服务均隐藏与虚拟局域网中,并在虚拟局域网中通信,不会暴露在互联网上
  • 门槛低🎁: 全文所有服务项均使用 Docker 部署,并使用 Compose 插件,俗称开箱即用,部署难度大大降低。通常情况下,你只需要新建一个 yaml 配置文件和执行一条命令 docker-compose up -d 即可。
  • 非侵入式的端口友好型🚪: 所有服务都不会占用服务器的任何一个端口。由占用 80 端口的 Nginx 负责反向代理转发到 虚拟局域网 中的服务访问点 SAP
  • 非侵入式的环境友好型🐳: 所有服务均使用 Docker 容器化部署,不会在服务器中创建一大堆的环境变量
  • 后期调试友好型🔧: 所有服务均使用 Docker Compose 插件部署,所有配置项、密码等都保存在了服务器中,较原先的纯 Docker 部署而言,对于后期调试无需翻找当时设置的所有配置项。

你可以访问在线文档查看

  • GitHub Page:https://jiang-taibai.github.io/deploy-outline-via-nginx
  • Gitee Page: https://jiang-taibai.gitee.io/deploy-outline-via-nginx

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/67197.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis数据结构——Redis简单动态字符串SDS

定义 众所周知,Redis是由C语言写的。 对于字符串类型的数据存储,Redis并没有直接使用C语言中的字符串。 而是自己构建了一个结构体,叫做“简单动态字符串”,简称SDS,比C语言中的字符串更加灵活。 SDS的结构体是这样的…

【Sklearn】基于最中心分类器算法的数据分类预测(Excel可直接替换数据)

【Sklearn】基于最中心分类器算法的数据分类预测(Excel可直接替换数据) 1.模型原理2.模型参数3.文件结构4.Excel数据5.下载地址6.完整代码7.运行结果 1.模型原理 最近中心分类器(Nearest Centroid Classifier)也被称为近似最近邻…

遍历集合List的五种方法以及如何在遍历集合过程中安全移除元素

一、遍历集合List的五种方法 测试数据 List<String> list new ArrayList<>(); list.add("A");list.add("B");list.add("C");1. 普通for循环 普通for循环&#xff0c;通过索引遍历 for (int i 0; i < list.size(); i) {Syst…

Java【数据结构】二分查找

&#x1f31e; 题目&#xff1a; &#x1f30f;在有序数组A中&#xff0c;查找目标值target &#x1f30f;如果找到返回索引 &#x1f30f;如果找不到返回-1 算法描述解释前提给定一个内含n个元素的有序数组A&#xff0c;满足A0<A1<A2<<An-1,一个待查值target1设…

Springboot MultipartFile文件上传与下载

yml文件配置是否可以上传及上传附件大小 servlet:multipart:# 允许文件上传enabled: true# 单个文件大小max-file-size: 20MB# 设置总上传的文件大小max-request-size: 50MB /*** param files* param request* Description 上传文件* Throws* Return java.util.List* Date 202…

设计模式

本文主要介绍设计模式的主要设计原则和常用设计模式。 一、UML画图 1.类图 2.时序图 二、设计模式原则 1.单一职责原则 就是一个方法、一个类只做一件事&#xff1b; 2.开闭原则 就是软件的设计应该对拓展开放&#xff0c;对修改关闭&#xff0c;这在java中体现最明显的就…

安装Tomac服务器——安装步骤以及易出现问题的解决方法

文章目录 前言 一、下载Tomcat及解压 1、选择下载版本&#xff08;本文选择tomcat 8版本为例&#xff09; 2、解压安装包 二、配置环境 1、在电脑搜索栏里面搜索环境变量即可 2、点击高级系统设置->环境变量->新建系统变量 1) 新建系统变量&#xff0c;变量名为…

jenkins 安装nodejs 14

参考&#xff1a; jenkins容器安装nodejs-前端问答-PHP中文网

CentOS 8 非编译方式 yum 安装 FFmpeg

FFmpeg 是一套免费的开源计算机程序&#xff0c;它提供了录制、转换以及流化音视频的完整解决方案。FFmpeg 在 Linux 平台下开发&#xff0c;但它同样也可以在其它操作系统环境中编译运行&#xff0c;包括 Windows、Mac OS X 等。大多数文章都是说的ubuntu上如何安装&#xff0…

MATLAB | 绘图复刻(十一) | 截断的含散点及误差棒的分组柱状图

hey大家好久不见&#xff0c;本期带来一篇绘图复刻&#xff0c;居然已经出到第11篇了&#xff0c;不知道有朝一日有没有机会破百&#xff0c;本期绘制的是《PNAS》期刊中pnas.2200057120文章的figure03&#xff0c;文章题目为Intranasal delivery of full-length anti-Nogo-A a…

在 Linux 虚拟机上使用 Azure 自定义脚本扩展版本

参考 azure创建虚拟机,创建虚拟机注意入站端口规则开放80端口、 2.转到资源&#xff0c;点击扩展应用程序&#xff0c;创建存储账户&#xff0c;创建容器&#xff0c;上传文件&#xff0c;选择文件&#xff0c;会自动执行部署。 apt-get update -y && apt-get insta…

分类预测 | MATLAB实现GWO-BiGRU-Attention多输入分类预测

分类预测 | MATLAB实现GWO-BiGRU-Attention多输入分类预测 目录 分类预测 | MATLAB实现GWO-BiGRU-Attention多输入分类预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.GWO-BiGRU-Attention 数据分类预测程序 2.代码说明&#xff1a;基于灰狼优化算法&#xff08;GW…