Skip to content

Latest commit

 

History

History
281 lines (193 loc) · 22.7 KB

File metadata and controls

281 lines (193 loc) · 22.7 KB

EdgeEver Logo EdgeEver

GitHub Stars GitHub Forks Product Hunt 爱发电赞助

简体中文 | English | 日本語

EdgeEver:开源、原生支持 AI、可自由部署的自托管知识库与「印象笔记」替代方案。

EdgeEver 是一款现代化的开源笔记与个人知识库工作区。它为你找回经典印象笔记的三栏高效体验,同时具备完全开放的数据架构与原生 AI Agent 联动能力,让个人知识沉淀更轻量、更自由。

💡 终身免服务器,100% 免费 EdgeEver 可以免费运行在 Cloudflare 配额内,无需购买或维护服务器;希望使用 VPS、NAS 或家庭服务器的用户,也可以通过 Docker 部署同一套应用。

⭐ 如果 EdgeEver 对你有帮助,欢迎点个 Star。你的支持会帮助更多人发现这个项目。

为什么做 EdgeEver

很多长期使用印象笔记的用户,核心需求只是一个可靠、开放、响应迅速的个人知识库。然而,当下的主流方案都各有痛点:

  • 印象笔记:功能日益臃肿,商业广告与繁杂附加功能充斥,性能与内存占用居高不下;且数据相对封闭难以导出,免费版限制重重,支持 AI/MCP 的套餐订阅成本高昂。
  • Obsidian:Markdown 开放,核心闭源;官方同步收费,第三方同步繁琐;图片与附件与文本混存,仓库体积极易膨胀导致移动端同步缓慢,且删笔记后残留附件难清理;对于“随时随地随手记”的轻量场景来说偏重。
  • Memos 等轻量笔记:虽然简单好用,但流式卡片布局与习惯了经典“三栏工作流”的用户有着天然的交互习惯差异。

EdgeEver 恰好填补了这一空白:整栈开源,云同步与自托管都可自行部署;同时保留经典三栏布局与流畅排版,原生支持接入 AI Agent,部署维护零门槛、零费用。

💡 最佳实践推荐: 全端随时捕捉灵感与素材,在经典三栏中深度整理沉淀;借助原生 MCP 协议,不仅能让 AI Agent 随时检索与协同思考,还可轻松打通 Notion、飞书等外部常用工具链;对外一键排版发布,全量数据 0 成本自托管,打造开放互联、真正属于你的智能第二大脑。

在线演示

公开演示环境会在每天凌晨 3:00(北京时间)自动重置并恢复示例笔记,请不要保存私密内容。

客户端下载

下载 macOS 客户端   下载 Windows 客户端   下载 Linux x86_64 AppImage 预览版   从 Google Play 下载 Android 客户端   从 App Store 下载 iOS 客户端

iOS 客户端需要使用非中国大陆区 Apple ID 下载。

