Skip to content
qwejunPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

NoteDock

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 check

部署到绿联 UGOS PRO

NoteDock 已经提供好 compose 文件,适合你的 x86 版 UGOS PRO。NAS 上只需要安装 Docker,不需要安装 Rust 或 Node.js。

方法一:在 UGOS 界面部署

  1. 下载仓库里的 deploy/docker-compose.yml。
  2. 在 UGOS 的 Docker / Compose 项目中新建项目,上传这个 compose 文件并启动。
  3. 第一次打开 Web 页面时,会出现“设置 NoteDock”页面。
  4. 在页面里设置访问密码,服务端会自动保存密码的安全哈希,以后直接登录即可。

compose 已固定使用 linux/amd64,会自动拉取公开镜像 ghcr.io/qwejun/notedock:latest,不需要手动填写密码环境变量。

方法二:SSH 到 NAS 部署

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。

目前还没完成

图片和附件上传、全文搜索、标签和文件夹、笔记导入等功能还在后续开发中。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages