Skip to content

Latest commit

 

History

History
450 lines (331 loc) · 26.4 KB

README.md

File metadata and controls

450 lines (331 loc) · 26.4 KB
Nowen Note

Nowen Note(弄文笔记)

开源、自托管的知识库、每日记录与任务协作工作台

统一知识树 · 富文本 / Markdown 双编辑器 · 离线工作区 · AI RAG 问答 · 每日记录 · 任务中心 · 多端协作

English · 官方网站 · 下载中心 · 帮助中心 · 在线体验 · 下载客户端 · 教程中心 · MCP 安装 · AI 开发 Skill · 更新日志

GitHub Release Docker Pulls License: GPL v3 Node.js 20+ Docker

Nowen Note 不只是一个编辑器。它希望成为一套由你掌控数据、可长期运行在 NAS / 服务器上,并能通过 Web、桌面端和移动端随时访问的个人与团队知识基础设施。

NAS 远程连接登录:支持部署到 绿联 NAS(UGOS / UGOS Pro) 和 飞牛 NAS(fnOS)。部署完成后,可在 Web、桌面端或 Android 客户端中,通过局域网 IP、IPv6 地址或已配置 HTTPS 的公网域名远程连接并登录。

v1.5.2 更新亮点 · 2026-10-16

v1.5.2 的功能代码已合并到 main。 本轮围绕 文件中心、AI / MCP、任务工作台、同步可靠性和多平台发布 进行升级。正式安装包与可用平台以 GitHub Releases 实际公开的资产为准。

Important

升级前请创建完整备份,确认数据库与附件已持久化;Docker / NAS 用户建议保留独立备份。回滚程序或容器镜像不等于回滚数据库与附件。

  • 文件中心升级:资源管理器式导航、瀑布流、文件夹、标签、智能文件夹、上传进度、批量重命名、回收站与恢复;支持个人附件目录同步、复用已有附件,以及先预览再确认的 AI 元数据整理和语义搜索。
  • MCP 能力扩展:新增受令牌权限约束的知识树与任务项目能力,支持受控的树结构操作、任务编辑与归档、文件整理及任务详情保存为笔记;高风险写入采用预览确认、版本校验和资源授权。新增可选的本机回环 Streamable HTTP 接入及 MCP 连接面板。
  • 任务与效率:支持 AI 生成任务并确认创建、今日完成清单、任务树归档、任务详情另存为笔记,以及 Excel / Markdown 导出。
  • 同步与编辑:加强单篇笔记同步确认、个人目录结构同步与恢复,并新增纯文本笔记、中文排版操作及阅读位置恢复。
  • 发布与部署:新增可视化版本发布中心、发布资产校验、可选 Caddy HTTPS 部署,并为 Microsoft Store 独立 AppX 打包和商店更新适配建立隔离流程;商店适配不代表已经在 Microsoft Store 上架。

查看 完整更新日志 · 多平台下载 · GitHub Releases。

为什么选择 Nowen Note

数据真正属于你 支持 Docker / NAS 自托管,可部署到绿联 UGOS、飞牛 fnOS 等 NAS 平台;数据库、附件、索引和备份均由你管理,附件可接入 S3、Cloudflare R2 与 MinIO,备份可同步到邮件或 WebDAV。
一棵树管理全部内容 文件夹、富文本和 Markdown 文档统一组织,根目录也能直接创建文档,支持拖拽、排序、导入、权限继承、密码保护和共享展示。
在线与离线都能工作 可缓存完整工作区、正文和附件,断网继续阅读与编辑,联网后自动恢复增量同步。
写作、知识与行动统一 笔记、每日记录、任务、AI、思维导图和协作权限在同一套产品中完成,无需在多套工具间反复切换。

核心能力

