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

news2024/11/27 6:37:12

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 Network
        2.4.2 创建 Nginx
    2.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 部署 PostgreSQL
    3.4 创建用户与数据库
4. Redis 部署
    4.1 概述
    4.2 使用 Docker-Compose 部署 Redis
5. Keycloak 部署
    5.1 概述
    5.2 使用 Docker-Compose 部署 Keycloak
    5.3 配置 Outline 的 OIDC 服务
        5.3.1 登陆
        5.3.2 创建 Outline Realm
        5.3.3 创建 Outline Client
        5.3.4 配置 Outline Client
        5.3.5 创建 Outline Client Role
        5.3.6 创建 Outline User
        5.3.7 授权 Outline User 访问 Outline Client 权限
6. MinIO 部署
    6.1 概述
    6.2 使用 Docker-Compose 部署 MinIO
    6.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 登陆 Outline
    8.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.coloradmin.cn/o/877537.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

sudo免密码设置以及设置失败解决方法

使用sudo visudo修改\etc\sudoers文件 打开后有很多已有的设置大致格式username ALL(ALL:ALL) ALL,都不要动! 在文件结尾加上一句话: username ALL(ALL:ALL) NOPASSWD: ALLusername就是目前你这个账户的名字,开机时会输密码登录…

Nginx访问日志及巡检统计

一、前言 二、词汇解释 2.1、pv和uv的区别 PV(Page View访问量/也卖弄浏览数):指在一定统计周期内,用户每次刷新网页一次即计算一次。PV高不一定代表来访者多:PV与来访者的数量成正比,但是PV并不直接决定页面的真实来…

同样的字符串,有一些事长度为3,有一些长度为2,导致Convert.ToByte(macStringArray[i], 16);出错

