实测2.8MB的Rust笔记服务:MinimaMemosa部署教程

简介

什么是 MinimaMemosa ?

MinimaMemosa 是一个基于 Rust 构建的轻量级、自托管笔记/备忘录应用,设计目标是将空闲内存占用控制在 5-10MB,最大不超过 100MB。它采用 Memos 风格的时间线布局,支持富文本编辑、Markdown 渲染、标签管理、日历热力图和全文搜索,让你完全掌控自己的笔记数据。

主要特点

  • 极低资源占用:后端采用 Rust + Axum + Tokio 构建,实测空闲内存仅 ~2.8MB,加上嵌入式 SQLite 数据库和 Alpine Linux 容器,整体空闲内存不到 5MB
  • Memos 风格时间线:笔记按日期分组,以时间线形式展示,浏览体验流畅自然
  • WYSIWYG 富文本编辑:基于 Tiptap 编辑器,支持斜杠命令、标题、加粗、斜体、列表、代码块、表格、待办清单等
  • Markdown 渲染:服务端通过 pulldown-cmark 渲染,确保快速展示
  • 文件附件支持:拖拽或上传文件,自动插入为 Markdown 链接/图片
  • 可见性控制:每条笔记可设置为公开/登录可见/私密三种可见级别
  • 标签系统:在笔记中添加 #标签,通过侧边栏按标签筛选
  • 日历热力图:可视化的活动日历,直观显示每天记录了多少笔记
  • 全文搜索:跨所有笔记进行全文检索
  • 暗色模式:客户端 localStorage 持久化,零服务端开销
  • HTMX 驱动:无 JavaScript 框架,服务端渲染 HTML 片段,页面交互轻盈
  • 开源免费:基于 MIT 协议开源,可免费使用和修改

应用场景

  • 个人知识管理:快速记录灵感、日记、读书笔记,配合标签和搜索轻松检索
  • 私有微博客:用时间线形式记录生活点滴,可选择公开分享
  • 团队协作:多用户注册登录,支持评论回复,适合小团队内部知识共享
  • 开发者笔记:支持 Markdown 和代码块,适合记录技术笔记和代码片段

MinimaMemosa 是一个将资源效率发挥到极致的自托管笔记应用,用不到 5MB 的内存提供了完整的笔记体验。

安装

在群晖上以 Docker 方式安装。

本文写作时, latest 版本对应为 1fc0dae

由于镜像托管在 ghcr.io,群晖 Docker 套件无法直接搜索,需要通过命令行拉取镜像。

docker cli 安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 新建文件夹 minimamemosa 和 子目录
mkdir -p /volume1/docker/minimamemosa/data

# 进入 minimamemosa 目录
cd /volume1/docker/minimamemosa

# 一键启动
docker run -d \
--name=minimamemosa \
--restart=unless-stopped \
-p 3723:3000 \
-v $(pwd)/data:/app/data \
-e SESSION_SECRET=your-random-secret-here \
ghcr.io/niteenautade/minimamemosa:latest

# 示例
docker run -d \
--name=minimamemosa \
--restart=unless-stopped \
-p 3723:3000 \
-v $(pwd)/data:/app/data \
-e SESSION_SECRET=o3anadnW9o8KGaXZLHsSBzcEAQhpm2DX \
ghcr.io/niteenautade/minimamemosa:latest

环境变量说明SESSION_SECRET 用于 HMAC 签名会话 Cookie,务必修改为一个随机字符串;PORT 默认为 3000,如果端口冲突可修改;DATABASE_PATH 默认为 /app/data/minimamemosa.db,通常不需要修改。

docker-compose 安装

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
version: '3.8'

services:
minimamemosa:
image: ghcr.io/niteenautade/minimamemosa:latest
container_name: minimamemosa
restart: unless-stopped
ports:
- "3723:3000"
volumes:
- ./data:/app/data # 数据库持久化
environment:
- SESSION_SECRET=your-random-secret-here # 会话签名密钥,请改为随机字符串
- PORT=3000 # HTTP 监听端口(可选,默认 3000)
- DATABASE_PATH=/app/data/minimamemosa.db # 数据库路径(可选)

然后通过 SSH 登录到您的群晖,执行下面的命令:

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 minimamemosa 和 子目录
mkdir -p /volume1/docker/minimamemosa/data

# 进入 minimamemosa 目录
cd /volume1/docker/minimamemosa

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中访问 http://<群晖IP>:3723 即可进入登录界面

第一次需要注册一个新账户(第一个注册的用户自动成为管理员)

登录成功后的主界面

在顶部的编辑框中输入笔记内容,支持 Markdown 格式和富文本编辑

点击 Save 保存笔记,它会自动出现在时间线中

👇官方完整的演示动图

注意事项

  1. SESSION_SECRET 必须修改:默认的 change-me-to-a-random-secret 在生产环境中不安全,请务必修改为随机的字符串
  2. 数据持久化:确保 ./data 目录挂载正确,否则重启容器后数据会丢失
  3. 端口冲突:默认使用 3000 端口,如被占用可通过环境变量 PORT 修改
  4. 反向代理:如果需要公网访问,建议使用 NginxCaddy 配置 HTTPS 反向代理
  5. Demo 站点:官方提供了体验 Demohttps://minimamemosa.onrender.com),但数据会定期清除,仅供体验

参考文档

niteenautade/minimamemosa: A lightweight, self-hosted memo/notes app built for minimal resource usage
地址:https://github.com/niteenautade/minimamemosa

MinimaMemosa 在线 Demo
地址:https://minimamemosa.onrender.com