NoteDock 是一个放在 Windows 桌面上的悬浮记事本。
笔记保存在 NAS 服务端,电脑上的桌面窗口和浏览器都可以打开、编辑。电脑暂时断网时也能继续写,网络恢复后会自动同步。
- Windows 桌面悬浮窗口,随时打开记录内容
- 笔记有独立的标题和正文,可以新建、切换、搜索
- 浏览器访问 Web 端,远程查看和编辑笔记
- 桌面端和 Web 端使用同一份数据
- 断网时可以继续编辑,联网后自动同步
- 支持窗口置顶、透明度、点击穿透和桌面置顶某一篇笔记
- 支持基础文字格式:标题、粗体、斜体、删除线、列表、引用、文字颜色和高亮
- 登录信息保存在本机,不需要每次启动都重新登录
apps/desktop Windows 桌面端界面
apps/web 浏览器 Web 端
packages/editor 桌面端和 Web 端共用的编辑器
crates/notedock-server NAS 上运行的服务端
crates/notedock-desktop Windows 桌面端的 Rust 部分
crates/notedock-api 前后端共用的数据定义
deploy Docker 镜像和 compose 配置
需要先安装 Node.js、pnpm、Rust 和 Docker(Docker 只在本地跑服务端时需要)。
pnpm install启动本地服务端:
NOTEDOCK_PASSWORD=dev-password-123 \
NOTEDOCK_BIND=127.0.0.1:8080 \
NOTEDOCK_DB=data/dev.db \
cargo run -p notedock-server启动 Web 端:
pnpm --filter @notedock/web dev启动桌面端界面:
pnpm --filter @notedock/desktop dev常用检查:
cargo test --workspace
pnpm -r checkNoteDock 已经提供好 compose 文件,适合你的 x86 版 UGOS PRO。NAS 上只需要安装 Docker,不需要安装 Rust 或 Node.js。
- 下载仓库里的
deploy/docker-compose.yml。 - 在 UGOS 的 Docker / Compose 项目中新建项目,上传这个 compose 文件并启动。
- 第一次打开 Web 页面时,会出现“设置 NoteDock”页面。
- 在页面里设置访问密码,服务端会自动保存密码的安全哈希,以后直接登录即可。
compose 已固定使用 linux/amd64,会自动拉取公开镜像 ghcr.io/qwejun/notedock:latest,不需要手动填写密码环境变量。
git clone https://github.com/qwejun/notedock.git
cd notedock
docker compose -f deploy/docker-compose.yml pull
docker compose -f deploy/docker-compose.yml up -d然后打开 Web 页面,第一次使用时设置密码。
默认端口是 8080,浏览器打开 http://你的IPv6域名:8080。需要换端口时,在 UGOS 的环境变量中添加:
NOTEDOCK_PORT=18080数据保存在 Docker volume notedock-data 中。升级时再次执行 pull 和 up -d 即可。
仓库里有三条 GitHub Actions 工作流,运行记录都在仓库的 Actions 页面。
| 工作流 | 文件 | 触发时机 | 产物 |
|---|---|---|---|
| 检查 | .github/workflows/ci.yml |
每次推送和 PR | 无(类型检查 + 服务端测试) |
| 服务端镜像 | .github/workflows/docker.yml |
推送 main、打 v* 标签 |
ghcr.io/qwejun/notedock:latest |
| 桌面端安装包 | .github/workflows/desktop.yml |
推送 main、打 v* 标签、手动触发 |
NoteDock_x.y.z_x64_en-US.msi |
推送到 main 之后,在 Actions 页面点开最新一次「Package Windows desktop app」,从 Artifacts 里下载 notedock-windows-msi。
打标签时会额外创建一个 GitHub Release,安装包直接挂在 Release 上,不用登录也能下载:
git tag v0.1.1
git push origin v0.1.1同一个标签也会触发服务端镜像构建,所以桌面端和 NAS 上的服务端版本能对齐。
pnpm --filter @notedock/desktop build
cd crates/notedock-desktop && pnpm exec tauri build安装包在 target/release/bundle/msi/。
当前部署按需求使用 HTTP,没有 HTTPS。如果你从外网登录 NAS,登录密码、令牌和笔记内容都是明文经过公网的,路径上的任何一跳都能读到,也能改。这在可信的家庭内网里可以接受,跨网访问则不建议长期这样用。
绿联 UGOS PRO 自带反向代理,成本最低的做法是让它在前面终结 TLS:给域名申请证书,反代到 notedock 容器的 8080,然后只对外开放 443。桌面端的 HTTP 客户端用的是 rustls,换成 https:// 和 wss:// 不需要改代码。
如果只有公网 IPv6,只有 IPv4 网络的电脑可能无法访问,需要额外提供 IPv4 入口或使用 Cloudflare Tunnel。
图片和附件上传、全文搜索、标签和文件夹、笔记导入等功能还在后续开发中。