功能

  • 自由选择部署方式:既可免费运行于 Cloudflare Serverless,也可通过 Docker 部署到 VPS、NAS 或家庭服务器。按 Cloudflare 免费存储额度估算,个人部署可容纳约 15 万条短笔记和约 5 万张图片;Docker 存储可按需扩展,轻松承载百万级笔记与海量图片。
  • 数据开放,不设围墙:基于标准 SQLite 存储,提供 REST API、MCP 与 CLI 接口。数据随时可读可导,不再担心被任何特定平台绑定。
  • 无损 ZIP 打包与无缝迁移:一键打包导出包含 Markdown、Front Matter、嵌套目录及附件的完整档案,同时保留历史版本与结构化数据,方便在不同实例间完整还原。
  • 原生 AI Agent 智脑联动:内置 MCP(Model Context Protocol)协议,支持 Claude Code、Codex、Antigravity 等 AI 助手直接读取与整理笔记,也可与 Notion Database、飞书多维表格轻松打通。
  • 接入自己的 AI 模型:支持添加多个 OpenAI、Anthropic、Gemini 兼容服务与第三方中转平台,在编辑器中随时对全文或选区进行智能总结、要点提炼、语法校对、翻译与续写润色。
  • 丰富的插件 API:可通过插件开发文档扩展 EdgeEver。
  • 多端无缝同步,无设备限制:自托管数据无商业限制,摆脱免费账号仅限 2 台设备的束缚,在 PC、平板与手机上随心同步。
  • 经典三栏布局与专注模式:笔记本树、笔记列表与编辑区一目了然;桌面端一键开启专注模式,让思绪尽情铺满屏幕。
  • 无限层级笔记本:轻松构建清晰的多级目录结构。
  • 微信公众号一键排版与复制:专为中文创作者设计,支持将笔记一键转换为带行内样式的公众号美化格式,直接复制粘贴至微信公众号后台,告别复杂的第三方排版工具。
  • 优雅的双视图编辑:桌面端支持在富文本与 Markdown 源码视图之间自由切换。
  • 单篇笔记便捷导出:可将当前笔记直接导出为 Markdown、HTML 或 PDF,方便独立保存、分享与发布。
  • Mermaid 架构图与流程图渲染:原生支持 Mermaid 代码块渲染,视图切换时完整保留可编辑源码,让绘制逻辑图表更直观。
  • 可视化图表笔记:Web 与桌面端支持创建、编辑思维导图、流程图和架构图,提供语义组件、系统边界、连线说明、自动布局、历史版本及 PNG/SVG 导出;Android 与 iOS App 保留同一份图表数据,并提供语义化只读视图。详见可视化图表笔记设计说明
  • 笔记历史版本回溯:自动记录修改历史,随时查阅与还原过往版本。
  • 公开笔记分享:支持公开分享笔记,并可随时取消分享。
  • 移动 App 微信公众号文章剪藏:在手机上将微信公众号文章分享至 EdgeEver,即可提取正文并保存为可继续编辑的笔记。
  • 智能前端图片压缩:图片上传前在浏览器端静默完成压缩,常见截图与大图精简 50%-90% 体积,加载更迅速、存储更省心。
  • 通用文件附件支持:支持轻松上传并插入 PDF、Office 文档、压缩包及音视频等各种附件;通过分片上传与流式处理,安全支持最大 1 GiB 附件。
  • 高效多选与批量操作:支持笔记批量合并、批量移动,以及笔记本拖拽排序与层级调整。
  • 离线草稿与同步队列:网络不稳定时自动保存离线草稿,恢复连线后自动入队同步。
  • 登录防暴力破解保护:服务端按账号与 IP 记录失败登录并自动限流、冷却,降低暴力破解与密码喷洒攻击风险,守护私密笔记数据。
  • 多账号与个人空间隔离:单实例支持创建多个独立账号,用户数据相互隔离,配备直观的管理员账号管理与安全加密机制。
  • 全平台多端覆盖:支持 Web、AndroidmacOSWindowsLinuxiOS;网页裁剪插件支持 ChromeEdgeFirefox

部署

Cloudflare 是推荐的零服务器部署方式;希望使用 VPS、NAS 或家庭服务器的用户也可以选择 Docker。

Cloudflare 在线部署可以选择以下两种方式之一:

方案一:AI Agent 一键部署(推荐)

将下方提示词直接复制发送给 AI Agent(如 Codex、Claude、Cursor、workbuddy、Antigravity、OpenClaw、Hermes Agent 等)。执行过程中,如需访问 GitHub 或 Cloudflare,请确认权限范围并按提示完成授权。

请在线完成 EdgeEver 部署:
1. Fork https://github.com/tianma-if/edgeever。
2. 在 Cloudflare 中创建 D1 `edgeever` 与 R2 `edgeever-resources`。
3. 将这个 Fork 导入 Cloudflare Workers & Pages,并将 `main` 设为生产分支。
4. 添加一个名为 `EDGE_EVER_AUTH_PASSWORD` 的 Worker Secret,值为用户自行设置的
   管理员登录密码,建议使用至少 32 个字符且仅用于此实例的强密码。
5. 启动首次构建,验证 `/api/health`、`/api/openapi.json`,并使用用户名 `admin`
   和配置的密码验证登录。
6. 启用并手动运行一次名为 `Update deployed EdgeEver` 的 GitHub Actions 工作流,
   以便后续自动同步更新,持续获得 EdgeEver 最新的产品特性和问题修复。

详细约定与要求请查看:AI Agent 在线部署约定

方案二:手动在线部署

仅需在网页端完成 6 步配置:

  1. Fork 仓库:在 GitHub 点击右上角 Fork,将项目 Fork 到您的个人账户下。
  2. 创建 Cloudflare 资源:创建 D1 edgeever 与 R2 edgeever-resources
  3. 导入并配置项目:在 Cloudflare Workers & Pages 中导入该 Fork,并将 main 设为生产分支。binding 由部署命令生成,不要修改 Fork 中的文件。
  4. 设置管理员密码:添加一个名为 EDGE_EVER_AUTH_PASSWORD 的 Worker Secret,并将其值设为您要使用的管理员登录密码。建议使用至少 32 个字符且仅用于此实例的强密码。
  5. 首次构建与验证:启动首次构建。部署完成后访问 /api/health,确认返回 200,并使用用户名 admin 和配置的密码验证登录。
  6. 启用自动更新:进入 Fork 的 Actions 标签页,点击 I understand my workflows, go ahead and enable them,然后手动运行一次 Update deployed EdgeEver,确保后续能够自动获得 EdgeEver 的最新功能与修复。

📖 包含具体参数与构建命令的详细步骤,请查看 在线部署完整文档

💡 Cloudflare R2 开通:虽然 Cloudflare R2 存储提供了足够慷慨、在笔记场景中完全不会超量的免费存储额度,但需先开通 R2 subscription 并绑定付款方式。Cloudflare 官方支持 银联(UnionPay)、Visa、Mastercard 等银行卡,以及 PayPal、Apple Pay、Google Pay 等付款方式。

方案三:在 VPS 或 NAS 上使用 Docker

使用 GitHub 托管的安装脚本和官方 GHCR 镜像:

curl -fsSL https://edgeever.org/install.sh | bash

该命令会自动拉取最新镜像、生成管理员密码、使用 Docker Compose 启动 EdgeEver,并设置每日自动更新。手动部署与配置说明见 Docker 部署文档

EdgeEver 官方容器镜像托管于 GitHub Container Registry(GHCR)。部分中国大陆 网络环境可能出现连接缓慢或超时。如果无法正常拉取,请在部署前自行配置可用的 网络代理或可信的镜像加速服务。第三方网络及镜像服务的可用性和安全性由 用户自行评估。


多账号登录

部署完成后,单个实例支持多账号登录。

实例管理员可以在 个人中心 -> 账号管理 中创建、停用成员账号或重置密码。每个成员拥有完全隔离的个人空间,包括笔记本、笔记、附件、回收站、导入导出和 MCP Token 等。

浏览器网页裁剪插件

网页裁剪插件已在 Chrome、Microsoft Edge 与 Firefox 正式上架。请从对应的浏览器商店安装(Edge 浏览器亦可直接安装 Chrome Web Store 版本):

为 Google Chrome 安装 EdgeEver 网页裁剪插件   为 Microsoft Edge 安装 EdgeEver 网页裁剪插件   为 Firefox 安装 EdgeEver 网页裁剪插件

社区与反馈

  • Bug、功能建议和部署问题请优先提交 GitHub Issues,方便后续用户检索和复用解决方案。
  • 贡献代码前请阅读贡献代码须知。如果您的 Fork 同时用于部署 EdgeEver,请将 main 分支仅用于部署;从官方 upstream/main 新建独立分支,在该分支中同步上游、开发并提交 Pull Request,不要在部署用的 main 上开发或执行 Sync fork。

微信交流群

欢迎加入 EdgeEver AI 交流群,这里聚集了大量 Vibe Coding 与 AI 玩家。一起交流 EdgeEver 体验、AI Agent 实战落地、高性价比/免费 AI 资源及自动化工作流。

群二维码 7 天内有效。如果二维码过期,请添加微信 m1245207870,并备注“EdgeEver 进群”。

EdgeEver AI 交流群二维码

插件与主题

EdgeEver 的 Web 与桌面端支持插件和无代码主题,可从插件市场、GitHub 或 Manifest 地址安装。安装清单会随当前工作区在浏览器和桌面应用之间同步,每个客户端会自行下载并校验插件包;Android 和 iOS 原生应用不运行插件。设置和密钥仍只保存在当前设备。官方插件市场仅收录自由及开源插件,该要求不限制用户直接通过 GitHub 或 Manifest 地址安装其他插件。开发者可使用 @edgeever/plugin-api,详情参阅插件开发文档官方插件市场上架政策

技术栈

  • Bun workspace monorepo,包含 Web、API、官网与共享类型包。
  • 前端:Vite、React、React Router、TanStack Query,UI 基于 Tailwind CSS、shadcn/ui、Radix UI。
  • 编辑器:TipTap / ProseMirror,支持 Markdown;PWA 使用 vite-plugin-pwa、Workbox、Dexie。
  • Android App:apps/mobile 中的 Expo + React Native,采用 SQLite 本地存储与增量同步。
  • iOS App:apps/ios 中的原生 SwiftUI(iOS 17+),内置 TipTap EditorBundle、GRDB 本地镜像/outbox,界面与 Android 壳层对齐。
  • 原生桌面端:Electron + Rust sidecar,兼顾跨平台一致体验与高性能本地数据服务;基于 SQLite 支持离线编辑、联网后增量同步与本地备份。
  • 网页裁剪:Manifest V3、Mozilla Readability、Turndown,支持 Chrome、Microsoft Edge 与 Firefox。
  • 后端:一套基于 Hono/Zod 的业务应用,提供 REST API、OpenAPI 与 Remote MCP;Cloudflare 使用 Workers/D1/R2,Docker 使用 Bun/SQLite/本地文件或 S3。
  • 官网:Astro 静态站点,位于 apps/site,可独立构建并部署到 Cloudflare Pages。

快速开始

bun install
bun run dev

本地开发默认自动登录,首次账号为 owner / edgeever-local-dev;测试登录页可主动退出登录。

目录结构

apps/web          Vite + React 前端、PWA、离线草稿与同步队列
apps/extension    Chrome/Edge/Firefox Manifest V3 网页裁剪插件
apps/api          Cloudflare Worker + Hono API、OpenAPI、MCP endpoint
apps/mobile       Expo + React Native Android App
apps/ios          原生 SwiftUI iOS App(TipTap EditorBundle、GRDB)
apps/desktop      Electron 桌面端壳层、preload bridge 与原生打包配置
apps/site         Astro 官方网站,可独立部署
packages/client   Web 与移动端共享的 API Client
packages/shared   共享类型、Zod schema、TipTap / Markdown 内容转换
crates/desktop-sidecar
                   Rust sidecar,负责本地 SQLite、离线数据、备份与资源服务
scripts           Wrangler 封装、密码 hash、CLI、MCP stdio bridge、Evernote ENEX 导入
migrations        D1/SQLite 共用、只增不改的数据库 migration
docs              OpenAPI schema、架构、迁移与部署文档
.github/workflows Web、移动端、iOS、桌面端打包、部署与 Release 的 CI
wrangler.toml     Cloudflare Workers、Assets、D1、R2 配置

内容格式

EdgeEver 同时保存三种内容形态:

content_json      TipTap/ProseMirror 文档,编辑器权威格式
content_markdown  API、Agent、导入导出使用
content_text      搜索、摘要和索引使用

