搭建Outline私人Wiki私人知识库

什么是Outline

Outline 是一款开源的具有团队协作的知识库程序,美观、功能丰富且兼容 Markdown. 它看起来和 Notion 相似,但它提供自托管版本,允许用户进行私有化部署,自行管理掌控数据.

安装

Outline 虽然有自托管版本, 但是安装及其复杂, 这可能是为了让更多人用他们的 SaaS 服务. 不过我们可以使用docker来完成安装, 它很容易部署.

outline-docker-compose 是一个使用Docker来安装outline的脚本.

特点

  • 一个简单的 makebash 脚本,可帮助您生成所需的所有 conf
  • 一个 docker-compose 来运行你的服务
  • 使用 MinIO 代替 AWS S3,让一切真正实现自托管
  • 一个 OIDC 服务器来管理用户,无需通过 slack 或 google 登录

如何使用

在执行脚本之前,首先你需要安装 DockerDocker-Compose

安装docker

curl -fsSL <https://get.docker.com> | bash -s docker --mirror Aliyun

安装docker-compose

sudo curl -L "<https://github.com/docker/compose/releases/download/v2.6.1/docker-compose-$>(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

开始初始化安装

git clone <https://github.com/vicalloy/outline-docker-compose.git> /data/outline-wiki
cd /data/outline-wiki
cp scripts/config.sh.sample scripts/config.sh

你可能需要修改配置文件 : vim scripts/config.sh

# line 2 访问的网址,如果你希望通过域名访问的话修改这里
# The url used to vist this web site.
URL=http://127.0.0.1:8888

# line 20-21 修改端口,你可能希望将它部署在其他端口,我使用了`30001`端口
HTTP_IP=127.0.0.1
HTTP_PORT_IP=30001

然后执行make install来完成安装,它将自动完成剩下的安装和配置,最后将向你询问需要设置的管理员账号.

使用

如果你想通过域名使用并且访问它, 使用nginx反向代理

  location / {
    proxy_pass <http://127.0.0.1:30001>;
    proxy_set_header Host $host; # 修改转发请求头,让8080端口的应用可以受到真实的请求
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade; #此处配置 上面定义的变量
  }
  location /realtime {
    proxy_pass <http://127.0.0.1:30001/realtime>;
    proxy_set_header Host $host;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $http_connection;
    proxy_read_timeout 86400;
  }

所有数据储存在/data/outline-wiki目录下, 一定常备份!!!!

Makefile
make install        # 创建 docker-compose 配置文件并启动它。初始化 oidc-server(为大纲添加 oidc 客户端并创建一个超级用户)
make start          # 开始大纲
make stop           # 停止大纲
make clean          # 删除脚本生成的所有配置文件。
make clean-data     # 您将丢失所有数据