跳转至

Memos Webhook 与导出完全指南

Memos 是一个开源、自托管的笔记服务,支持 Webhook 和多种数据导出方式。


一、Webhook 使用指南

Memos 的 Webhook 功能可以实现笔记创建时的自动通知和同步,主要有两种使用方式:

1.1 Memos 发送 Webhook(主动推送)

当你在 Memos 中创建新笔记时,Memos 会向指定 URL 发送 POST 请求。

配置步骤

  1. 登录 Memos,进入 设置Webhook
  2. 点击 创建 Webhook
  3. 填写配置:
  4. URL:接收 webhook 的目标地址
  5. 触发事件:通常选择 memo.created
  6. 保存配置

Webhook 请求格式示例

{
  "creatorId": 1,
  "createdTs": 1234567890,
  "content": "笔记内容",
  "visibility": "PUBLIC",
  "id": 123
}

1.2 向 Memos 发送 Webhook(写入笔记)

通过 HTTP API 直接向 Memos 写入内容。

请求方式

POST https://你的memos地址/api/v1/memos

Headers

Authorization: Bearer 你的Token

Body (JSON)

{
  "content": "笔记内容",
  "visibility": "PUBLIC"
}

1.3 常见自动化场景

场景 工具 说明
Memos → Flomo n8n / Activepieces 新笔记自动同步到 Flomo
Memos → Flarum Activepieces 笔记自动发布到论坛
Mastodon → Memos Docker + 脚本 嘟文自动保存到 Memos
Flarum → Memos Webhook + 中间件 论坛帖子同步到笔记

二、笔记导出功能

Memos 支持导出所有笔记,但方式和传统笔记软件略有不同。

2.1 支持的导出方式

方式 说明
数据库文件备份 所有数据存储在 SQLite/MySQL/PostgreSQL 数据库中,直接备份数据库文件即可
API 导出 通过 REST API 获取所有 memo 数据(JSON 格式)
Markdown 纯文本 Memo 内容本身就是 Markdown 格式存储

2.2 具体操作方法

方法 1:直接备份数据库文件(最简单)

# Docker 部署
cp /var/opt/memos/memos_prod.db ~/backup/

# 查看数据库内容
sqlite3 memos_prod.db "SELECT * FROM memo;"

方法 2:使用 API 导出 JSON

curl -H "Authorization: Bearer YOUR_TOKEN" \
  https://你的memos地址/api/v1/memos

方法 3:SQLite Dump 命令

sqlite3 /root/memos/memos_prod.db .dump > backup.sql

2.3 注意事项

  1. Memos 没有内置"一键导出为 Markdown 文件"的界面功能
  2. 数据通过 API 获取是 JSON 格式,内容字段为 Markdown
  3. 如需导出为单独的 .md 文件,需要自己编写脚本处理
  4. SQLite 数据库文件通常位于 store/db/sqlite 目录

三、常见问题

Q1: Memos 支持哪些数据库?

A: Memos 支持 SQLite、MySQL 和 PostgreSQL 三种数据库。

Q2: 如何定期自动备份?

A: 可以使用 crontab 定期执行数据库文件复制,或使用 Docker 的 volume 备份功能。

Q3: 导出的 JSON 数据包含哪些字段?

A: 包含笔记 ID、创建者 ID、创建时间戳、内容、可见性等字段。


四、参考资源