模块 当前能力
统一知识树 文件夹、富文本与 Markdown 文档混合组织;支持根目录文档、无限层级、拖拽排序与层级调整、统一创建菜单、全部展开 / 收起、筛选搜索、数量统计、回收站和共享目录;三栏布局可展示子文件夹与层级范围。
富文本与 Markdown Tiptap 3、CodeMirror 6、富文本 / Markdown 双编辑器与格式互转、纯文本笔记、实时预览与分屏、大纲、表格、代码块、KaTeX、Mermaid、脚注、Callout、媒体嵌入、中文排版、阅读位置恢复、批注与版本历史。
可靠保存与离线工作区 Yjs 持久化确认、按笔记作用域的同步回执、未确认修改补传、IndexedDB 草稿恢复、富文本串行版本保存;支持个人空间、共享目录和离线工作区,包含个人目录结构同步、回收站恢复及误冲突防护;离线附件支持损坏 Blob 校验与恢复。
性能与加载 工作区、编辑器、任务、日记、文件管理、AI 等功能按需加载;静态资源支持缓存验证、Gzip / Brotli 预压缩,减少首屏依赖和重复传输。
知识组织与检索 彩色标签、收藏、置顶、全文搜索、当前目录笔记搜索、文内查找替换、双向链接、块引用、反向链接、知识图谱,以及“全部笔记”固定入口。
AI 能力 OpenAI 兼容接口、通义千问、Gemini、DeepSeek、豆包与 Ollama;支持续写、改写、翻译、标题与标签生成、总结、Embedding 索引和 RAG 知识问答,并支持查询今日任务、查看完成进度以及确认后创建或完成个人任务。
每日记录 统一“瞬间 / 日历 / 日记”入口,支持短内容、心情、图片、视频、AI 周报 / 月报、自然日期命令、日记实体归档、历史目录整理和工作区共享日记。
任务与习惯 树形任务、列表、看板、日历、甘特图 / 时间轴、依赖、重复规则、提醒、模板、My Day、Inbox、离线任务 / 习惯和 Android 原生提醒;支持 AI 生成任务后确认创建、今日完成汇总、任务树归档、任务详情另存为笔记(保留原任务)、任务报表及子树导出 Excel / Markdown,并提供到期排序和 Webhook 早晚摘要。
协作、权限与分享 Yjs + WebSocket 实时协作、工作区角色、目录级 ACL、Restricted 受限模式、显式允许 / 拒绝规则、权限继承、所有权转移、分享密码与有效期、访客评论、公开知识空间,以及富文本 / Markdown 划词批注。
导入、导出与迁移 支持 Markdown、Word / DOCX、网页 URL、微信公众号、SingleFile HTML、思源、Obsidian、小米笔记等;支持选择导入为 Markdown 或富文本,并提供后台任务、进度、重试、远程图片本地化和 Markdown 图片 / 脚注导出;团队空间单篇 ZIP 会按笔记真实工作区执行权限校验。
附件与存储 文件中心提供资源管理器式文件夹导航、瀑布流、标签、智能文件夹、批量上传进度、移动 / 重命名、文件回收站及恢复、个人附件目录同步和已有附件插入;支持远程图片安全转存与逐图进度。AI 文件整理采用元数据建议、人工确认和权限校验,语义检索基于文件名 / 标签 / 描述,不读取文件字节,且受 平台与作用域限制。附件可存储于本地磁盘、S3、R2、MinIO;参见文件整理、回收站与目录同步。
备份与恢复 本地自动备份、后台完整 ZIP 任务、流式归档与校验、浏览器原生下载、邮件备份、凭据加密的 WebDAV 远程备份、Docker 在线升级前备份与失败回滚检查。
多端访问 Web、Electron(Windows / macOS / Linux)、Android、iOS 工程、HarmonyOS 工程,以及 Docker / NAS 部署;支持绿联 UGOS、飞牛 fnOS,客户端可通过 IPv4、IPv6 或域名远程连接并登录 NAS 服务;Android 支持应用内图片手势预览。
开放能力 OpenAPI 3.0、TypeScript SDK、CLI、Webhook、插件系统、受限 Personal API Token、MCP Server 和浏览器剪藏扩展;MCP 覆盖授权笔记 / 知识树、个人任务 / 项目、文件管理和个人自动化,敏感操作需要显式授权及预览确认;可选本机回环 HTTP 传输。

AI 问答与隐私

Nowen Note 的知识库问答采用 RAG 检索增强方式,不会在每次提问时把全部笔记内容都发送给大模型。

  • 知识库模式:先在本地索引中检索相关笔记和附件,再发送匹配到的片段。
  • 当前笔记模式:只使用当前打开的笔记。
  • 选中文本模式:只使用当前选择或粘贴的文本。
  • 本地模型:使用 Ollama 等本地服务时,可让问答内容留在自己的设备或服务器中。

使用在线 Embedding 或在线大模型时,建立索引或回答问题所需的相关文本会发送给你自行配置的服务商。身份证、密码、API Key、助记词等高度敏感信息仍不建议以明文保存。

让 AI 客户端连接 Nowen Note

Nowen Note 的 MCP Server 可连接 Claude Code、Cursor、VS Code 等客户端。在 Personal API Token 授权范围内使用笔记、知识树、个人任务 / 项目、文件管理及个人自动化能力;部分新增写入工具要求先预览、明确确认,并通过并发版本校验。高风险功能默认不开放,不能绕过笔记本范围与用户权限。

