用途:在 git worktree 中启动 Karakeep 开发环境(web 与 workers),并登录预置的种子用户,适合需要启动应用或验证改动的场景。
主要能力:脚本 pnpm dev:worktree(scripts/dev-worktree.sh)用于处理同一机器上多个 worktree 各自 dev server 的端口冲突,应优先于 pnpm web / pnpm workers 使用。它会按需执行 pnpm install、写入 .env(随机 NEXTAUTH_SECRET、绝对 DATA_DIR)、将 .env 软链到 apps/web、apps/workers、packages/db,并应用种子快照到 data/;迁移主库与队列库;在 3100–3199 中选取首个空闲端口并设置 NEXTAUTH_URL;先启动 workers,再以 WATCHPACK_POLLING=true 启动 next dev,等待 /signin 返回 200,最后打印 URL、种子用户与日志路径。
使用方式:在 worktree 根目录后台运行 pnpm dev:worktree >| $TMPDIR/karakeep-$(basename $PWD)-dev.out 2>&1,再轮询日志等待就绪。可用 PORT、DEV_HOST、WATCHPACK_POLLING 覆盖;pnpm dev:worktree setup 只做安装与迁移。停止时终止后台任务即可,脚本会一并停止两个服务。登录:访问 http://localhost:$PORT/signin,种子用户 test1@example.com(admin)、test2@example.com、test3@example.com,密码均为 test1234。
限制:web 改动热重载,worker 改动需重启脚本;浏览器须使用 NEXTAUTH_URL 中的主机,否则登录跳转错误且 HMR/字体被 Next 拦截;cookie 按主机而非端口共享。默认未启用 Meilisearch(无 MEILI_ADDR 时搜索禁用)、爬取为 browserless 模式、无 OPENAI_API_KEY 故无自动打标。沙箱中 tsx CLI 的 IPC socket 可能被拦截,需改用 node --import tsx;原生文件监听被拦截时保持 WATCHPACK_POLLING=true。不要从主检出复制 .env 或 data/。