Memos :开源、自托管的备忘录平台
"Your thoughts, your data, your control — no tracking, no ads, no subscription fees." 你的想法,你的数据,你的掌控——无追踪、无广告、无订阅费用。
一、什么是 Memos
Memos 是一个开源、自托管的备忘录与知识管理平台,旨在提供一个简洁、高效的笔记服务。它基于 Golang(后端)和 React/TypeScript(前端) 开发,支持 Markdown 语法,允许用户轻松捕捉和分享自己的想法。
你可以将 Memos 理解为一个"没有字数限制的自建 Twitter"——它采用类似社交媒体的时间线界面,让碎片化记录变得轻松自然,同时又具备强大的标签管理和搜索功能。
🌟 核心理念
| 理念 | 说明 |
|---|---|
| 🔒 数据主权 | 所有数据存储在你自己的服务器上,完全由你掌控 |
| ⚡ 即时捕捉 | 打开即写,一键记录,不打断思维流 |
| 🎯 专注本质 | 拒绝功能膨胀,只做笔记和备忘录的核心功能 |
| 🆓 永久免费 | MIT 协议开源,无付费墙、无高级版、无隐藏费用 |
截至 2026 年初,Memos 项目在 GitHub 上已获得超过 45,000 颗星标,拥有 340+ 贡献者的活跃社区,是自托管笔记领域最受欢迎的项目之一。
二、主要特点与功能
2.1 🔐 隐私至上:真正的数据自主
Memos 将用户隐私置于首位,这是它与 Notion、Evernote 等云端服务的根本区别:
- 零遥测:不收集任何用户数据,无追踪代码、无分析脚本
- 零外部依赖:完全自包含,无需连接任何外部云服务即可运行
- 本地化存储:所有数据存储在你选择的数据库中(SQLite/MySQL/PostgreSQL)
- EXIF 元数据剥离:上传图片时自动移除 EXIF 元数据(位置信息、相机信息等),保护隐私安全
💡 使用场景:如果你是律师、医生、研究人员或任何需要处理敏感信息的专业人士,Memos 的自托管特性可以帮助你满足数据合规要求。
2.2 ⚡ 轻量高效:专注于速度
- 本地优先架构(Local-first):即使管理数千条笔记也能实现零延迟响应
- Go 语言后端:极低的资源占用,即使在树莓派上也能流畅运行
- 即时保存:输入时自动保存,永不丢失任何一条备忘录
- 快速创建:主页顶部直接显示输入框,无需点击即可开始记录
2.3 📝 强大的 Markdown 支持
Memos 提供完整的 Markdown 编辑体验:
| 功能 | 说明 |
|---|---|
| 基础语法 | 标题、粗体、斜体、列表、引用、代码块 |
| 语法高亮 | 支持多种编程语言的代码高亮显示 |
| 表格支持 | 创建和编辑 Markdown 表格 |
| LaTeX 数学公式 | 支持行内和块级数学表达式渲染 |
| 链接与图片 | 插入超链接和图片资源 |
| HDR 媒体支持 | 支持 HDR(高动态范围)图片和视频的上传与播放 |
| 流式传输 | 视频/音频文件采用流式加载,解决大文件内存问题 |
2.4 🆓 开源免费:MIT 协议
- 完全开源:所有代码托管在 GitHub
- MIT 许可证:可自由使用、修改、分发,包括商业用途
- 社区驱动:功能开发由社区投票和贡献者共同推进
- 无付费层级:所有功能完全免费,没有"Pro 版"或"企业版"
2.5 🌐 跨平台支持
| 平台 | 支持方式 |
|---|---|
| 🖥️ Web 浏览器 | 任何现代浏览器访问 |
| 🍎 macOS | Docker 部署 / 原生二进制 |
| 🐧 Linux | Docker / Docker Compose / 二进制 |
| 🪟 Windows | Docker Desktop / WSL2 |
| 📱 移动端 | PWA(渐进式 Web 应用)可安装到主屏幕,支持离线使用 |
| ☁️ 云平台 | 支持 Railway、Kubernetes 等一键部署 |
三、安装与部署详解
3.1 环境准备
最低要求:
- 1 核 CPU / 512MB 内存(SQLite 模式)
- Docker 20.10+ 或 Docker Compose v2+
- 支持的数据库:SQLite(默认)、MySQL 5.7+ / 8.0+、PostgreSQL 12+
3.2 Docker 快速部署(推荐)
方式一:使用 docker run 命令
docker run -d \
--init \
--name memos \
--publish 5230:5230 \
--volume ~/.memos/:/var/opt/memos \
-e TZ=Asia/Shanghai \
ghcr.io/usememos/memos:latest参数说明:
| 参数 | 说明 |
|---|---|
-d | 后台运行容器 |
--init | 添加 init 进程,正确处理信号 |
--name memos | 容器名称 |
--publish 5230:5230 | 端口映射(主机端口:容器端口) |
--volume ~/.memos/:/var/opt/memos | 数据持久化目录(必须配置!) |
-e TZ=Asia/Shanghai | 设置时区为中国标准时间 |
方式二:使用 Docker Compose(生产环境推荐)
创建 docker-compose.yml 文件:
services:
memos:
image: ghcr.io/usememos/memos:latest
container_name: memos
restart: unless-stopped
ports:
- "5230:5230"
volumes:
- ./data:/var/opt/memos
environment:
- TZ=Asia/Shanghai启动服务:
docker-compose up -d3.3 数据库配置(进阶)
默认情况下,Memos 使用 SQLite 数据库,所有数据打包在单个 .db 文件中,备份只需复制该文件即可。
如需使用 MySQL 或 PostgreSQL,需配置环境变量:
# MySQL 配置示例
environment:
- MEMOS_DRIVER=mysql
- MEMOS_DSN=user:password@tcp(host:3306)/memos?charset=utf8mb4
# PostgreSQL 配置示例
environment:
- MEMOS_DRIVER=postgres
- MEMOS_DSN=postgresql://user:password@host:5432/memos?sslmode=disable从 SQLite 迁移到 MySQL:
/usr/local/bin/memos \
--driver mysql \
--dsn 'dbuser:dbpass@tcp(dbhost)/dbname' \
copydb --from sqlite://path_to_your_memos_prod.db3.4 首次使用配置
- 访问服务:浏览器打开
http://服务器IP:5230 - 注册账户:首个注册用户自动成为管理员(ADMIN)
- 设置语言:进入
设置 → 偏好设置 → 语言选择中文界面 - 配置外观:可选择亮色/暗色主题
⚠️ 安全提示:生产环境建议配置 Nginx/Caddy 反向代理 + HTTPS 证书
四、标签系统与智能捷径
4.1 标签(Tags)
Memos 采用内联标签设计,在笔记内容中直接使用 #标签名 即可创建标签:
今天学习了 Docker 部署 #技术笔记 #Docker
需要准备明天的会议材料 #工作 #待办标签特性:
- ✅ 自动识别并高亮显示
- ✅ 点击标签可筛选相关备忘录
- ✅ 侧边栏标签云可视化展示
- ✅ 支持嵌套标签(如
#工作/项目A)
4.2 智能捷径(Shortcuts)——2025 新功能
捷径功能允许你创建可复用的高级筛选器,快速访问符合特定条件的备忘录集合。
支持的筛选条件:
| 类型 | 运算符 | 示例 |
|---|---|---|
| 标签筛选 | 包含、不包含 | 标签包含 #工作 |
| 可见性 | 等于 | 可见性 = 公开 |
| 时间戳 | 大于、小于、区间 | 创建于最近 7 天 |
| 逻辑运算 | AND、OR、NOT | 标签含 #工作 AND 创建于本周 |
使用场景示例:
- 📋 "本周待办":筛选本周创建的含
#待办标签的备忘录 - 📚 "学习笔记":筛选所有含
#学习或#读书标签的内容 - 🔒 "私密日记":筛选可见性为"私密"的备忘录
五、API 与第三方集成
5.1 API 优先设计
Memos 采用 API 优先(API-First)架构,提供完整的 RESTful 和 gRPC 接口:
# 获取备忘录列表示例
curl -X GET "https://your-memos-domain/api/v1/memos" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"API 能力:
- 📝 创建、读取、更新、删除备忘录(CRUD)
- 🏷️ 标签管理
- 📎 资源文件上传与管理
- 👤 用户信息获取
- 🔍 高级搜索
5.2 Webhook 事件通知
Memos 支持 Webhook 推送,实现与外部系统的实时集成:
支持的事件类型:
memo.created— 新备忘录创建memo.updated— 备忘录更新memo.deleted— 备忘录删除
集成平台示例:
| 平台类型 | 示例 |
|---|---|
| 即时通讯 | Slack、Discord、Microsoft Teams |
| 自动化工具 | Zapier、IFTTT、n8n、Make |
| 项目管理 | GitHub、GitLab、Jira |
5.3 Telegram Bot 官方集成
Memogram 是 Memos 官方维护的 Telegram 集成服务,可将 Telegram 消息同步到 Memos:
功能特性:
- 📨 发送文本消息自动保存为备忘录
- 🖼️ 发送图片/文件自动保存为资源附件
- 🔐 支持用户名白名单限制访问
配置示例(Docker Compose):
services:
memogram:
image: ghcr.io/usememos/telegram-integration:latest
environment:
- SERVER_ADDR=memos:5230
- BOT_TOKEN=your_telegram_bot_token
- ALLOWED_USERNAMES=your_username六、移动端与多端同步
6.1 PWA 渐进式 Web 应用
Memos 支持 PWA 技术,可将网页安装为"类原生应用":
安装方法:
- iOS(Safari):点击分享按钮 → "添加到主屏幕"
- Android(Chrome):点击菜单 → "安装应用"
- 桌面(Chrome/Edge):地址栏右侧安装图标
PWA 特性:
- ✅ 主屏幕图标快速启动
- ✅ 全屏沉浸式体验
- ✅ 支持离线访问已缓存内容
6.2 多端数据同步
由于 Memos 是 Web 服务,天然具备多端同步能力:
手机 ←→ Memos 服务器 ←→ 电脑 ←→ 平板
↑
统一数据源优势:无需配置同步服务,数据实时一致。
七、Memos 与其他工具对比
| 特性 | Memos | Obsidian | Notion |
|---|---|---|---|
| 自托管 | ✅ 完全支持 | ❌ 仅本地文件 | ❌ 云端托管 |
| 开源 | ✅ MIT 协议 | ❌ 闭源 | ❌ 闭源 |
| 数据格式 | SQLite + Markdown | 纯 Markdown 文件 | 专有数据库 |
| 离线访问 | ✅ 通过 PWA | ✅ 原生支持 | ⚠️ 有限支持 |
| 协作功能 | ⚠️ 基础支持 | 💰 付费插件 | ✅ 强大 |
| 学习曲线 | 🟢 简单 | 🟡 中等 | 🟡 中等 |
| 资源占用 | 🟢 极低 | 🟡 中等 | — |
| 适用场景 | 碎片化记录、日记、闪念 | 知识管理、双链笔记 | 团队协作、项目管理 |
选择建议:
💡 "Notion 是我工作的地方,Obsidian 是我思考的地方,Memos 是我随手记录的地方。" — 来自 Medium 用户评论
- 选 Memos:如果你需要快速记录碎片想法、重视隐私、想要自托管
- 选 Obsidian:如果你需要构建个人知识图谱、喜欢双向链接
- 选 Notion:如果你需要强大的团队协作和项目管理功能
八、进阶技巧与最佳实践
8.1 备份策略
SQLite 模式(最简单):
# 定时备份脚本
cp ~/.memos/memos_prod.db ~/backups/memos_$(date +%Y%m%d).dbDocker 数据卷备份:
docker run --rm \
-v memos_data:/data \
-v $(pwd):/backup \
alpine tar cvf /backup/memos_backup.tar /data8.2 性能优化建议
| 场景 | 建议 |
|---|---|
| 备忘录数量 < 5000 | SQLite 足够 |
| 备忘录数量 > 10000 | 考虑迁移到 PostgreSQL |
| 多用户高并发 | 使用 PostgreSQL + 连接池 |
| 外网访问 | 配置 CDN 加速静态资源 |
8.3 安全加固
- ✅ 配置 HTTPS(推荐使用 Caddy 自动证书)
- ✅ 使用强密码并定期更换
- ✅ 配置防火墙,仅开放必要端口
- ✅ 定期更新到最新版本
- ✅ 限制注册(可在管理后台关闭公开注册)
九、学习资源
| 资源 | 链接 |
|---|---|
| 🏠 官方网站 | usememos.com |
| 📖 官方文档 | usememos.com/docs |
| 💻 GitHub 仓库 | github.com/usememos/memos |
| 🐳 Docker 镜像 | ghcr.io/usememos/memos |
| 📣 Telegram 集成 | github.com/usememos/telegram-integration |
| 💬 社区讨论 | GitHub Discussions |
十、小结
Memos 是一个功能强大且易于使用的开源备忘录工具,特别适合以下用户:
- 🔒 重视隐私,希望数据完全自主掌控
- ⚡ 追求效率,需要快速捕捉碎片化想法
- 🛠️ 技术爱好者,喜欢自托管开源软件
- 💰 预算有限,不想为笔记软件付费订阅
- 🔧 需要定制,希望通过 API 扩展功能
通过开源和免费的特性,用户可以根据自己的需求进行定制和扩展。无论是个人知识管理、团队协作还是构建公开的微博客,Memos 都能提供简洁而强大的解决方案。