Notempty
悟空笔记

一个对新手友好的轻量级笔记工具

支持本地或外网部署 · 浏览器里写 Markdown,自动保存 · 粘贴或拖拽上传图片 · 支持多用户隔离

悟空笔记
向下滚动了解更多

核心功能

简洁而强大的笔记体验

Markdown 编辑

基于 EasyMDE 的实时预览编辑器,支持完整的 Markdown 语法,所见即所得的写作体验。

图片上传

支持粘贴或拖拽上传图片,自动保存到笔记目录。支持 PNG、JPG、GIF、WebP、HEIC、AVIF、BMP 格式。

全文搜索

侧栏支持标题和正文全文检索,快速找到你需要的笔记内容。

多用户隔离

支持代理登录、GitHub、Gitee OAuth 登录,每位用户数据完全隔离存储。

公开笔记

支持将笔记设为公开,生成静态分享链接,方便与他人分享你的知识。

主题切换

支持明暗主题切换,自动保存偏好设置,保护你的眼睛。

快速开始

下载编译好的程序,几分钟即可搭建你的本地笔记服务

下载最新版本 v1.0.0

当前版本:v1.0.0 | 发布日期:2026-04-13
查看历史版本 →

更多下载选项

1

下载程序

根据你的操作系统选择对应的版本下载,解压到任意目录。

2

创建配置文件

在程序同级目录创建 notes-config.json 文件:

{
  "listen": "127.0.0.1:8787",
  "proxyAuth": {
    "proxyUrl": "http://47.107.74.235:9011",
    "cookieSecret": "your-random-secret-key"
  }
}
3

运行程序

Windows:双击运行 Notempty.exe

Linux/macOS:在终端运行 ./Notempty

4

部署为系统服务(可选)

Windows(管理员):Notempty.exe -service install -svc-name LocalNotes

Linux:创建 systemd 服务文件

macOS:使用 launchd 或 brew services

5

开始使用

打开浏览器访问 http://127.0.0.1:8787,点击登录按钮即可开始使用。

配置说明

灵活的登录方式配置

{
  "listen": "127.0.0.1:8787",
  "data": "notes-vault",
  "maxUploadMB": 100,
  "proxyAuth": {
    "proxyUrl": "http://47.107.74.235:9011",
    "cookieSecret": "请替换成32位以上随机字符串",
    "allowedLogins": []
  }
}

代理登录优势

  • 配置最简单,只需一个代理服务地址
  • 无需申请 GitHub/Gitee OAuth 应用
  • 统一的回调地址,多环境部署更方便
  • 客户端不接触 Client Secret,更安全
{
  "listen": ":8787",
  "data": "notes-vault",
  "maxUploadMB": 100,
  "githubOAuth": {
    "clientId": "your-github-client-id",
    "clientSecret": "your-github-client-secret",
    "callbackUrl": "http://127.0.0.1:8787/auth/github/callback",
    "cookieSecret": "请替换成32位以上随机字符串",
    "allowedLogins": []
  }
}

GitHub OAuth 配置步骤

  1. 打开 GitHub → Settings → Developer settings → OAuth Apps → New OAuth App
  2. 填写 Application name、Homepage URL 和 Authorization callback URL
  3. 创建后获取 Client ID 和 Client Secret
  4. 填入配置文件即可
{
  "listen": ":8787",
  "data": "notes-vault",
  "maxUploadMB": 100,
  "giteeOAuth": {
    "clientId": "your-gitee-client-id",
    "clientSecret": "your-gitee-client-secret",
    "callbackUrl": "http://127.0.0.1:8787/auth/gitee/callback",
    "cookieSecret": "请替换成32位以上随机字符串",
    "allowedLogins": []
  }
}

Gitee OAuth 配置步骤

  1. 打开 Gitee → 设置 → 第三方应用 → 创建应用
  2. 填写应用名称、应用主页和回调地址
  3. 创建后获取 Client ID 和 Client Secret
  4. 填入配置文件即可

数据存储结构

清晰的数据组织方式

notes-vault/
├── users/
│   └── github/
│       └── alice/
│           └── 2026-03/
│               └── n_xxxxxxxx/
│                   ├── index.md
│                   └── image-*.png
└── .notes-sidebar-order.json

存储特点

  • 每位用户拥有独立的存储目录
  • 按年月组织笔记,便于管理
  • 每篇笔记是一个文件夹,包含 Markdown 和图片
  • 与 Hugo leaf bundle 格式兼容
  • 支持 Git 版本管理
ON.files[platform]; if (files && files.length > 0) { const mainFile = files[0]; // 第一个文件作为主下载 const card = document.createElement('div'); card.className = 'download-card'; const downloadText = (typeof i18n !== 'undefined' && i18n.t) ? i18n.t('quickstart.download') : '下载'; card.innerHTML = `
${icons[platform]}

${platformNames[platform]}

${mainFile.arch === 'amd64' ? 'x64' : mainFile.arch}

${downloadText} `; mainDownloads.appendChild(card); } }); // 更多下载选项 - 其他架构 const moreDownloads = document.getElementById('more-downloads'); platforms.forEach(platform => { const files = VERSION.files[platform]; if (files && files.length > 1) { files.slice(1).forEach(file => { const item = document.createElement('div'); item.className = 'version-item'; const downloadText2 = (typeof i18n !== 'undefined' && i18n.t) ? i18n.t('quickstart.download') : '下载'; item.innerHTML = ` ${platformNames[platform]} ${file.arch === 'amd64' ? 'x64' : file.arch === '386' ? '32位 (x86)' : file.arch === 'arm64' ? 'ARM64' : file.arch} ${downloadText2} `; moreDownloads.appendChild(item); }); } }); });