自部署多端同步:服务端、实时协作、口令登录与油画加载动画

- 新增 Node 服务端(Hono + Hocuspocus + node:sqlite),数据保存在服务器
- 基于 Yjs 的多端实时同步,本机 IndexedDB 离线缓存,撤销只针对本机操作
- 空间(标签)有独立地址,增删改通过接口同步到所有设备
- 口令登录(签名 Cookie 会话、登录限流、同源校验)
- 图片上传到服务器,过大照片上传前自动压缩
- 历史版本(自动/手动保存、一键恢复)、跨空间搜索、在线设备
- 随机油画加载动画(Painting Loaders,本地收录 p5 / p5.brush)
- 选中样式与拖拽性能优化:拖动结束后才同步位置
- Docker / docker-compose 部署,README 与 CLAUDE.md 更新
This commit is contained in:
吴璨
2026-10-21 18:09:03 +08:00
parent c36123eb82
commit fad9760265
64 changed files with 6656 additions and 1103 deletions
+14 -4
View File
@@ -4,9 +4,12 @@
"private": true,
"type": "module",
"scripts": {
"dev": "vite",
"dev": "run-p dev:server dev:web",
"dev:web": "vite",
"dev:server": "node --experimental-strip-types --disable-warning=ExperimentalWarning --env-file-if-exists=.env --watch server/index.ts",
"start": "node --experimental-strip-types --disable-warning=ExperimentalWarning --env-file-if-exists=.env server/index.ts",
"build": "run-p type-check \"build-only {@}\" --",
"preview": "vite preview",
"preview": "run-s build-only start",
"test:unit": "vitest",
"test:e2e": "playwright test",
"build-only": "vite build",
@@ -17,6 +20,10 @@
"format": "prettier --write --experimental-cli src/"
},
"dependencies": {
"@hocuspocus/extension-database": "4.7.1",
"@hocuspocus/provider": "4.7.1",
"@hocuspocus/server": "4.7.1",
"@hono/node-server": "2.1.5",
"@lucide/vue": "^1.31.0",
"@vue-flow/background": "^1.3.2",
"@vue-flow/controls": "^1.1.3",
@@ -24,10 +31,13 @@
"@vue-flow/minimap": "^1.5.4",
"@vue-flow/node-resizer": "^1.5.1",
"@vueuse/core": "^14.4.0",
"dexie": "^4.4.4",
"crossws": "0.4.15",
"hono": "4.13.13",
"pinia": "^4.0.2",
"vue": "^3.5.40",
"vue-router": "^5.2.0"
"vue-router": "^5.2.0",
"y-indexeddb": "9.0.12",
"yjs": "13.6.33"
},
"devDependencies": {
"@playwright/test": "^1.61.1",