SuperAPI AI 工具集

backend-setup

部署与运维

查看项目

更新于 10-20 01:55

技能介绍

backend-setup 是一个用于为应用创建本地 Drupal 后端的技能,后端基于后端模板构建。

使用前提 开始前需先运行 machine-check 技能中的 bash scripts/check-machine.sh,只有其 JSON 输出中 ready 为 true 时才能继续,否则应展示其报告内容并停止。需与用户约定项目文件夹:该文件夹必须尚不存在或为空,且位于本技能文件夹之外;需传入绝对路径,相对路径会从运行脚本的文件夹解析;其父文件夹必须已存在。DDEV 项目名就是文件夹名,若与现有 DDEV 项目重名会导致 ddev start 失败,应运行 ddev list 选择未占用的名称。

使用方式 运行本技能脚本:bash <this-skill-folder>/scripts/setup-backend.sh [--source <git URL or path>] [--ref <tag, branch or commit>] <project-folder>。--source 指定模板的 git URL 或本地路径,默认是 https://github.com/camoa/vibe-config-backend.git;--ref 指定模板的 tag、分支或提交,默认是 v0.1.0,即这些技能测试所用的模板版本,--ref main 获取最新模板,--help 会打印两个默认值。

主要能力 脚本按顺序执行:在指定 ref 上把模板克隆到目标文件夹,项目位于不跟踪任何远程的本地分支 main 上,模板远程名为 template,用户可自行添加 origin;运行 ddev start,模板的启动钩子会安装 Drupal,约需一分钟;检查登录页 /user/login 是否返回 200(模板可能对访客关闭首页,因此不检查首页);通过 scripts/write-agents-block.sh 把 vibe-config 规则块写入项目的 AGENTS.md;通过 scripts/install-drupal-skills.sh 把固定版本的 drupal-ddev 和 drupal-config-mgmt 技能安装到项目的 .claude/skills/;最后打印 Site URL: 和 Login link: 两行,需一并交给用户。管理员密码是随机的,之后可在项目文件夹运行 ddev drush user:login 登录。

对已搭建的文件夹再次运行脚本会跳过克隆并刷新 AGENTS.md,新的 AGENTS.md 是项目 git 中的未提交变更,可询问用户是否提交。One Line Installer 是获取 DDEV 的可选辅助工具,本技能不需要它。

模板消息处理 需留意 ddev start 输出中的两类信息。若出现安全公告行 WARNING: composer audit reported security advisories or abandoned packages; run composer audit,应展示给用户,并可询问是否运行 ddev composer update,仅在用户同意时执行。若出现安装未完成行 ERROR: the database has tables but the Drupal install did not finish. Recover with: ddev drush sql:drop -y && ddev restart,说明数据库已有表但 Drupal 未完成安装,可在项目文件夹执行 ddev drush sql:drop -y && ddev restart 恢复,重启会再次运行启动钩子在空数据库上安装 Drupal,之后再对同一文件夹运行安装脚本,脚本会跳过克隆、写入 AGENTS.md、安装技能并打印登录链接。

重置操作 用户要求重置时需区分三种情况:撤销近期更改可用 ddev snapshot restore --latest 恢复最新快照;仅针对本模板创建的站点做全新安装时,需先警告数据库中的全部内容和配置将丢失,用户同意后先运行 ddev snapshot,再运行 ddev drush sql:drop -y && ddev restart;删除项目应交给 safe-delete 技能,只有用户本人可删除项目,不应自行运行 DDEV 的删除命令,也不应自行移除项目文件夹。

失败处理 修复原因后对同一文件夹再次运行安装脚本,会跳过克隆并补完缺失步骤。脚本出错时会停止并保留文件夹和 DDEV 项目现状;例外是 --ref 指定的 tag、分支或提交在模板中不存在时,脚本会删除刚做的克隆,需用有效 --ref 对同一文件夹重试。ddev 缺失时应运行 machine-check 技能并按提示处理;文件夹存在且非空应另选文件夹或询问用户;ddev start 失败应展示输出,与其他 DDEV 项目重名是常见原因;登录页不返回 200 时应展示状态码和 ddev start 输出。

适用场景与限制 适用于需要为应用快速获得本地 Drupal 后端的场景,依赖 DDEV 和可用模板仓库,具体收费、平台支持等资料暂未提供。