ylapp-local-bootstrap

Use for: 新电脑拉取 ylapp 后一键完成本地部署与启动。Triggers: 本地部署, 本地启动, 新电脑环境初始化, 启动 ylapp, local bootstrap, run ylapp locally.

Nameylapp-local-bootstrap
Version1.1.0
Authorseekthought
Tagsbootstrap local-dev ylapp setup startup
CompatibilityRequires git, Go (with GOPROXY), Node.js (>=18), pnpm, buf, protoc-gen-go, protoc-gen-connect-go.

安装

skillctl install -r skillhub ylapp-local-bootstrap

YLAPP Local Bootstrap Skill

用于在新电脑上从零完成 ylapp 本地运行。执行目标:

Source of Truth

启动流程以仓库根目录 README.md 的"本地开发部署"章节为准。如果本 Skill 与 README 存在冲突,以 README 为准。

Safety Rules

  1. 禁止在任何输出中打印完整的敏感信息(数据库连接串、密钥等),必要时仅展示脱敏版本(如 postgres://user:***@host/db)。
  2. 禁止将环境变量写入任何文件(.env、.bashrc、脚本、README 等),也不得提交到仓库。
  3. 仅在当前终端会话通过 export(Bash)或 $env:(PowerShell)设置环境变量
  4. 不修改业务代码来绕过环境变量缺失。
  5. 不自动提交(git commit/push)任何变更

Preconditions

在仓库根目录执行。先检查以下工具是否可用:

git --version
go version
node -v
pnpm -v

如果任一工具缺失,立即停止,汇总缺失项并告知用户需要先安装,给出安装建议后等待用户确认再继续。

环境准备参考

Bootstrap Workflow

Step 1: 拉取与初始化

代码已拉取到本地时,在仓库根目录依次执行:

git submodule init
git submodule update
pnpm install
pnpm buf generate
go mod tidy
go mod download

每步完成后确认无报错再继续。如果 pnpm buf generate 失败,检查是否需要安装 protoc-gen-go 等代码生成工具。

Step 2: 询问要启动的组件

询问用户希望启动哪些组件(支持多选):

组件 说明
gosvc Go 后端服务
fe 前端开发服务器
demobase Demo 数据库服务
svc Node.js 后端服务

Step 3: 收集环境变量

仅在所选组件需要时才询问对应变量

组件 所需环境变量 说明
gosvc YL_CH_ADDR ClickHouse 地址
svc DEMOBASE_DATABASE_URL 数据库连接串
demobase DEMOBASE_DATABASE_URL(可选) 如需数据库功能时询问

交互规则:

Step 4: 启动组件

启动 gosvc

工作目录:仓库根目录

# Bash
export YL_CH_ADDR="<用户输入>"
go run ./gosvc server
# PowerShell
$env:YL_CH_ADDR="<用户输入>"; go run ./gosvc server

建议使用 run_in_terminalmode=async

启动 fe

工作目录:packages/fe

pnpm dev

建议 mode=async

启动 demobase

工作目录:packages/demobase

pnpm db:gen
pnpm run build
pnpm dev

其中 pnpm dev 建议 mode=async,前两步需顺序执行完成后再启动。

启动 svc

工作目录:packages/svc

# Bash
export DEMOBASE_DATABASE_URL="<用户输入>"
pnpm db:gen
pnpm dev
# PowerShell
$env:DEMOBASE_DATABASE_URL="<用户输入>"; pnpm db:gen; pnpm dev

pnpm dev 建议 mode=async

Step 5: 验证

启动后对每个组件执行检查:

  1. 读取异步终端输出,确认无立即崩溃
  2. 对失败的组件,报告:
    • 失败命令
    • 关键报错信息(前后数行上下文)
    • 最可能原因(缺环境变量 / 端口占用 / 依赖未安装 / 数据库不可达)

Step 6: 输出结果

执行完成后给用户简要清单:

✅ 成功启动: gosvc, fe
❌ 启动失败: svc — 原因: DEMOBASE_DATABASE_URL 未设置
⏭️ 未启动: demobase — 用户跳过

下一步建议:
- svc: 请提供 DEMOBASE_DATABASE_URL 后重试

包含: