tianma-if/edgeever

GitHub: tianma-if/edgeever

EdgeEver 是一个基于 Cloudflare 的开源、免服务器自托管笔记工作区,提供经典 Evernote 风格体验并原生集成 AI Agent 与开放 API。

Stars: 165 | Forks: 26

# EdgeEver [简体中文](README.zh-CN.md) | English EdgeEver 是一个开源、自托管、Cloudflare 原生的笔记工作区。它保留了经典的 Evernote 风格三栏体验,同时提供了清晰的数据模型、REST API、OpenAPI schema、Remote MCP endpoint 以及原生 AI Agent 集成。 ## 为什么选择 EdgeEver 许多资深 Evernote 用户只需要一个可靠、开放、响应迅速的个人知识库。但现代商业笔记应用往往比实际需求更臃肿,难以迁移,且越来越多地受到订阅和附加功能的限制。 EdgeEver 填补了这一空白:熟悉的笔记交互、开放的数据、API 访问、MCP 支持,以及对个人而言切实可行的自托管部署。 ## 在线演示 - 演示地址:[https://demo.edgeever.org](https://demo.edgeever.org) 公开演示每天会重置并恢复示例笔记。请勿在其中存储私密内容。 ## 部署 ### 使用 AI Agent 部署 将以下 prompt 复制到您的 AI 编码助手中,例如 Claude Code、Codex、Antigravity、Cursor 或 Trae: **建议:** 在部署之前,为您的 AI Agent 配置 GitHub 和 Cloudflare MCP server、插件或其他受支持的集成。这允许它 fork 仓库、创建所需的 Cloudflare 资源并部署应用程序。 ``` Please fork the EdgeEver repository first: https://github.com/tianma-if/edgeever After the fork is ready, use the forked repository to install and deploy EdgeEver to Cloudflare, and configure automatic upstream sync for the fork so future product updates can be pulled in. ``` Agent 应遵循 [AI Agent Cloudflare 部署](docs/agent-deploy-cloudflare.md)。 ### 手动部署 请参阅 [Cloudflare 手动部署指南](docs/manual-deploy.md) 获取有关手动安装和更新的分步说明。 建议使用自动化辅助命令。如果您手动创建 Cloudflare 资源,请在运行 `bun run deploy` 之前完成 `.env.local` 的配置——包括 D1 ID、R2 bucket、密码哈希和 400 天的会话限制。 ## 功能 - Serverless,100% 免费且零维护:基于 Cloudflare 的 Serverless 架构构建,完全在免费额度内运行。无需任何托管费用即可存储多达 15 万条笔记和 5 万张图片。 - 开放数据:笔记存储在基于标准 SQLite 的 Cloudflare D1 中,可通过 REST API、MCP 和 CLI 读取。 - AI Agent 友好:内置的 MCP 支持允许 Codex、Claude Code 和 Antigravity 等工具在授权的情况下读取和组织笔记。 - 无上限的多设备同步:自托管的 API 意味着对活跃登录设备数量没有严格的商业限制,支持跨 PC、平板电脑和移动设备(通过 PWA 或浏览器)进行无缝同步。 - 三栏布局:笔记本树、笔记列表和主编辑器。 - 无限嵌套的笔记本。 - 富文本编辑。 - 笔记版本历史记录,用于查看以前的内容更改。 - 上传前在浏览器本地进行图片压缩,通常可将屏幕截图和大照片减小约 50%-90%。 - 批量合并笔记。 - 批量移动笔记、通过拖拽对笔记本进行排序以及层级编辑。 - 离线草稿和针对现有笔记的本地同步队列。 - 采用 PBKDF2-SHA256 密码哈希的单用户登录。 ## PWA 安装 EdgeEver 可以作为 PWA 安装在桌面或移动设备的主屏幕上。在桌面端,使用 Chrome 或 Edge 打开网站,并点击地址栏中的安装图标。在 Android 上,使用 Chrome 打开,点击三点菜单,然后选择**添加到主屏幕**或**安装**。请勿在微信等内置浏览器中安装。 ## 原生客户端 原生客户端是 EdgeEver 路线图的一部分。移动应用计划使用 React Native 构建,桌面应用计划使用 Tauri 构建。 目标是让用户将这些客户端连接到他们自己的自托管 EdgeEver 实例,在保持基于 Cloudflare 的后端、开放 API 和用户所有的数据模型的同时,在移动端和桌面端提供更流畅的原生体验。 ## 技术栈 - 基于 Bun workspace 的 monorepo,包含 Web、API、官方网站和共享类型包。 - 官方网站:位于 `apps/site` 的 Astro 静态站点,可部署到 Cloudflare Pages。 - 前端:Vite、React、React Router、TanStack Query、Tailwind CSS、shadcn/ui 和 Radix UI。 - 编辑器:支持 Markdown 的 TipTap / ProseMirror;PWA 使用 vite-plugin-pwa、Workbox 和 Dexie。 - 后端:Cloudflare Workers、Hono、Zod、D1 和 R2,支持 REST API、OpenAPI 和 Remote MCP。 ## 快速开始 安装依赖项: ``` bun install ``` 应用本地 D1 迁移: ``` bun run db:migrate:local ``` 启动本地开发: ``` bun run dev ``` 检查: ``` bun run typecheck bun run build ``` ## 项目结构 ``` apps/web Vite + React frontend, PWA, offline drafts, and sync queue apps/api Cloudflare Worker + Hono API, OpenAPI, MCP endpoint apps/mobile Expo + React Native mobile app apps/site Astro official website, deployable independently packages/client Shared API client for web and mobile apps packages/shared Shared types, Zod schemas, TipTap / Markdown conversion scripts Wrangler wrapper, password hash, CLI, MCP stdio bridge, Evernote ENEX import migrations D1 database migrations docs OpenAPI schema, migration guides, and deployment docs wrangler.toml Cloudflare Workers, Assets, D1, R2 configuration ``` ## 内容格式 EdgeEver 以三种形式存储笔记内容: ``` content_json TipTap/ProseMirror document, the editor source of truth content_markdown API, Agent, import, and export format content_text Search, summary, and indexing text ``` ## API OpenAPI schema: ``` https://your-domain/api/openapi.json ``` 仓库文件:[docs/openapi.json](docs/openapi.json)。 ## MCP 在**个人资料** -> **MCP 设置**中创建 API token,然后将 token 或完整的 MCP 配置复制到您的 AI Agent 中,以便它可以安装 MCP server 并在权限允许的情况下读取或组织笔记。 ## 图片压缩 图片压缩在上传之前在 Web 客户端进行,由**压缩笔记图片**设置控制。启用后,PNG、JPEG、WebP 和 AVIF 文件在有效时会被转换为 WebP,最长边限制为 `2560px`。如果压缩未能减小大小,则保留原始文件。 EdgeEver 避免在 Worker 端进行图片处理,以减少计算和图片处理配额的使用。REST API 和 MCP 上传路径会原样存储客户端提供的文件内容,不进行额外的服务端压缩。 ## 迁移 如果您想将笔记从其他平台迁移到 EdgeEver,请参考以下简单的迁移指南: - **Evernote 迁移**:请参考 [docs/evernote-migration-guide.md](docs/evernote-migration-guide.md) - **Memos 迁移**:请参考 [docs/memos-migration-guide.md](docs/memos-migration-guide.md) - **Notion 迁移**:请参考 [docs/notion-migration-guide.md](docs/notion-migration-guide.md) ## 社区与反馈 - Bug、功能请求和部署问题:[GitHub Issues](https://github.com/tianma-if/edgeever/issues) - 微信:`m1245207870`(请注明 EdgeEver)
标签:Cloudflare, MCP, MITRE ATT&CK, 无服务器, 知识管理, 程序员工具, 笔记应用, 网络测绘, 自动化攻击, 自托管