添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

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 等

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

你可以访问在线文档查看

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 部署而言,对于后期调试无需翻找当时设置的所有配置项。

你可以访问在线文档查看

在开发过程中,我们一般直接用Python命令直接运行Flask程序。这样的运行只适合我们开发,方便我们调试。一旦程序部署到线上,这样运行的Flask程序性能会比较低。可以采用uWSGI+Nginx进行部署。 uWSGI 在部署之前,我们得先了解几个概念 wsgi web应用程序之间的接口。它的作用就像是桥梁,连接在web服务器和web应用框架之间。 uwsgi 是一种传输协议,用于定义传输信息的类型。 uWSGI 是实现了uwsgi协议WSGI的web服务器。 首先准备一个flask程序,名字run.py from flask import Flask 在介绍如何部署使用之前,先聊聊为什么我会选择它。 作为一个 Confluence 重度用户、前 EverNote 重度用户,我觉得有必要聊一下我对文档、笔记、Wiki 软件的一些看法。如果你仅对部署环境感兴趣,可以直接跳转文章下面的章节。 为什么要切换笔记/Wiki 软件 熟悉我的朋友了解我是 Confluence 重度用户,不少个人数据都存放在私有化部署的实例上,之前还额外购置了一台 NUC,用于低成本的 本文采用的基于openresty的nginx 配置。 简单地配置 Nginx 的配置文件,以便在启动 Nginx 时去启用这些配置即可实现对于编写好的html网页的点击跳转访问。而本文的重点也是于此。 配置方式1: Nginx 的配置系统由一个主配置文件和其他一些辅助的配置文件构成。这些配置文件均是纯文本文件,一般地,我们只需要配置主配置文件就行了。/usr/local/openresty/nginx/conf 下的配置文件修改如下: 配置信息: #user nobody; worker_processes 1; 如果需要,使用https运行大纲服务器 git clone https://github.com/chsasank/outline-wiki-docker-compose.git cd outline-wiki-docker-compose make install 并按照说明进行操作。
Outline是一款基于ss的开源富强软件,来自于Jigsaw公司,致力于供新闻组织用自家服务器上设定从而富强,来保障新闻工作者的网络存储安全,并且号称不需要技术人员就能完成部署。 包含Outline-Client Outline-Manager还有安卓包
1. 首先,确保已经安装了Nginx服务器。如果没有安装,请先进行安装。 2. 在Nginx的配置文件中添加一个新的服务器块,用于反向代理Vue项目。可以在以下位置找到配置文件:/etc/nginx/nginx.conf。 3. 在新的服务器块中,设置监听的端口号和域名。例如,我们可以使用端口号80和域名项目.example.com(请替换为您自己的域名)。 4. 在服务器块中添加以下配置,以将所有请求代理到Vue项目的IP地址和端口上: location / { try_files $uri $uri/ /index.html; proxy_pass http://127.0.0.1:8080; 这些配置指令的作用是将所有请求先尝试以文件形式查找,如果找不到则重定向到index.html文件。然后,将请求代理到Vue项目运行的IP地址和端口上。 5. 保存并关闭Nginx的配置文件。 6. 重启Nginx服务器,使更改生效。在终端中输入以下命令进行重启: sudo service nginx restart 7. 现在,您可以使用域名或IP地址访问Vue项目。例如,http://项目.example.com。 通过使用Nginx反向代理部署Vue项目,可以实现将所有请求代理到Vue项目上,并使用Vue的history模式进行路由。这样,您就可以在服务器上为Vue项目提供服务,并在浏览器中以友好的URL格式进行访问。 「江太白」: 文章容易被误判,就不把下载链接补文章里了,在这附上 百度网盘:https://pan.baidu.com/s/1T90HwDSLO-nqzM8R8SvRUw?pwd=ig33 夸克网盘: https://pan.quark.cn/s/aad0b8cd1f0c CSDN 资源: https://download.csdn.net/download/qq_29997037/87918720 115 网盘: https://115.com/s/sw68o2g36mg?password=1234 123 网盘: https://www.123pan.com/s/nTOiVv-XUVm3.html 计算机网络笔记(横向) 南乔枝i: 江江太棒啦表情包 ‘Web\xxx\node_modules\.bin\‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。internal/modules/cjs/loader.js:905throw err 魔灵雪010: 踩坑了,原来,下划线也不能带!小丑竟是我自己。最好特么什么特殊字符都不要带吧。唉~ ‘Web\xxx\node_modules\.bin\‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。internal/modules/cjs/loader.js:905throw err 魔灵雪010: 哈哈,原谅我不厚道的笑了。我刚碰到这个问题,一百度就是你的文章,希望可以解决。多谢! 对“有n个关键字的m阶B树有n+1个叶结点”的理解 Zinnic: 看书看到这儿不太懂,直到看到这篇博客表情包