SSD Nodes Learn Hosting plans →
指南 Matt Connor作者: Matt Connor

自托管 Notion 替代方案对比:AppFlowy、Outline 等

对比 AppFlowy、Outline、Docmost、BookStack 和 Obsidian 的数据库、协作、移动端与托管开销,并说明 AppFlowy 免费自托管仅含 1 个席位。

简短答案

自托管的 Notion 替代方案可分为三类。选择合适的方案,主要取决于您实际使用 Notion 的哪些功能。如果您希望保留 Notion 的使用体验,包括页面嵌套页面和数据库视图,请运行 AppFlowy。如果您需要具备出色搜索功能的快速团队 wiki,请运行 Outline。如果您希望从全新服务器最快搭建出可用的工作区,请运行 Docmost。

在这类搜索中,还经常会出现另外两个工具。它们分别适合不同的需求。如果您真正需要的是结构化文档,选择 BookStack。如果工作区只有一个成员,也就是您自己,选择 Obsidian。

这些项目的比较方式

这是一份基于文档能力的比较,信息来源包括各项目的官方文档、发布的环境变量示例和公开的 compose 文件,并于 2026 年 7 月完成核查。Docmost、AppFlowy、Outline 和 BookStack 的资料,以及 Obsidian 的同步选项,于 2026 年 10 月再次核查。本比较不代表这些项目各自在生产环境运行一年的实际结果。下文提到的限制均来自项目自己的文档或代码仓库,本文会注明具体来源。这一点很重要,因为此类汇总通常会悄悄补写未经核查的内容。

下面的四个维度,正是用户实际会询问的内容,顺序也与常见提问一致:数据库和表格视图、实时协作、移动端访问,以及托管资源开销。

AppFlowy:最接近 Notion,但许可证存在限制

AppFlowy 是这里唯一真正采用 Notion 数据模型的项目。页面、看板、网格和日历视图都可用,桌面应用和移动应用都是原生应用。本地优先设计意味着即使服务器不可用,应用仍可继续工作。

自托管只需克隆 git 仓库并使用 compose 文件:

git clone https://github.com/AppFlowy-IO/AppFlowy-SelfHost-Commercial
cd AppFlowy-SelfHost-Commercial
cp deploy.env .env
docker compose up -d

该仓库在 2026 年发生了变化。旧的 AppFlowy-Cloud 仓库已于 September 11, 2026 归档,其 README 现在要求所有自托管部署和升级使用 AppFlowy-SelfHost-Commercial。仍然克隆 AppFlowy-Cloud 的指南会从 AppFlowy 已不再维护的代码构建。

请在执行最后一条命令前编辑 .env。FQDN 和 SCHEME 用于设置公网地址,GOTRUE_ADMIN_EMAIL 和 GOTRUE_ADMIN_PASSWORD 用于设置第一个管理员账户。保留 GOTRUE_ADMIN_PASSWORD=password 不变会部署一个管理员登录信息容易被猜到的公网服务器。

关键限制如下,也是本文最重要的事实。AppFlowy 的自托管服务器已转为开放核心模式,AppFlowy-SelfHost-Commercial 仓库依据 AppFlowy Self-Hosted Commercial License 发布,而不是依据开源许可证发布。其 README 说明,自托管 Free 层级提供“每个实例一个用户席位”,并允许最多 3 名访客编辑您共享的页面。因此,大多数人所说的“自托管 Notion”在免费层级下其实是一个访客数量受限的个人工作区。并非所有付费层级都会提高席位数:AppFlowy 的自托管定价表显示,付费的 One 计划同样只有 1 个席位,Team 计划最多 1,000 个席位,Enterprise 计划不限席位。在规划 10 人部署前,请先确认当前的层级限制。

Outline:如果您已经有单点登录,这是最佳选择

Outline 提供了这组产品中最出色的纯写作和阅读体验。搜索速度快,而且确实能找到内容;编辑器简洁,内容结构采用集合和嵌套文档,而不是数据库引擎。经常撰写内容的团队通常会长期使用 Outline。

Outline 需要 PostgreSQL 和 Redis,应用监听 3000 端口。需要设置两个密钥,示例环境文件准确说明了生成方式:

openssl rand -hex 32   # SECRET_KEY
openssl rand -hex 32   # UTILS_SECRET

然后将 URL 设置为您的公共 HTTPS 地址,并设置 DATABASE_URL 和 REDIS_URL。最容易令人意外的是身份验证。Outline 没有内置的用户名和密码登录功能。其自身的 .env.sample 对第三方登录凭据说明如下:“要使安装正常运行,以下至少需要一个,否则您将没有任何登录选项”。支持的选项包括 Google、Microsoft Entra、Slack、Discord,以及通用的 OpenID Connect (OIDC) 提供商。

