当前位置: 首页 > news >正文

Outline 自托管团队知识库/Wiki 搭建教程(Notion 替代方案)

Outline 自托管团队知识库/Wiki 搭建教程(Notion 替代方案)

团队知识管理是每个技术团队的刚需,Notion 固然好用,但数据托管在海外服务器、价格随团队规模线性增长、网络访问有时不稳定,这些痛点让很多团队开始寻找可以私有化部署的替代品。Outline 是目前开源社区中最接近 Notion 体验的知识库工具,支持 Markdown 编写、实时协作、文档嵌套、全文搜索、多种登录方式,界面美观现代。本文讲解如何用 Docker Compose + Caddy 完整部署 Outline。

Outline 核心特性

  • Notion 式编辑器:块编辑器,支持标题、列表、代码块、表格、图片、内嵌内容
  • 实时协作:多人同时编辑同一文档,变更实时同步
  • 文档结构:支持集合(Collection)→ 文档→ 子文档三级嵌套
  • 全文搜索:基于 PostgreSQL 全文索引,中英文搜索均支持
  • SSO 登录:支持 Google、GitHub、Slack OAuth,以及 SAML/OIDC 企业登录
  • API 接口:完整 REST API,可与其他工具集成
  • 导出功能:支持导出为 Markdown、PDF,数据随时可迁移

服务器配置

Outline 依赖 PostgreSQL、Redis 和对象存储,整体内存需求适中。推荐使用2 核 4GB机型,可以流畅支持 10-50 人团队日常使用,文档量不受限制。

推荐选用雨云服务器 rainyun-com,注册填优惠码2026off领 5 折优惠券,2 核 4GB 机型性价比出色,比 Notion Team 版年费便宜得多,数据还完全掌控在自己手里。系统建议选 Ubuntu 22.04 LTS,磁盘至少 40GB(含文档附件存储)。

准备工作

安装 Docker 和 Docker Compose

curl-fsSLhttps://get.docker.com|shsudousermod-aGdocker$USERnewgrpdockerdocker--versiondockercompose version

域名与防火墙

将域名(如wiki.example.com)A 记录解析到服务器 IP:

sudoufw allow80/tcpsudoufw allow443/tcpsudoufwenable

生成必要的密钥

Outline 需要几个随机密钥,提前生成好:

# 生成 SECRET_KEY(64位十六进制)openssl rand-hex32# 生成 UTILS_SECRETopenssl rand-hex32

将两个输出分别保存,稍后填入配置文件。

docker-compose.yml

创建项目目录:

mkdir-p~/outline&&cd~/outline

创建docker-compose.yml

version:"3.8"services:outline:image:outlinewiki/outline:latestcontainer_name:outline_appenv_file:.envdepends_on:-postgres-redisrestart:unless-stoppednetworks:-outline-netvolumes:-./data:/var/lib/outline/datapostgres:image:postgres:15-alpinecontainer_name:outline_postgresenvironment:POSTGRES_USER:outlinePOSTGRES_PASSWORD:${POSTGRES_PASSWORD}POSTGRES_DB:outlinevolumes:-pgdata:/var/lib/postgresql/datarestart:unless-stoppednetworks:-outline-netredis:image:redis:7-alpinecontainer_name:outline_redisrestart:unless-stoppednetworks:-outline-netcaddy:image:caddy:alpinecontainer_name:outline_caddyports:-"80:80"-"443:443"volumes:-./Caddyfile:/etc/caddy/Caddyfile-caddy_data:/data-caddy_config:/configrestart:unless-stoppednetworks:-outline-netvolumes:pgdata:caddy_data:caddy_config:networks:outline-net:driver:bridge

创建环境变量文件.env

