Cloudflare 原生的团队知识库:一个人用是私人笔记,一个团队用是共享知识库;提供 Memos 兼容 API 与 MCP。
Zero Servers · Zero Upkeep · 24/7 Global Edge Uptime · Absolute Data Ownership
For individuals: a quiet, focused thought capture space and second brain. For teams: a shared knowledge base with fine-grained roles.
English • 简体中文 • 日本語 • Français • Español • 한국어 • Русский • العربية
Tools like Flomo and Memos proved the immense value of low-friction memo capture and a distraction-free timeline. However, self-hosting a traditional note-taking setup typically means paying for a VPS, configuring Docker and PostgreSQL, scripting automated backups, and dreading disk or hardware failures.
FlareMo answers a simpler question: Can you get a 24/7 online, resilient, globally accelerated knowledge base with zero server maintenance, using just a free Cloudflare account?
has:attachment, is:pinned, before:YYYY-MM-DD, after:YYYY-MM-DD, in:timeline|archive|trash)./memory/mcp, AI agents can record and update cross-session long-term memory (preferences, project decisions, constraints, lessons)./memory./mcp (Streamable HTTP MCP) endpoint to query and append notes programmatically./calendar month view fills past days with what you wrote and future days with what's due — drag to reschedule, quick-add dated tasks, or scan the agenda list.owner, admin, and member roles. Admins invite members via one-time activation links (members choose their own passwords; admins never handle plaintext credentials)./capture for real-time streaming speech-to-text (ASR) transcription.SameSite=Lax browser cookie sessions; revocable memos_pat_ Personal Access Tokens for scripts, CLI, and MCP./api/v1 compatibility: Provides core Memos API endpoints (camelCase default, legacy snake_case via header) and OpenAPI schema.Many assume "free" means "severely limited". For text-heavy personal knowledge bases, Cloudflare's free quota is virtually inexhaustible:
| Resource | Free Tier Quota | Equivalent Capacity | Practical Lifespan |
|---|---|---|---|
| Cloudflare D1 | 5 GB database | ~2.5 Million text memos | Writing 100 memos daily would take 68 years to fill |
| Cloudflare R2 | 10 GB storage | ~5,000–10,000 photos / 80 hours of voice | $0 egress fees; public sharing won't trigger bandwidth bills |
| Cloudflare Workers | Generous free request limits | 300+ global edge locations | Millisecond latency worldwide without cold boots |
| Dimension | Cloudflare Native (FlareMo) | Home NAS / Mini PC | Traditional VPS |
|---|---|---|---|
| Data Durability | Enterprise multi-region replication, zero hardware failure risk | Single drive failure or power outage can cause total data loss | Dependent on manual snapshot & backup routines |
| Maintenance | Zero: No OS patching, no Docker compose, no DB maintenance | OS updates, Docker upkeep, SMART disk alerts, router configs | Kernel upgrades, security patches, watchdog daemons |
| Access Latency | Global edge CDN, sub-100ms response anywhere | Requires DDNS / frp / Tailscale tunnels, constrained by home uplink | Dependent on single cloud region; high cross-border latency |
| SSL & Domains | Automated HTTPS & custom domain bindings | Manual certificate issuance, reverse proxy configuration | Nginx / Caddy config & Let's Encrypt renewal maintenance |
| Financial Cost | $0 / month on free tier | High upfront hardware cost + ongoing electricity | Ongoing monthly / annual server & bandwidth bills |
Clones the repository into your GitHub account and provisions D1, R2, Queues, and Vectorize automatically. After the initial deploy, set FLAREMO_PUBLIC_URL and secrets (see docs/en/deploy.md). If the first attempt reports "Github API Limit Exceeded", wait a few minutes and retry.
On your fork, run Deploy to Cloudflare from Actions to provision resources, publish the Worker, and sync auth secrets. Pushes do not publish. See docs/github-action-deploy.md or the English guide.
Give the repository to an agent capable of executing terminal commands (e.g. Claude Code, Cursor Agent, Codex) along with docs/agent-deploy.md:
"Please deploy FlareMo to my Cloudflare account following docs/agent-deploy.md."
pnpm exec wrangler whoami
pnpm exec wrangler d1 create flaremo
pnpm exec wrangler r2 bucket create flaremo-attachmentsOr run pnpm provision:remote instead: it creates the missing D1 / R2 / Queue / Vectorize resources and writes the D1 database_id into wrangler.jsonc for you. It is idempotent — existing resources are skipped.
cp wrangler.jsonc.example wrangler.jsoncFill in the generated database_id and set FLAREMO_PUBLIC_URL to your production domain. Then set secrets:
pnpm exec wrangler secret put BETTER_AUTH_SECRET --config ./wrangler.jsonc
pnpm exec wrangler secret put FLAREMO_BOOTSTRAP_SECRET --config ./wrangler.jsoncpnpm deploy:dry-run
pnpm deploy(The full pnpm verify gate runs only when the maintainer explicitly asks for it.)
Visit your production domain at /setup and enter the FLAREMO_BOOTSTRAP_SECRET to initialize your Owner account.
Detailed guides: Deployment Guide · GitHub Action deploy · Update Guide.
flowchart LR
Browser["FlareMo Web UI (React 19 / PWA)"] --> Worker["Cloudflare Worker"]
Clients["Memos Clients / Scripts / MCP"] --> Worker
Worker --> Auth["Better Auth (Session / PAT)"]
Worker --> D1["Cloudflare D1 (Memos / Relations / Settings)"]
Access["Cloudflare Access (Optional Outer Perimeter)"] -.-> Worker
Worker --> R2["Cloudflare R2 (Attachments & Exports)"]
Worker --> Assets["Workers Static Assets"]memos_pat_)Open-sourced under the GNU AGPL-3.0 license. Copyright (c) 2026 realchendahuang.
No open issues yet, or sync has not completed.