AFFiNE 0.27.4 介绍与选型指南
AFFiNE 0.27.4 产品定位、技术架构、功能特性与自托管要求全解析,含与 Notion/Outline/Excalidraw/Onyx 的量化选型对比(Stars/许可/版本/部署形态),全部外部数据 2026-10-25 实地查询,部署与功能基于官方 Docker Compose 实测。
AFFiNE 0.27.4 介绍与选型指南
目标:讲清 AFFiNE 的产品定位、技术架构、核心功能与自托管要求,给出与 Notion、Outline、Excalidraw、Onyx 的量化选型对比,帮助判断「什么团队适合选 AFFiNE」。本文全部外部数据(版本、Stars、许可证)于 2026-10-25 从官方源实地查询,部署与功能描述基于 2026-10-25 在一台 Ubuntu 服务器上以官方 Docker Compose 结构实测 AFFiNE 0.27.4 的结果。
一、环境信息
| 项目 | 值 |
|---|---|
| 调研与实测日期 | 2026-10-25 |
| 实测服务器 | Ubuntu Linux(内核 6.x,x86_64),内网 IP 192.168.146.128 |
| Docker / Compose | Docker 29.9.2 / Docker Compose v5.6.1 |
| AFFiNE 版本 | 0.27.4(GitHub Releases 标记 Latest 的稳定 tag v0.27.4;官方服务端镜像 ghcr.io/toeverything/affine:0.27.4) |
| 依赖组件 | PostgreSQL 16(pgvector/pgvector:pg16)、Redis 7(redis:7) |
| 部署形态 | 官方 Docker Compose(allinone 单应用 + 迁移任务 + PostgreSQL + Redis) |
| 实测验证 | 管理员初始化、工作区创建、Blob 上传落盘、GraphQL API 探活、整栈重启后数据持久化,全部通过 |
二、软件概述
AFFiNE 是一款开源、可自托管、本地优先(Local-First)、隐私至上的「全能工作区」,把文档与白板超融合在同一个编辑画布中,官方口号是 "There can be more than Notion and Miro"——即同时对标 Notion(结构化文档/知识库)与 Miro(白板协作)。
- 开发方:TOEVERYTHING PTE. LTD.(2022 年至今持续开发)。
- 技术栈:TypeScript 全栈;服务端 Node.js + NestJS + GraphQL;前端 React;编辑器为团队自研的 BlockSuite;多端同步基于 CRDT(Yjs)。
- 开源许可(2026-10-25 核实):主仓库绝大部分内容 MIT;
packages/backend与packages/common/native目录采用 AFFiNE Enterprise Edition(EE)许可,自托管核心功能免费,团队配额等商业特性需购买许可。 - 社区规模(2026-10-25 查询):GitHub Stars 约 74k,Releases 保持高频滚动(stable / beta / canary 三通道并行)。
💡 技术拓展:「本地优先(Local-First)」不止一种实现路线。常见形态对比:
| 形态 | 原理/特点 | 适用场景/取舍 |
|---|---|---|
| 纯云端(Cloud-only) | 数据只存服务端,离线不可用 | Notion 为代表;协作最强,离线最弱 |
| 本地优先 + CRDT 同步 | 数据先落本地,后台经 CRDT 合并到多端 | AFFiNE 采用(Yjs);离线可用、冲突自动合并,实现复杂度高 |
| 本地文件 + 手动同步 | 数据是本地文件,靠网盘/Git 同步 | Obsidian 为代表;简单透明,实时协作弱 |
AFFiNE 选择「本地优先 + CRDT」,因此同时具备离线可用与实时协作能力,代价是服务端需要维护文档快照合并(大文档合并是主要内存消耗点,见六章)。
三、核心架构
AFFiNE 自托管侧为「一体应用 + 两类基础设施」的结构(0.27.4 官方 Compose 实测):
| 组件 | 角色 | 说明 |
|---|---|---|
| AFFiNE Server(allinone) | Web 前端 + NestJS 服务端 + GraphQL API(/graphql)+ WebSocket 同步 + 管理面板(/admin) | 官方单镜像 ghcr.io/toeverything/affine,内含一个一次性迁移服务(启动时执行 self-host-predeploy.js 完成数据库迁移与密钥生成) |
| PostgreSQL 16(pgvector) | 主数据库 | 用户、工作区、文档快照、权限、配置等全部结构化数据;pgvector 扩展支撑 AI 向量能力 |
| Redis 7 | 缓存 + 后台任务队列 + 同步基础设施 | 官方要求 Redis 6.x/7.x,AFFiNE 无法脱离 Redis 运行 |
| Blob 存储 | 上传文件(图片、附件、头像) | 默认本地文件系统(./data/storage),可切换 S3 兼容对象存储 / Cloudflare R2 |
关键架构事实(均有实测或官方文档佐证):
- 文档数据进数据库,文件数据进 Blob 存储。文档正文以 CRDT 快照形式存于 PostgreSQL;上传的图片/附件落在
./data/storage。本文实测上传头像后,文件出现在data/storage/avatars/目录(含同名.metadata.json)。 - 配置体系在 0.27 发生重大调整:应用配置以
config/config.json为首选来源(官方原话:环境变量不再是首选配置源,仅保留用于服务接线与兼容别名);管理面板(Admin Panel)保存的设置入库。0.27 之前的.env部署需按官方迁移清单过渡。 - 客户端/服务端兼容矩阵:0.27 系服务端仅支持 0.26 及以上版本客户端连接(0.27 Release Notes 明确的 Breaking Change)。
- 首次启动自动初始化:迁移服务自动生成并持久化
config/private.key(实测确认),该私钥用于签名/加密,丢失或替换会导致已加密数据失效。
四、功能特性
基于 0.27.4 实测与官方文档整理:
- 文档与白板超融合:同一页面可在「文档模式(Doc)」与「白板模式(Edgeless)」间一键切换;白板支持图形、便签、连接线、画笔、演示等。
- 块编辑器:BlockSuite 提供段落、标题、列表、代码块、数据库视图(表格/看板)、嵌入、附件等块类型。
- 知识管理:日记(Journal)、双向链接、标签、收藏、全文检索(可外接 Elasticsearch/Manticore 索引器)。
- 实时协作:基于 Yjs 的多人光标与冲突合并;支持评论、提及、通知。
- AI 能力(Copilot):支持 BYOK(自带 API Key),可接 OpenAI(GPT 系列)、Google Gemini、Anthropic Claude 等,0.27 系新增 byok 自定义端点;另有 Exa 搜索、Unsplash 配图集成。
- 多端覆盖:Web、桌面客户端(Windows/macOS/Linux)、移动端 App;桌面端可直连自托管实例。
- 自托管管理:
/admin管理面板(用户/工作区/队列/设置)、用户导入、密码重置、封禁、OAuth 2.0(Google/GitHub/OIDC/Apple)、SMTP 邮件、存储配额、团队许可(Team License)、Prometheus 监控。 - 开放接口:全量 GraphQL API(实测开启 introspection,可无鉴权查询
serverConfig.version等公共信息),支持 MCP 凭证(createMcpCredential)。
五、快速开始(最小可用示例)
以下步骤在 2026-10-25 实测通过,是官方推荐路径的最小闭环(完整部署细节与排障见《AFFiNE 0.27.4 Docker Compose 部署指南》):
# 1. 建部署目录并下载官方 Compose 文件(随每个稳定版 Release 发布)
mkdir -p /opt/data/quzuo/tmp/affine/deploy && cd /opt/data/quzuo/tmp/affine/deploy
mkdir -p config data
curl -L -o docker-compose.yml https://github.com/toeverything/AFFiNE/releases/latest/download/docker-compose.yml
# 2. 创建应用配置 config/config.json(0.27 起不再需要 .env)
curl -L -o config/config.json https://github.com/toeverything/AFFiNE/releases/latest/download/config.json.example
# 按需修改 server.externalUrl 为最终访问地址,例如 http://192.168.146.128:8137
# 3. 启动
docker compose up -d
docker compose ps
实测启动后服务状态(本文实验将宿主端口调整为 8137、并为 PostgreSQL 设置口令,详见部署指南):
NAME IMAGE STATUS PORTS
affine-0.27.4-postgres pgvector/pgvector:pg16 Up 15 seconds (healthy) 5432/tcp
affine-0.27.4-redis redis:7 Up 15 seconds (healthy) 6379/tcp
affine-0.27.4-server ghcr.io/toeverything/affine:0.27.4 Up 0.0.0.0:8137->3010/tcp
⚠️ 注意:首次访问
http://<服务器>:8137/会 302 跳转到/admin/setup,需在向导中创建第一个管理员账号(本文示例:admin@example.com/q1w2e3r4),创建完成前普通首页不可用。
探活验证(无需登录):
curl -s http://192.168.146.128:8137/info
实测回显:
{"compatibility":"0.27.4","message":"AFFiNE 0.27.4 Server","type":"selfhosted","flavor":"allinone"}
六、适用场景与限制
适用场景:
- 隐私敏感团队/个人:要求数据完全落在自己的服务器与磁盘上(文档进 PostgreSQL、文件进本地 Blob 目录)。
- 既要结构化文档又要自由白板的创作型团队:AFFiNE 是少数把两类画布原生融合的开源产品。
- 离线优先工作流:本地优先架构保证弱网/离线可用,恢复后自动同步合并。
- 需要 AI 但不愿把数据交给第三方:BYOK 模式下用自有 API Key 调用模型。
限制与边界(实测与官方文档确认):
- 数据库唯一:服务端仅支持 PostgreSQL(且 AI 全量能力需要 pgvector 扩展),不支持 MySQL/SQLite。
- Redis 为硬依赖:无 Redis 无法运行;默认占用 0–4 共 5 个逻辑库。
- 内存敏感:官方实测「合并一份累计 1 万次修改的文档,峰值内存约 1 GB」;官方建议基础 2 GB RAM,有大文档(>1 万词)建议 4 GB;基础硬件门槛 4 核 CPU。
- 版本升级有断代:0.27 起环境变量配置迁移至 config.json(Breaking Change);0.27 服务端拒绝 0.26 以下客户端。
- 商业特性边界:团队席位/配额、部分企业能力受 EE 许可约束,需购买 Team License。
- 资源基线:服务端安装本身约需 1.5 GB 磁盘;官方观测数据为每 1 千篇文档 PostgreSQL 增长约 100 MB、每 1 千个 Blob 增长约 10 GB。
七、同类选型对比
以下量化数据均为 2026-10-25 从各官方仓库/官网实地查询:
| 维度 | AFFiNE | Notion | Outline | Excalidraw | Onyx |
|---|---|---|---|---|---|
| 产品定位 | 文档+白板融合的全能工作区 | 云端全能工作区 SaaS | 团队知识库 Wiki | 手绘风虚拟白板 | AI 企业搜索/问答助手 |
| 开源许可 | MIT + 后端 EE 双许可 | 专有(闭源) | BSL 1.1(源码可用、商用受限) | MIT | MIT + ee 目录企业许可 |
| GitHub Stars | ≈74k | 不适用 | ≈41k | ≈135k | ≈33k |
| 最新版本(2026-10-25) | v0.27.4(stable) | SaaS 滚动更新 | v1.12.0 | v0.18.1 | v5.0.0 |
| 自托管 | ✅ 官方 Compose(PostgreSQL+Redis) | ❌ 仅官方云 | ✅(PostgreSQL+Redis+对象存储) | ✅(白板组件/简易后端) | ✅(PostgreSQL+Redis+模型服务) |
| 本地优先/离线 | ✅ CRDT 本地优先 | ⚠️ 有限离线缓存 | ❌ 云端优先 | ✅ 纯前端可离线 | ❌ |
| 原生白板 | ✅(与文档同画布) | ❌ | ❌ | ✅(仅此一项) | ❌ |
| AI 能力 | Copilot,BYOK 自带 Key | Notion AI(订阅) | 第三方集成 | 图生代码等插件 | 核心即 AI 问答(多模型) |
| 客户端兼容约束 | 0.27 服务端需 ≥0.26 客户端 | 由厂商托管 | 浏览器/桌面 | 浏览器 | 浏览器 |
| 商业模式 | 开源 + 云服务 + Team License | 订阅制 SaaS | 开源 + 云服务 | 开源 + Plus 订阅 | 开源 + 云服务 |
「如果…则…」选型建议:
- 如果必须数据自主 + 同时要文档和白板 → 选 AFFiNE(开源世界里该组合的完成度最高)。
- 如果不想运维任何基础设施、接受订阅费 → Notion(省心但数据在厂商云上)。
- 如果只要规范化团队 Wiki、不要白板 → Outline(注意其 BSL 1.1 许可对商用分发的限制)。
- 如果只要一块嵌入式的手绘白板 → Excalidraw(轻量、可嵌入自家产品,AFFiNE 白板同属此类体验的融合实现)。
- 如果核心诉求是跨系统的 AI 知识问答而非文档创作 → Onyx。
八、参考链接
- 官网与产品:https://affine.pro/ ;在线版 https://app.affine.pro/
- 源码仓库:https://github.com/toeverything/AFFiNE
- 稳定版 Release(v0.27.4):https://github.com/toeverything/AFFiNE/releases/tag/v0.27.4
- 自托管文档:https://docs.affine.pro/self-host-affine
- Docker Compose 安装页:https://docs.affine.pro/self-host-affine/install/docker-compose-recommended
- 环境变量参考:https://docs.affine.pro/self-host-affine/references/environment-variables
- 硬件与依赖要求:https://docs.affine.pro/self-host-affine/install/requirements