cat>.env<<'EOF' # 应用基础配置 SECRET_KEY=替换为openssl生成的第一个密钥 UTILS_SECRET=替换为openssl生成的第二个密钥 URL=https://wiki.example.com PORT=3000 NODE_ENV=production # 数据库 DATABASE_URL=postgres://outline:替换为数据库密码@outline_postgres:5432/outline POSTGRES_PASSWORD=替换为数据库密码 # Redis REDIS_URL=redis://outline_redis:6379 # 文件存储(本地存储模式) FILE_STORAGE=local FILE_STORAGE_LOCAL_ROOT_DIR=/var/lib/outline/data FILE_STORAGE_UPLOAD_MAX_SIZE=262144000 # 语言和时区 DEFAULT_LANGUAGE=zh_CN TZ=Asia/Shanghai # 邮件(可选,用于邀请成员,暂时留空也能用) # SMTP_HOST= # SMTP_PORT= # SMTP_USERNAME= # SMTP_PASSWORD= # SMTP_FROM_EMAIL= # 登录方式(至少配置一种,这里演示 GitHub OAuth) # 在 GitHub Settings → Developer settings → OAuth Apps 创建应用 GITHUB_CLIENT_ID=替换为GitHub_OAuth_Client_ID GITHUB_CLIENT_SECRET=替换为GitHub_OAuth_Client_Secret # 允许创建账号(生产环境建议改为 false,通过邀请制管理) TEAM_LOGO= ENABLE_UPDATES=true EOF

Caddy 反向代理配置

创建Caddyfile

