Memos:一条 Docker 命令,构建你的私有知识库

简介: Memos 是一款开源、轻量级的自托管笔记平台,仅需一条 Docker 命令即可部署。数据完全掌控在自己手中,支持 Markdown、标签管理、全文搜索与多数据库。Go 语言后端性能卓越,内存占用低,助力你快速搭建私有知识库。

Memos:一条 Docker 命令,构建你的私有知识库

你的笔记数据,真的属于你吗?

当你在某云笔记上写下第三千条日记,当你把项目文档托付给某企业服务平台,你有没有想过——这些数据真正的所有权在谁手里?

Memos 是一个开源的自托管笔记服务,GitHub 上已经获得 46,000+ star,Docker 镜像下载量超过 710 万次。这不是又一个"我也能做笔记"的轮子,而是从架构层面重新定义了笔记服务应该有的样子。

项目地址

在线演示


Memos 技术细节

技术架构:Go + React 的高性能组合

后端:Go 语言的性能优势

Memos 使用 Go 和 React 构建,提供闪电般的性能。Go 语言在后端的选择并非偶然:

  • 内存占用:Docker 镜像小于 40MB,内存使用约 30MB
  • 并发处理:Go 的 goroutine 机制让服务器可以轻松处理数千个并发请求
  • 编译部署:单一二进制文件,无需运行时环境

Go 的 net/http 标准库提供了高效的 HTTP 服务能力,配合 gRPC 支持,Memos 可以同时服务 Web 界面和 API 调用。相比 Node.js 或 Python 框架,Go 编译后的二进制文件启动时间在毫秒级,内存占用仅为它们的 1/5 到 1/10。

前端:React 的组件化设计

React 前端采用函数式组件和 Hooks,配合 Markdown 编辑器实现流畅的写作体验。代码层面,React 的虚拟 DOM diff 算法确保了只有实际变化的部分才会重新渲染:

const MemoEditor = () => {
   
  const [content, setContent] = useState('');

  const handleSave = async () => {
   
    await fetch('/api/v1/memos', {
   
      method: 'POST',
      body: JSON.stringify({
    content })
    });
  };

  return (
    <div>
      <textarea 
        value={
   content}
        onChange={
   (e) => setContent(e.target.value)}
      />
      <button onClick={
   handleSave}>Save</button>
    </div>
  );
};

数据存储:灵活的数据库支持

Memos 支持三种数据库后端:

  • SQLite: 默认选项,单文件数据库,适合个人使用
  • MySQL: 适合团队协作,数据量大于 10GB
  • PostgreSQL: 企业级特性,支持全文搜索和 JSON 查询

SQLite 的优势在于零配置。当你运行 docker run 命令时,Memos 会自动在挂载的目录创建 memos_prod.db 文件,所有数据包括用户、笔记、附件元信息都存储在这个文件里。迁移时只需复制这个文件,无需导入导出。


安装与使用

五分钟部署指南

Docker 部署(推荐)

docker run -d \
  --name memos \
  -p 5230:5230 \
  -v ~/.memos/:/var/opt/memos \
  neosmemo/memos:stable

这条命令做了三件事:

  1. 拉取 neosmemo/memos:stable 镜像
  2. 映射 5230 端口到主机
  3. 挂载本地目录 ~/.memos/ 用于数据持久化

运行后,打开浏览器访问 http://localhost:5230,首次访问会引导创建管理员账号。整个过程不超过一分钟。


基础文本笔记

在右侧输入框输入:

# 我的第一条 Memo
今天成功部署了 Memos,这是一个轻量级的自托管笔记服务。

## 为什么选择 Memos?
- 完全开源
- 数据自己掌控
- 部署只需一条命令