这会带来实际成本。如果您尚未运行身份提供商,要自行托管 Outline,就必须先额外自行托管一个服务,Outline 才能正常使用。如果您已经运行身份提供商,这就是一项优势,Outline 很可能适合您。

Docmost:部署最快

Docmost 是这三者中最新的,运行起来所需的工作也最少。它支持实时协作编辑、页面树、空间、评论,以及内置的邮箱和密码账户,因此无需先配置身份提供商。

官方安装页面从以下命令开始:

mkdir docmost
cd docmost
curl -O https://raw.githubusercontent.com/docmost/docmost/main/docker-compose.yml
openssl rand -hex 32

将该十六进制字符串放入 compose 文件中的 APP_SECRET,将 APP_URL 设置为实际使用的地址,并替换它在两处出现的 STRONG_DB_PASSWORD,然后启动:

docker compose up -d
docker compose ps

每个服务都应读取 running。在浏览器中打开该地址后,应显示 Docmost 设置页面。您可以在此创建第一个工作区和第一个管理员用户。此堆栈包含 Docmost、PostgreSQL 和 Redis。安装文档未设置 CPU 或 RAM 最低要求,列出的唯一前置条件是 Docker。

文档中有一项值得再次强调的注意事项:编辑器使用 WebSockets。如果反向代理不传递 WebSocket 升级标头,页面可以正常加载,但在第二个浏览器中进行的编辑不会显示,双方都不会看到错误。如果您在前端终止 TLS,在一台服务器上处理多个应用的 Traefik 反向代理默认可以正确处理升级。

BookStack:当您需要文档而不是工作区时

BookStack 将内容组织为书架、书籍、章节和页面。这个固定层级正是它的核心价值。您无需设计结构,Wiki 在一年后仍然易于导航。它提供完善的权限控制和优秀的编辑器,而且具有基础设施文档应有的朴素特性。

它不提供数据库视图或块编辑功能,因此不像前面介绍的 3 个产品那样可以替代 Notion。BookStack 要求 PHP 8.2 或更高版本,以及 MySQL 8.0 或 MariaDB 10.6 或更高版本。该项目不发布自己的 Docker 镜像,而是推荐使用社区镜像,其中使用最广泛的是 LinuxServer.io 的镜像:

docker pull lscr.io/linuxserver/bookstack:latest

由于该镜像由社区维护,请固定版本,不要跟踪 latest,并阅读该镜像自己的文档,了解其所需的变量。

Obsidian:不是服务器应用,而这正是它的优势

Obsidian 会将普通 Markdown 文件存储在您设备上的文件夹中。应用本身不需要服务器,因此除非您选择托管其同步服务,否则不会有服务器在凌晨 3 点发生故障。对于单人记录笔记,Obsidian 的速度和文件长期可用性都优于上面的所有选项。

需要托管的是同步功能。可选方案包括付费的官方同步服务、CouchDB 实例,或使用社区 LiveSync 插件并由 S3 兼容对象存储提供支持;也可以使用 Syncthing 或 WebDAV 共享等普通文件同步方案。实时多人编辑不在支持范围内。因此,如果两个人需要同时编辑同一页面,Obsidian 就不是合适的工具。

数据库和表格:大多数替代方案止步于此

数据库功能决定了搜索范围。想念 Notion 的用户通常真正需要的是数据库:包含类型化字段的表格、针对同一组行的多个视图,以及筛选器。

AppFlowy 支持这些功能,并提供网格、看板和日历视图。Outline、Docmost 和 BookStack 不支持。它们的文档可以包含简单表格,但这并不等同于数据库,因为这些行无法查询,也不能基于它们创建第二个视图。Obsidian 介于两者之间:其 Bases 功能可以基于笔记属性提供表格、卡片、列表、Kanban 和地图视图;其官方 Notion 导入器也会将数据库和公式转换为 Bases,但每个数据库只会导入主视图。如果 Notion 数据库存放的是团队工作内容,AppFlowy 是这一组中唯一真正适合的选项。在决定使用前,应将其免费层级的席位限制与团队规模进行比较。如果数据库只属于您个人,也值得测试 Obsidian 的导入器。

托管开销:各技术栈实际运行哪些组件