wiki.example.com { reverse_proxy outline_app:3000 # 支持上传附件 request_body { max_size 256MB } # 开启压缩 encode gzip # WebSocket 支持(实时协作需要) @websocket { header Connection *Upgrade* header Upgrade websocket } handle @websocket { reverse_proxy outline_app:3000 } }

启动服务

cd~/outline# 创建数据目录mkdir-pdata# 启动所有服务dockercompose up-d# 查看启动日志dockercompose logs-foutline# 执行数据库迁移(首次必须执行)dockercomposeexecoutlineyarndb:migrate

数据库迁移完成后,访问https://wiki.example.com即可看到登录界面。

初始化配置

配置 OAuth 登录

Outline 不支持传统用户名/密码注册,必须通过 OAuth 或邮件邀请登录。最简单的方式是配置 GitHub OAuth:

  1. 进入 GitHub → Settings → Developer settings → OAuth Apps → New OAuth App
  2. 填写信息:
    • Application name:团队知识库
    • Homepage URL:https://wiki.example.com
    • Authorization callback URL:https://wiki.example.com/auth/github.callback
  3. 创建完成后,将 Client ID 和 Client Secret 填入.env

如果团队使用 Google Workspace,也可以配置 Google OAuth(需要在 Google Cloud Console 创建应用):

# 在 .env 中添加GOOGLE_CLIENT_ID=your_google_client_idGOOGLE_CLIENT_SECRET=your_google_client_secret

修改.env后重启服务:

dockercompose up-d

团队初始化

首次登录后:

  1. 创建工作区名称(即团队/公司名称)
  2. 通过「设置」→「成员」→「邀请成员」向同事发送邀请链接
  3. 在「集合」中创建第一个文档集合(类似 Notion 的空间)

推荐初始文档结构

知识库 ├── 工程规范 │ ├── 代码风格指南 │ ├── Git 提交规范 │ └── 代码审查流程 ├── 产品文档 │ ├── 需求文档 │ └── 设计规范 ├── 运维手册 │ ├── 部署流程 │ └── 故障处理 SOP └── 会议记录 └── 2026 年

常见问题

Q:登录后提示"工作区不存在"?

首次登录的用户会自动创建工作区。如果出现错误,检查数据库迁移是否完成:

dockercomposeexecoutlineyarndb:migrate

Q:图片上传失败?

检查数据目录权限:

# 确保容器内用户有写权限dockercomposeexecoutlinels-la/var/lib/outline/# 如权限不足,在宿主机执行chmod777~/outline/data

Q:如何备份数据?

#!/bin/bash# 保存为 ~/outline/backup.shDATE=$(date+%Y%m%d_%H%M%S)BACKUP_DIR=~/outline-backupsmkdir-p"$BACKUP_DIR"# 备份数据库dockerexecoutline_postgres pg_dump-Uoutline outline|\gzip>"$BACKUP_DIR/db-$DATE.sql.gz"# 备份附件文件tar-czf"$BACKUP_DIR/files-$DATE.tar.gz"~/outline/data# 保留最近 30 天find"$BACKUP_DIR"-mtime+30-deleteecho"备份完成:$DATE"
chmod+x ~/outline/backup.sh# 每天凌晨 3 点自动备份(crontab-l2>/dev/null;echo"0 3 * * * ~/outline/backup.sh")|crontab-

Q:如何升级 Outline?

cd~/outlinedockercompose pulldockercompose up-d# 新版本可能需要数据库迁移dockercomposeexecoutlineyarndb:migrate

Q:实时协作不生效?

确认 Caddy 配置中包含了 WebSocket 代理规则(上方 Caddyfile 已包含),且防火墙允许 443 端口的 WebSocket 连接。


Outline 是 Notion 最强力的开源替代品,美观的块编辑器、实时协作、强大的全文搜索、灵活的权限控制,功能丝毫不逊于付费产品,而且数据完全自托管,不必担心数据主权和价格上涨问题。

http://www.jsqmd.com/news/977485/

相关文章:

  • 中科院“琅琊“2.0海洋大模型:从温盐预报到台风智能预报,六个垂直模型覆盖全球
  • C# + Modbus TCP + 西门子S7-1200:1000点位工业数据采集系统稳定运行12个月总结
  • facefusion3.6.1汉化
  • CompressO:3分钟学会如何将大文件压缩到极致,释放90%存储空间!
  • 全行业数字员工比价:落地案例少的厂商交付与售后靠谱度深度研判
  • Plain Craft Launcher 2:高效实用的Minecraft启动器深度解析与实战指南
  • 终极Windows 11系统优化指南:如何用Win11Debloat免费打造纯净高效系统
  • 同一个 AI,为什么到你项目里就开始自作主张——CLAUDE.md 到底该写什么
  • B站弹幕屏蔽词批量管理工具:5分钟打造你的纯净弹幕环境
  • 错过标讯、筛选太累?2026招投标团队如何摆脱无效搜索
  • 2026年厦门二手专用车/特种车推荐榜:二手环卫洒水车、扫路车、垃圾车、高空作业车厂家选购指南 - 品牌发掘
  • 我用了半年只留下这1个,2026职场视频总结效率准确率胜出工具真心太香了
  • 基于NXP多PMIC的Zynq UltraScale+ MPSoC高可靠电源与功能安全设计
  • 终极鸣潮工具箱WaveTools:3步解锁120帧流畅游戏体验
  • 京东天猫苏宁商品数据抓取工具包+京东评论情感打分脚本(含Scrapy/Requests双实现、词典规则分析、多平台适配)
  • 3分钟搞定Zotero中文文献管理:Jasminum插件完整解决方案
  • 26个高质量书源一键导入指南:告别阅读APP无书可读的烦恼
  • 2026最新测评:16款降AI率平台测评,论文降重降ai率终极答案!
  • 026 文件搜索高级技巧:正则表达式深度使用、多行模式、文件类型过滤与上下文控制
  • 小说下载器终极指南:一键收藏100+网站,打造永久离线图书馆
  • 律师拜访客户整理视频2026年5款提升视频内容整理效率与准确率工具,省下90人工核对时间
  • 太原江浙菜餐厅推荐榜|2026年6月专业测评,靠谱精选5家人均百元内值得吃 - 外贸老黄
  • 3步告别电脑噪音:Windows平台专业风扇控制软件FanControl完全指南
  • 百度网盘macOS版终极加速指南:免费解锁全速下载体验
  • 2.4.3 InnoDB简介
  • 【春笋计划复盘02】答辩PPT是怎么炼成的?——从内容设计到现场呈现 实战分析
  • 微信小程序计算机毕设之基于springboot+微信小程序的旅游线路定制微信小程序(完整前后端代码+说明文档+LW,调试定制等)
  • 从Eclipse到IDEA:iObjects Java组件在不同IDE下的环境配置差异与实战技巧
  • CAXA 工具-设计中心
  • Typora收费后,我找到了这款开源免费的MarkText,附详细安装与主题配置指南