Reviewed-on: #50
啡跃 Endoleap
啡跃把笔记、参考素材和创作工作台放在同一个 Next.js 应用里。应用位于 apps/waterfall-wiki,共享主题与品牌资源位于 packages/brand。
| 入口 | 用途 |
|---|---|
/ |
浏览内容,打开 /explore/<id> 查看笔记 |
/guide |
浏览指导文档 |
/graphic |
图文排版 |
/infinite_canvas |
无限画布 |
/api?agent_mode=True |
业务 API 目录 |
/studio/api |
Studio API 目录 |
运行
准备 Node.js 24、pnpm 11.25.0、PostgreSQL、S3 兼容对象存储和 FFmpeg。参考 环境变量示例,将变量注入 Web、初始化和媒体 worker 进程。邮箱注册与找回密码需要可用的 SMTP 服务。
在仓库根目录运行 pnpm install --frozen-lockfile 和 pnpm build。然后在 apps/waterfall-wiki 目录准备数据库和存储,初始化管理员认证并启动 Web。
node dist/bootstrap.cjs
node dist/auth-cli.cjs init
pnpm start
媒体 worker 在同一目录作为独立进程运行 node dist/worker.cjs。绑定管理员验证器时,在远程交互终端执行 node dist/auth-cli.cjs qr。已有实例复用原数据库、对象存储和私有认证文件。
Monorepo 与 Turborepo
仓库在现有 pnpm workspace 上接入 Turborepo,无需运行面向新项目的 npx create-turbo@latest。应用仍位于 apps/waterfall-wiki,源码品牌包仍位于 packages/brand;子包脚本和应用产物路径保持原样。依赖统一锁定在根目录 pnpm-lock.yaml,安装从仓库根目录执行。
根目录命令由 Turbo 调度:pnpm dev 启动开发任务,pnpm dev:waterfall-wiki 仅启动 Wiki,pnpm build 构建应用及 worker/CLI,pnpm typecheck 生成 Next.js 类型并检查 TypeScript。pnpm start 继续直接启动现有应用。也可以在子包目录使用原有命令。
锁文件合并保留应用原有依赖解析。唯一重叠差异是 @tailwindcss/postcss 的间接 PostCSS 依赖:品牌包原为 8.5.32,现在沿用应用的 8.5.31;品牌包直接声明的 PostCSS 8.5.6 不变。
迁移阶段所有任务禁用缓存,根命令使用 --env-mode=loose 透传既有环境变量,保留品牌资源准备步骤的每次执行。后续启用缓存前,需明确环境变量输入、跨包资源和所有输出。当前不配置 CI/CD,也不自动发布。
仅检查任务计划、不执行编译或生成应用产物时,可运行 pnpm build --dry=json 和 pnpm typecheck --dry=json。完整构建与运行验证另行执行。