Railway Templates 是一个用于在 Railway 平台模板市场中搜索和部署服务的技能。它的使用场景包括:用户要求“添加 Postgres”“添加 Redis”“添加数据库”;用户要求添加 Ghost、Strapi、n8n 或其他服务;用户希望查找某类用例(如 CMS、存储、监控)的模板;用户询问“有哪些可用模板”;用户希望部署一个预配置的服务。
常见模板代码按类别划分。数据库类包括 PostgreSQL(postgres)、Redis(redis)、MySQL(mysql)、MongoDB(mongodb);CMS 类包括 Ghost(ghost)、Strapi(strapi);存储类包括 Minio(minio);自动化类包括 n8n(n8n);监控类包括 Uptime Kuma(uptime-kuma)。其他模板可通过搜索查询获取。
前置条件方面,需要先获取项目上下文:运行 railway status --json,并提取 id(项目 ID)和 environments.edges[0].node.id(环境 ID)。随后获取工作区 ID,使用 railway-api.sh 执行查询 getWorkspace,传入 projectId,返回 workspaceId。
搜索模板时,可列出可用模板并附带可选过滤条件,query templates 支持 first、verified 参数。参数说明:first 为 Int 类型,表示结果数量(最大约 100);verified 为 Boolean 类型,表示仅返回已验证模板;recommended 为 Boolean 类型,表示仅返回推荐模板。存在速率限制,每分钟 10 个请求,不要频繁搜索。
获取模板详情时,按 code 拉取指定模板,返回 id(部署所需的模板 ID)和 serializedConfig(部署所需的服务配置)。
部署模板分两步。第一步获取模板,按 code 查询 template,得到 id 与 serializedConfig;第二步部署到项目,使用 mutation deployTemplate 调用 templateDeployV2,输入需包含 templateId(来自第一步的 TEMPLATE_ID_FROM_STEP_1)、serializedConfig(来自第一步的 SERIALIZED_CONFIG_FROM_STEP_1)、projectId、environmentId、workspaceId,返回 projectId 与 workflowId。注意:serializedConfig 是模板查询返回的确切 JSON 对象,而不是字符串。
可组合性方面:连接服务可使用 railway-environment 技能添加变量引用;查看已部署服务可使用 railway-service 技能;查看日志可使用 railway-deployment 技能;添加域名可使用 railway-domain 技能。