目前可通过源码构建 packages/nowen-mcp 并使用 bin/nowen-mcp.mjs 作为客户端入口(Node.js 20+);dist/scoped-entry.js 仅供启动器内部加载。标准接入以 stdio 为主;v1.5.2 另提供需要明确开启、仅限本机回环地址且要求认证的 Streamable HTTP 接入。请为不同客户端创建独立、最小权限的 Token,勿在配置中写入管理员密码。

上一版本 v1.5.1

v1.5.1 重点改进 任务提醒与摘要、AI 任务操作、Android 同步与登录体验、富文本和加密保护。详情见 v1.5.1 发布说明;更早版本见 更新日志。

截图

桌面端

AI 写作助手 AI 服务商配置
桌面 AI 写作 AI 设置

移动端

侧边栏 笔记列表 编辑器
移动端侧边栏 移动端列表 移动端编辑器

官网与在线体验

演示账号仅用于体验,数据可能被定期重置。请勿存放敏感或重要内容。

快速部署

Docker Compose(推荐)

要求已安装 Docker Engine 与 Docker Compose v2。

git clone https://github.com/cropflre/nowen-note.git
cd nowen-note
docker compose up -d

打开 http://<服务器IP>:3001。

默认管理员账号:

用户名:admin
密码:admin123

首次登录后请立即修改默认密码。公网部署还应配置 HTTPS、备份、正确的公开访问地址,并按需收紧 CORS。

HTTPS 部署(可选)

已有 Nginx、Lucky 或 NAS 反代的用户可继续复用现有入口。新部署可使用配套的 Caddy 模板自动申请和续期证书,需要 Docker Compose 2.24.4+、正确解析的公网域名及可达的 80/443 端口。

在 .env 中设置 NOWEN_DOMAIN=note.example.com,然后执行:

docker compose -f docker-compose.yml -f docker-compose.https.yml config --quiet
docker compose -f docker-compose.yml -f docker-compose.https.yml up -d

访问 https://note.example.com。此模板取消主应用的 3001 宿主机映射,自动设置公开分享地址,并持久化 Caddy 证书。后续管理命令也需同时指定这两个文件。

已有实例请保持原 Compose 项目名和数据挂载,先备份再切换;HTTPS 就绪后,客户端改用域名地址。详见 HTTPS 部署与验收。

绿联 NAS / 飞牛 NAS 远程连接登录

Nowen Note 支持部署在 绿联 NAS(UGOS / UGOS Pro) 与 飞牛 NAS(fnOS) 上。可使用 Releases 中对应的 .upk / .fpk 安装包,也可以直接通过 Docker Compose 部署。

部署并启动服务后:

  • 局域网访问:浏览器打开 http://<NAS局域网IP>:3001。
  • 远程访问:在 Web、桌面端或 Android 客户端中填写 NAS 的公网域名、IPv4 或 IPv6 服务地址并登录。
  • 公网使用建议配置 HTTPS 反向代理,不建议直接暴露未加密的 HTTP 服务。

查看各平台安装包:GitHub Releases。

查看运行状态和日志:

docker compose ps
docker compose logs -f --tail=200 nowen-note

从旧版本升级

升级前先在管理后台创建完整备份,并确认数据库与附件目录已经持久化。

docker compose pull
docker compose up -d

需要固定 Docker 镜像时,请先确认目标标签已经在 Docker Hub 发布。以下使用已公开可用的 v1.5.1 标签示例(v1.5.2 镜像可用后再替换):

NOWEN_IMAGE_TAG=v1.5.1 docker compose pull
NOWEN_IMAGE_TAG=v1.5.1 docker compose up -d

Important

升级前请先完成完整备份,确认数据库与附件已持久化。 Docker / NAS 用户建议保留独立备份;镜像回滚不会还原数据库。版本详情见 更新日志 与 公开 Releases。

Docker 在线升级(可选)

在线升级仅支持仓库内的官方 docker-compose.yml,且默认关闭。主应用容器不会挂载 Docker Socket;只有独立、内网隔离并受限运行的 updater 容器拥有 Docker Engine 权限。

cp .env.example .env
printf '\nNOWEN_UPDATER_TOKEN=%s\n' "$(openssl rand -hex 32)" >> .env
NOWEN_IMAGE_TAG=v1.5.1 docker compose --profile updater up -d

