Brave
@47c132035ed7a1105a867946b99d67af 开源软件研究 公开
讨论 Memos :开源、自托管的备忘录平台

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 浏览器任何现代浏览器访问
🍎 macOSDocker 部署 / 原生二进制
🐧 LinuxDocker / Docker Compose / 二进制
🪟 WindowsDocker 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 -d

3.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.db

3.4 首次使用配置

  1. 访问服务:浏览器打开 http://服务器IP:5230
  2. 注册账户:首个注册用户自动成为管理员(ADMIN)
  3. 设置语言:进入 设置 → 偏好设置 → 语言 选择中文界面
  4. 配置外观:可选择亮色/暗色主题

⚠️ 安全提示:生产环境建议配置 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 与其他工具对比

特性MemosObsidianNotion
自托管✅ 完全支持❌ 仅本地文件❌ 云端托管
开源✅ 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).db

Docker 数据卷备份

docker run --rm \
  -v memos_data:/data \
  -v $(pwd):/backup \
  alpine tar cvf /backup/memos_backup.tar /data

8.2 性能优化建议

场景建议
备忘录数量 < 5000SQLite 足够
备忘录数量 > 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 都能提供简洁而强大的解决方案。