Docmost 和 Outline 都运行 3 个容器:应用、PostgreSQL 和 Redis。两者都可以稳定运行在小型 VPS 上。BookStack 运行应用以及 MySQL 或 MariaDB 数据库,是这 4 个方案中资源占用最低的。

AppFlowy Cloud 的资源占用明显最高。其发布的 compose 文件会启动 nginx、用于对象存储的 MinIO、带有 pgvector 扩展的 PostgreSQL、Redis、用于身份验证的 GoTrue、AppFlowy Cloud 服务本身、管理前端、worker、搜索服务、AI 服务和 Web 应用。该文件还定义了备份服务,但只有在手动启用后才会启动。这实际上包含一个数据库、一个对象存储和大约 10 个容器。请据此规划内存,并在开始修改该文件前阅读Docker Compose 服务、卷和网络如何协同工作。

应该选择哪一个

单人使用,主要记录笔记和草稿,且不需要服务器:选择 Obsidian,并自行配置同步。

单人或非常小的团队,需要类似 Notion 的数据库功能:选择 AppFlowy,但请先确认免费套餐的席位限制。

写作量较大的团队,且已经使用 Google Workspace、Entra 或 OIDC 提供商:选择 Outline。

希望在今天下午即可启用共享工作区,且没有身份提供商的团队:选择 Docmost。

面向大量读者、只有少数人编辑的基础设施或产品文档:选择 BookStack。

安装后会出现的问题

这几个项目的支持讨论中,大多数问题都属于以下 3 类,而且全部是配置问题,不是 bug。

第一个是应用 URL。Docmost APP_URL 和 Outline URL 必须使用浏览器实际访问的地址,其中包括 https://。将其设置为 localhost 并将应用置于域名之后,否则登录重定向会把用户发送到不属于他们的计算机。

第二个是上文所述的 WebSockets。应用看起来运行正常,但协同编辑会悄无声息地停止工作。

第三个是备份。所有这些应用都将内容存储在 PostgreSQL 或 MySQL 中,而不是存储在可见的文件中。因此,复制正在运行的数据库的卷目录并不是可靠的备份。按计划导出数据库,并将转储文件存储在服务器之外,就像 使用 restic 进行计划加密备份 处理其他有状态服务一样。在选择要与其一起运行的其他服务时,今年值得自行托管的更广泛应用列表 可以帮助您合理判断一台服务器应承担多少服务。

FAQ

哪个自托管 Notion 替代方案最接近 Notion 本身?

AppFlowy。它是这些项目中唯一提供完整数据库概念、并允许团队共享数据库的项目,也就是支持类型化字段,以及基于同一组行的网格、看板和日历视图。Obsidian 的 Bases 次之,可以基于笔记属性提供表格和 Kanban 视图,但数据位于属于单个用户的库中。Outline、Docmost 和 BookStack 是带页面层级的文档工具。它们非常适合处理文档,但不能替代 Notion 数据库。

可以自托管 Notion 本身吗?

不可以。Notion 是商业托管产品,没有自托管版本,也没有公开的服务器组件。本指南中的每个选项都是独立的开源项目,只覆盖 Notion 部分功能。迁移需要执行导出和导入,而不是直接迁移同一套软件。

这些工具有移动应用吗?

AppFlowy 提供原生 iOS 和 Android 应用。将应用指向自己的实例后,它们就可以连接您的服务器。Outline 和 Docmost 通过移动浏览器使用,用于阅读和轻量编辑都没有问题。Obsidian 提供完整的移动应用,但同步需要您自行提供。BookStack 是响应式 Web 应用,没有官方移动应用。

VPS 需要多少 RAM?

Docmost 的安装文档没有规定 CPU 或 RAM 最低要求,只将 Docker 列为前置条件;BookStack 公布的要求只涉及软件版本。Docmost 和 Outline 各运行 3 个容器,BookStack 运行 2 个容器。对于小型团队,这属于小型 VPS 工作负载。AppFlowy Cloud 是例外,因为其 compose 文件启动约 10 个服务,包括带 pgvector 的 PostgreSQL 和 MinIO 对象存储,因此需要准备明显更多的内存和磁盘空间。

不使用 Google 或 Microsoft 登录,Outline 还能使用吗?

可以,但不能没有身份提供商。Outline 除了列出的身份提供商外,还支持通用的 OpenID Connect 提供商,因此可以使用自托管的 OIDC 服务器。它不支持的是普通的本地用户名和密码登录,而且其环境变量示例明确说明,必须至少配置一个第三方提供商,否则安装将没有登录选项。

这篇文章对您有帮助吗?

#notion#appflowy#outline#docmost#自托管#notes