启用后,管理员可在「设置 → 关于 → 版本信息」执行升级前检查、完整备份、升级、健康验证和失败回滚。

完整说明见 Docker 在线升级与恢复。

仅运行主应用

docker run -d \
  --name nowen-note \
  --restart unless-stopped \
  -p 3001:3001 \
  -e TZ=Asia/Shanghai \
  -v /opt/nowen-note/data:/app/data \
  cropflre/nowen-note:v1.5.1

数据、备份与配置

持久化目录

容器内的持久化根目录是 /app/data,不是 /data。默认 Compose 使用名为 nowen-note-data 的 Docker Volume。

/app/data/
├── nowen-note.db
├── attachments/
├── backups/
├── fonts/
└── .jwt_secret
  • 默认生产数据库为 SQLite,主文件是 /app/data/nowen-note.db。
  • 附件默认存储在 /app/data/attachments,新文件按 YYYY/MM 分目录。
  • 自动备份默认位于 /app/data/backups。
  • 生产环境建议把 BACKUP_DIR 映射到独立物理磁盘,并遵循 3-2-1 备份原则。
  • PostgreSQL 适配和迁移仍在验证中,当前正式部署与恢复流程继续以 SQLite 为默认基线。

常用环境变量

完整模板见 .env.example。

变量 默认值 用途
NOWEN_PORT 3001 Compose 对外暴露端口
NOWEN_DOMAIN 空 可选 Caddy HTTPS 模板的公网域名,仅填写主机名
TZ Asia/Shanghai 容器时区,会影响任务日期与日记自然日期判断
PUBLIC_WEB_ORIGIN 空 反向代理或公网域名,用于生成正确的分享链接
FILE_PUBLIC_ORIGIN 继承 PUBLIC_WEB_ORIGIN 文件管理 / 图床复制直链使用的独立公网域名;上传、预览和本人下载仍走当前连接地址
JWT_SECRET 自动生成并持久化 登录、会话与部分加密回退;多实例部署时必须统一配置
BACKUP_DIR /app/data/backups 自动备份目录
BACKUP_WEBDAV_ENCRYPTION_KEY 回退到 JWT_SECRET 加密保存 WebDAV 凭据,生产环境建议单独配置
CORS_ORIGINS 内置原生客户端来源 额外允许的网页 Origin,逗号分隔
MAX_ATTACHMENT_SIZE_MB 100 单个附件大小上限
ATTACHMENT_STORAGE local 设为 s3 后可接入 S3 / R2 / MinIO
NOWEN_UPDATER_TOKEN 空 启用 Docker 在线升级代理

客户端与平台状态

平台 获取 / 构建方式 状态说明
Web / Docker Docker Hub 或源码构建 推荐部署方式;镜像可构建 amd64、arm64 或多架构版本
Windows / macOS / Linux GitHub Releases 或 npm run electron:build Electron 客户端可连接远程服务,也可使用本地后端
Android Releases APK 或在 frontend/ 下使用 Capacitor 构建 正式维护;支持系统分享导入、Markdown 导入、沉浸式编辑、移动端知识树、图片手势预览、系统原生任务提醒,以及远程连接 NAS 服务登录
iOS Capacitor 工程与 GitHub Actions / TestFlight 流程 需要 Apple 签名与开发者账号,详见 iOS 发布指南
HarmonyOS 使用 DevEco Studio 打开 nowen-harmony/ ArkTS + ArkWeb MVP;部分原生能力仍在完善
fnOS Releases 中的 .fpk 支持飞牛 NAS 安装;当前 .fpk 主要面向 x86_64,部署后可通过局域网或公网地址远程连接登录
绿联 UGOS Releases / 构建脚本中的 .upk 支持绿联 NAS 安装,依赖具体设备架构与应用安装能力;部署后可通过局域网或公网地址远程连接登录
其他 NAS Docker Compose 群晖、威联通、极空间等可按 Docker 方式部署

各平台实际发布的安装包以 GitHub Releases 为准。

本地开发

要求 Node.js 20+、npm、Git。Electron 和原生依赖构建还需要对应平台的编译工具链。

git clone https://github.com/cropflre/nowen-note.git
cd nowen-note
npm install
npm run install:all
npm run dev

也可以分别启动:

npm run dev:backend
npm run dev:frontend

访问 http://localhost:5173。

常用命令:

npm run build:all                 # 构建前端与后端
npm run electron:dev              # Electron 开发
npm run electron:build            # Electron 打包
(cd backend && npm test)          # 后端测试
(cd frontend && npm run test:run) # 前端测试

Android:

