用途:在 Cursor Cloud VM 上为本仓库搭建并启动本地开发环境,覆盖主应用、数据库、缓存与环境配置。
主要服务与端口:主应用 apps/web 为 Next.js 16(Turbopack),端口 3000;PostgreSQL 16 端口 5432,由 docker-compose.dev.yml 启动;Redis 7 端口 6380,serverless-redis-http 代理端口 8079。
使用方式:启动 Docker 守护进程 sudo dockerd &>/dev/null &,用 docker info 确认;在仓库根目录运行 docker compose -f docker-compose.dev.yml up -d 启动数据库,若 /var/run/docker.sock 权限不足改用 sudo docker compose。随后 cd apps/web && pnpm prisma:migrate:local 执行 Prisma 迁移(会加载 .env.local,勿用裸 prisma migrate dev);最后在仓库根目录 pnpm dev 启动开发服务器。
环境文件:应用读取 apps/web/.env.local。需额外设置 DEFAULT_LLM_PROVIDER(如 openai,缺失会启动崩溃)、GOOGLE_CLIENT_ID/SECRET(env.ts 强校验,可用 Google 模拟器凭证)、UPSTASH_REDIS_TOKEN=dev_token(匹配 compose 中 SRH_TOKEN 默认值);若设置 MICROSOFT_CLIENT_ID 则需 MICROSOFT_WEBHOOK_CLIENT_STATE。本地可用 Google 模拟器:GOOGLE_CLIENT_ID=emulate-google-client.apps.googleusercontent.com、GOOGLE_CLIENT_SECRET=emulate-google-secret、GOOGLE_BASE_URL=http://localhost:4002,并以 docker compose -f docker-compose.dev.yml --profile google-emulator up -d 启动。
测试:pnpm test 运行 Vitest 单元/集成测试(不需数据库或外部服务);pnpm lint 运行 Biome,仓库已有告警属预期;pnpm test-ai 需要真实 LLM API 密钥,默认跳过。
限制:该 VM 为 Docker-in-Docker,需 fuse-overlayfs 存储驱动和 iptables-legacy,快照恢复后须手动确认 Docker 运行;可能未预装 Compose v2 插件,缺失时按官方发布地址安装到 /usr/local/lib/docker/cli-plugins。首次经 Google 模拟器登录后会强制进入引导向导,部分按钮在无头/自动化环境下需用 JavaScript click() 调用。具体收费、平台支持范围等暂未提供。