请打开 我的 -> 导入与导出,导出或导入 EdgeEver ZIP。压缩包中的 notes/ 目录可直接作为 Markdown 阅读和迁移,结构化数据则用于在 EdgeEver 实例之间完整恢复;导入时目标实例中的无关数据会保留,相同 EdgeEver ID 的内容会被覆盖。

API 文档

OpenAPI schema:

https://你的域名/api/openapi.json

仓库内文件:docs/openapi.json

MCP

个人中心 -> MCP 设置 中创建 API Token 并交给 AI Agent,即可让 Agent 在账号授权范围内安全地管理你的知识库。系统同时支持文本笔记与图表笔记(涵盖思维导图、流程图和架构图三种),支持对这些笔记进行完整的增删改查;同时还可管理笔记模板与 AI 指令,并与 Notion Database、飞书多维表格等工具联动。

💡 场景启发: 让 AI 真正成为你的知识管家与创作外脑——不仅能将方案秒级生成为可交互的思维导图与架构图,还能为 AI Agent 提供私有上下文。依托 EdgeEver 强大的富文本编辑与精美排版能力,AI 协同沉淀的不再是冰冷文本,而是结构工整、排版优雅、随时可一键分发的高品质知识资产。

图片压缩规则

图片压缩仅在 Web 端上传前执行,由设置页的“压缩笔记内图片”开关控制。启用后,浏览器会把 PNG、JPEG、WebP、AVIF 尝试压缩为 WebP,并将最长边限制在 2560px 以内;如果压缩结果不比原图小,则保留原图。

Cloudflare Worker 侧执行图片处理会消耗计算/图片处理额度,因此 EdgeEver 将图片压缩放在 Web 客户端完成;REST API 或 MCP 上传入口会按客户端提供的文件内容直接入库,不再由服务端自动压缩。

高级对象存储

实例 Owner 可在设置 → 高级设置 → OSS 对象存储中配置兼容 S3 API 的对象存储。切换存储不会迁移或影响已有附件。

导入与迁移 (Migration)

如果你想从其他笔记软件迁移到 EdgeEver,请参考以下极简迁移指引:

Docker 部署

Docker 与 Cloudflare 共用同一套前端、API 路由、业务服务、鉴权、MCP 实现和 migration。容器使用 SQLite,并支持本地文件或 S3 兼容附件存储,提供 amd64arm64 镜像。详见使用 Docker 部署 EdgeEver自托管与 Docker 架构

同步时序

Web、PWA 与桌面端会在停止编辑 30 秒后上传笔记,并在页面可见时每 5 分钟检查云端变更;窗口聚焦与手动刷新仍会立即拉取。可在 apps/web/src/lib/workspace-refresh.ts 中调整 DEFERRED_MEMO_SYNC_DELAY_MSBACKGROUND_WORKSPACE_REFRESH_INTERVAL_MS

致谢

  • EdgeEver 的笔记产品设计也参考了 Evernote(印象笔记) 等成熟笔记工具的公开产品体验。相关功能由 EdgeEver 独立设计与实现。
  • 思维导图与可视化图表笔记的产品设计参考了 XMindProcessOn 等图表工具的公开产品体验。相关功能由 EdgeEver 独立设计与实现。
  • 编辑器主题的排版架构、标题层级与章节结构参考了 obsidian-minimalOutline墨格 的公开方案。名称、素材与实现均由 EdgeEver 独立完成。

商标与品牌使用

EdgeEver 名称、Logo 及其他品牌标识用于识别官方项目。Fork 或修改版可以说明其“基于 EdgeEver”,但不得暗示官方身份或误导用户。开源许可不授予商标权利;其他使用须事先取得项目维护者的书面许可。

免责声明

EdgeEver 是一款完全独立的开源笔记软件,由个人和社区自主开发维护。本项目与 Evernote®(印象笔记)及其关联公司不存在任何商业合作、授权、赞助或隶属关系。

EdgeEver 是自托管软件。除官方演示实例外,项目维护者不托管、控制或审核用户内容。实例中存储或展示的内容由用户或实例运营者负责,不代表项目维护者的立场。