cd frontend
npm run cap:build
npx cap open android

Capacitor 8 的 Android 发布工具链要求 Node.js 22+;日常 Web / Electron 开发仍可使用项目当前 Node.js 20+ 基线。

iOS:

npm run cap:sync:ios
npm run cap:open:ios

技术架构

层 主要技术
前端 React 18、TypeScript、Vite 5、Tailwind CSS、Tiptap 3、CodeMirror 6、Yjs、IndexedDB
后端 Node.js 20、Hono 4、WebSocket、better-sqlite3、FTS5、sqlite-vec、sharp
桌面端 Electron 33、electron-builder、electron-updater
移动端 Capacitor 8(Android / iOS)、ArkTS + ArkWeb(HarmonyOS)
存储与备份 SQLite、本地附件、S3 / Cloudflare R2 / MinIO、邮件与 WebDAV;PostgreSQL 处于适配验证阶段
开放能力 OpenAPI 3.0、TypeScript SDK、CLI、MCP Server、Webhook

项目结构

nowen-note/
├── frontend/       # React Web 与 Capacitor 客户端
├── backend/        # Hono API、数据库、同步与后台任务
├── electron/       # Electron 主进程与打包配置
├── packages/       # SDK、CLI、MCP 等开发者包
├── nowen-harmony/  # HarmonyOS ArkTS / ArkWeb 客户端
├── docs/           # 部署、教程与设计文档
└── scripts/        # 构建、迁移、打包与发布脚本

AI Skills:让 AI 理解和操作 Nowen Note

仓库提供两种用途不同的 Agent Skills。Skill 是 AI 助手的工作指引,不是自动连接服务器的插件,也不包含任何私人笔记或 API 密钥。

  • nowen-note-development:面向项目维护者和 AI 编码助手。包含项目定位、模块导航、Issue/PR 分析、UI 设计原则、同步/权限/备份安全边界、开发测试和交付验收规范。
  • nowen-note:面向知识库使用者。指导 AI 在授权范围内搜索、读取、创建和整理笔记,通过 MCP(优先)或已配置的 CLI 操作。

仓库同时提供 .claude/skills/ 镜像,便于支持该目录的客户端使用。将对应 Skill 放到 AI 客户端支持的 Skills 目录,或让编码助手先阅读对应 SKILL.md;不同客户端的自动发现规则以其文档为准。

如需 AI 实际读取或写入你的笔记,还需按 MCP 安装教程 连接 Nowen Note,并创建限制笔记本和操作范围的 Personal API Token;仅安装 Skill 不会赋予数据权限。

示例:让 AI “先阅读 nowen-note-development Skill,分析 Issue 对应代码、实现最小修复并列出验证结果”。

文档导航

当前边界

  • 数据库:SQLite 是当前默认且完整支持的生产方案;PostgreSQL 已有适配器、Schema 和部分双库测试,但尚未开放正式切换。
  • 格式互转:Markdown 与富文本互转会尽量保留主要结构,但高度定制的 HTML、复杂扩展节点或第三方语法仍可能需要人工检查。
  • AI 隐私:使用在线 Embedding 或在线大模型时,相关文本会发送到用户自行配置的服务商;敏感信息建议使用本地模型或不要存储。
  • WebDAV:用于上传已经完成的备份文件,不是实时同步、数据库运行目录或附件在线存储后端。
  • Docker 在线升级:只支持官方 Compose 受管部署,不支持任意容器、任意镜像或 NAS 应用包。
  • macOS:安装包若未经过 Apple 公证,首次打开可能需要执行 xattr 解除隔离,详见 桌面端教程。
  • 移动端:Android 维护最完整;iOS 与 HarmonyOS 的分发、签名和部分原生桥接能力仍受平台工具链限制。
  • 快速迭代:功能和安装包更新较快,请以 Releases、应用内版本信息和 CHANGELOG.md 为准。

版本与更新

README 维护稳定的产品定位、能力范围、近期版本和部署方式;完整提交历史请查看更新日志。

参与贡献

欢迎提交 Issue、功能建议和 Pull Request。提交代码前建议至少完成:

npm run build:all
(cd backend && npm test)
(cd frontend && npm run test:run)

反馈入口:

支持作者

如果 Nowen Note 对你有帮助,欢迎扫码请作者喝杯咖啡。感谢每一份支持,它会帮助项目持续维护和迭代。

微信赞赏 支付宝赞赏
微信赞赏码 支付宝赞赏码

也可以阅读 作者感言。

License

Nowen Note 基于 GNU General Public License v3.0 开源。