同样的字符串,有一些事长度为3,有一些长度为2,导致Convert.ToByte(macStringArray[i], 16);出错。 最后,把长度为2的复制过去,就好了。 要复制“1C- 只复制1C不行 { “pc101”:“1C-69-7A-BD-05-C4”, “pc102”:“1C-69-7A-BD…

Selenium自动化测试实战之自动化测试基础

自动化测试概念 是把以人为驱动的测试转化为机器执行的一种过程,它是一种以程序测试程序的过程。 自动化只是测试方式,跟测试阶段无关。 可以把任何测试工作写一个程序自动化实现都可以称为自动化测试。 selenium自动化测试:2023最新的Sele…

docker可视化工具Portainer

1:Portainer简介 Portainer是一个docker可视化管理工具,可以非常方便地管理docker镜像容器。官网地址:https://www.portainer.io/ 注:现在Portainer有BE(收费)和CE(免费)版本,安装的…

答疑:Arduino IDE配置其他开发板下载速度慢

基于案例:Linux环境Arduino IDE中配置ATOM S3 通常,网络问题较多,可以使用一些技巧。 https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json 没有配置,不支持M5Stack(ESP32&…

SpringCloud教程(上)

目录 一、微服务架构理论入门 1.1、什么是微服务? 1.2、微服务简单总结 1.3、微服务的优缺点 1.4、微服务、分布式、集群的区别 1.5、SpringCloud停更替换技术说明 二、微服务架构编码构建 2.1、微服务cloud整体聚合父工程Project 2.1.1、New Project 2.1…

【【萌新的STM32学习-9】】

萌新的STM32学习-9 我们在使用某个外设,必须线使能该外设时钟 SYSTEM 文件夹里面的代码由正点原子提供,是 STM32F1xx 系列的底层核心驱动函数, 可以用在 STM32F1xx 系列的各个型号上面,方便大家快速构建自己的工程。本章&#xf…

这所985非常难考,却无数人趋之若鹜!

一、学校及专业介绍 厦门大学(Xiamen University),简称厦大(XMU),位于福建省厦门市,位列国家“双一流”、“985工程”、“211工程”重点建设高校。 1.1 招生情况 厦门大学初试考847信号与系统…

Android AOSP源码编译——AOSP整编(二)

切换到源码目录下执行下面命令 1、初始化环境 . build/envsetup.sh //清除缓存 make clobber2、选择编译目标 lunchAOSP 预制了很多 Product。这里为了简单我们先不用真机,而是选择模拟器的方式,对于 x86_64 模拟器,我们选择的是 aosp_x86…

DevOps系列文章 之 Gitlab+Docker自动部署SpringBoot

1.环境要求 以下服务器的操作系统均为Centos7 服务器A:Gitlab服务器B:GitlabRunner、Docker、docker-compose、Java1.8、maven3.6.3、git ps:这里可以把服务器B的GitlabRunner、Java1.8、maven3.6.3、git单独提出来,独立部署&a…

Photoshop多图片与多窗口下排列操作方法

首先,在Photoshop中打开6张图片,在“窗口”菜单下切换窗口排列状态: 在 “窗口”菜单下对窗口进行排列,分别呈现如下: (一). 点击“窗口” -> “排列”->"全部垂直拼贴": &am…

编程大师之路:Java必读书籍引领程序员进阶

编程大师之路:Java必读书籍引领程序员进阶 一、Java基础 1.1 Java基础入门 ​ 由传智播客高教产品研发部编著的《Java基础入门》从初学者的角度详细讲解了Java开发中重点用到的多种技术。全书共11章,包括Java开发环境的搭建及其运行机制、基本语法、面向…

Qt+C++自定义控件仪表盘动画仿真

程序示例精选 QtC自定义控件仪表盘动画仿真 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<QtC自定义控件仪表盘动画仿真>>编写代码&#xff0c;代码整洁&#xff0c;规则&…

Jenkins配置 凭据

http://xx:xx/manage/credentials/store/system/domain/_/

WordPress更换域名后-后台无法进入,网站模版错乱,css失效,网页中图片不显示。完整解决方案(含宝塔设置)

我在实际解决问题时用到了 【简单暴力解决方案】的《方法一:修改wp-config.php》 和 【简单暴力-且特别粗暴-的解决方案】 更换域名时经常遇到的几个问题: 1、更换域名后,后台无法进入 2、更换域名后,网站模版错乱,css失效 3、更换域名后,网页中图片不显示 这是为什…

【系统架构设计专业技能 · 软件工程之系统分析与设计(二)【系统架构设计师】

系列文章目录 系统架构设计专业技能 软件工程&#xff08;一&#xff09;【系统架构设计师】 系统架构设计高级技能 软件架构概念、架构风格、ABSD、架构复用、DSSA&#xff08;一&#xff09;【系统架构设计师】 系统架构设计高级技能 系统质量属性与架构评估&#xff08;…

【视频笔记】解密RWKV线性注意力的进化过程

from&#xff1a; https://www.bilibili.com/video/BV1zW4y1D7Qg/?spm_id_from333.999.0.0&vd_source21cce77bb69d40a81e0d37999f2da0c2 文章目录 向量版 Self-attentionAFT 的线性AttentionRWKV的线性Attention 向量版 Self-attention 手动实现&#xff0c;可以看出 时间…

P8642 [蓝桥杯 2016 国 AC] 路径之谜

[蓝桥杯 2016 国 AC] 路径之谜 题目描述 小明冒充 X X X 星球的骑士&#xff0c;进入了一个奇怪的城堡。 城堡里边什么都没有&#xff0c;只有方形石头铺成的地面。 假设城堡地面是 n n n\times n nn 个方格。如图所示。 按习俗&#xff0c;骑士要从西北角走到东南角。 …

java实现docx,pdf文件动态填充数据

一&#xff0c;引入pom 根据需求引入自己所需pom org.apache.poi poi 4.1.1 org.apache.poi poi-ooxml 4.1.1 org.jxls jxls 2.6.0 ch.qos.logback logback-core org.jxls jxls-poi 1.2.0 fr.opensagres.xdocreport fr.opensagres.xdocreport.core 2.0.2 fr.opensagres.xdocrep…