实测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 更快捷

bash 复制代码
# 新建文件夹 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 文件

yaml 复制代码
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 登录到您的群晖,执行下面的命令:

bash 复制代码
# 新建文件夹 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

相关推荐
王燕龙(大卫)6 小时前
fastdds笔记
网络·c++·笔记
Mico186 小时前
MySQL 8.0.35 源码编译安装笔记
数据库·笔记·mysql
spider_xcxc6 小时前
docker-compose.yaml 是“开发/测试环境”的利器,而 Kubernetes 配置是“生产环境”的标准。
docker·容器·kubernetes
灵性(๑>ڡ<)☆7 小时前
Java学习笔记--面向对象高级(接口)
笔记·学习
chen_ke_hao7 小时前
K8s 高可用集群部署
java·docker·kubernetes
91刘仁德7 小时前
MySQL 数据类型详解
android·笔记·mysql·adb
江屿风7 小时前
【C++笔记】List流食般投喂
开发语言·c++·笔记·list
信仰8747 小时前
HCIA-华为数通基础理论与实践08
网络·笔记·华为
一只小菜鸡..21 小时前
Stanford CS144 学习笔记 (四):网络拥塞控制与 AIMD 算法
网络·笔记·学习