#新手入门 #部署成功
  • 即时保存,无需等待
  • Markdown 实时渲染
  • 标签自动识别(以 # 开头)


Markdown 格式支持

创建一条包含多种格式的笔记:

支持:

  • 代码高亮(支持 100+ 语言)
  • 任务列表可交互打勾
  • 表格自动格式化
  • 链接自动识别

标签与过滤

创建多条带标签的笔记
笔记 1:

今天学习了 Go 语言的并发模型,goroutine 真的很强大。

#编程 #golang #学习笔记

笔记 2:

周末计划:
- 阅读《设计模式》第 5 章
- 健身房
- 整理书房

#个人 #周末计划

笔记 3:

周末计划:
- 阅读《设计模式》第 5 章
- 健身房
- 整理书房

#个人 #周末计划
  1. 点击左侧标签云中的 #编程
  2. 只显示包含该标签的笔记
  3. 点击多个标签测试组合过滤
  4. 使用搜索框搜索"项目"

项目支持:

  • 标签自动聚合
  • 点击标签即时过滤
  • 搜索功能支持全文检索

Memo支持的功能还有很多,包括但不限于:

  1. 基础笔记创建和快捷键
  2. Markdown 全功能支持
  3. 标签、过滤、快捷方式
  4. 可见性控制、公开笔记、附件
  5. 数据掌控:导出、备份、迁移
  6. API 集成:命令行创建笔记,展示自动化能力
  7. 高级功能:搜索语法、Daily Review、移动端

Docker Compose(生产环境)

生产环境推荐使用 Docker Compose,配合 MySQL:

version: '3'
services:
  memos:
    image: neosmemo/memos:stable
    container_name: memos
    ports:
      - "5230:5230"
    environment:
      MEMOS_DRIVER: mysql
      MEMOS_DSN: "root:password@tcp(mysql:3306)/memos"
    volumes:
      - ./data:/var/opt/memos
    depends_on:
      - mysql

  mysql:
    image: mysql:8
    container_name: memos-mysql
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: memos
    volumes:
      - ./mysql:/var/lib/mysql

执行 docker-compose up -d 即可启动。MySQL 会自动创建数据库,Memos 启动时执行 schema 迁移。


结语

Memos 的优势在于:

  • 部署简单:一条命令即可运行,无需配置 Node.js 环境
  • 性能领先:Go 后端的内存占用仅为 Node.js 方案的 20%
  • 社区活跃:更新频率高,问题响应快

Memos 团队正在开发的功能包括:

  1. 端到端加密
  2. 协作编辑(实时多人协作)
  3. 插件系统(用户可自定义扩展)
  4. 桌面端应用(Electron 封装)

项目在第一年达到 1000 stars,第二年增长到 20,000。这种增长速度表明开源社区对自托管笔记服务的需求正在快速增长。当越来越多的人意识到数据主权的重要性,Memos 这样的项目会成为主流选择。

相关链接:

💬 你用过哪款 AI 编程工具?欢迎评论区分享你的体验!
⭐ 觉得有用?点个「在看」让更多开发者看到这篇对比!

相关文章
|
28天前
|
存储 弹性计算 人工智能
阿里云服务器租用费用价格表(2026年最新)一年、1个月和1小时收费
2026年阿里云服务器最新价格出炉,涵盖轻量应用服务器、ECS、GPU服务器等多种类型。38元/年起秒杀轻量服务器,99元/年畅享2核2G配置,按月、按小时灵活计费,支持个人开发、企业建站及AI计算全场景需求,高性价比优选。
1037 12
|
7天前
|
人工智能 机器人 Linux
保姆级 OpenClaw (原 Clawdbot)飞书对接教程 手把手教你搭建 AI 助手
OpenClaw(原Clawdbot)是一款开源本地AI智能体,支持飞书等多平台对接。本教程手把手教你Linux下部署,实现数据私有、系统控制、网页浏览与代码编写,全程保姆级操作,240字内搞定专属AI助手搭建!
4466 13
保姆级 OpenClaw (原 Clawdbot)飞书对接教程 手把手教你搭建 AI 助手
|
存储 Kubernetes Docker
使用 Docker 搭建碎片化知识卡片-Memos
Memos 是一个功能全面、易于使用的开源知识库和社交平台,适合个人和企业使用。它支持标签、过滤、搜索和多账户管理,提供多种隐私设置和后端存储选择,支持单点登录和 Docker 部署,注重数据的安全性和私密性。
851 12
使用 Docker 搭建碎片化知识卡片-Memos
|
2月前
|
JavaScript 定位技术 API
Trilium Notes:构建个人知识库的开源神器
Trilium Notes 是一款开源、免费的个人知识管理系统,支持树状结构、笔记克隆、富文本与 Markdown、代码高亮、加密笔记、思维导图及 REST API。可本地部署,跨平台同步,助力构建“第二大脑”,适合学习、研发与创意写作。
443 8
 Trilium Notes:构建个人知识库的开源神器
|
2月前
|
关系型数据库 MySQL Shell
Docker下载加速
本文介绍Docker下载加速的两种方法:一是使用网易数帆、阿里云等镜像仓库,如`docker pull hub.c.163.com/library/mysql`;二是配置阿里云镜像加速器,通过修改`/etc/docker/daemon.json`添加加速地址,实现快速拉取官方镜像。此外,若使用代理上网,还可配置HTTP/HTTPS代理,提升镜像下载效率。
|
3月前
|
人工智能 自然语言处理 JavaScript
AI智能体实现自主化UI回归测试全解析 Playwright+MCP
Playwright结合MCP与大语言模型,实现AI驱动的自动化测试。通过自然语言指令操控浏览器,降低技术门槛,提升测试效率与可靠性,开启智能测试新时代。
|
6月前
|
自然语言处理 监控 机器人
Dify入门指南(5):从零开始构建智能客服机器人(保姆级教程)
无需编程,只需4步,10分钟用Dify搭建智能客服!文末附进阶技巧:数据分析优化、多轮对话设计及人工接管配置,助你打造高效客服助手。
|
11月前
|
前端开发 搜索推荐 数据安全/隐私保护
Calibre-Web-Automated:打造你的私人图书馆
Calibre-Web-Automated 是一个功能强大、易于使用的电子书管理平台,它可以帮助你轻松构建和管理你的私人图书馆。如果你正在寻找一个开源、免费、可定制的电子书管理解决方案,那么 Calibre-Web-Automated 绝对是你的不二之选!
842 10
Calibre-Web-Automated:打造你的私人图书馆
|
Ubuntu Linux Docker
Ubuntu22.04上Docker的安装
通过以上详细的安装步骤和命令,您可以在Ubuntu 22.04系统上顺利安装
9959 12