name: railway-templates description: 从Railway的模板市场搜索和部署服务。当用户想要添加模板中的服务、查找特定用例的模板或部署工具如Ghost、Strapi、n8n、Minio、Uptime Kuma等时使用。对于数据库(Postgres、Redis、MySQL、MongoDB),优先使用railway-database技能。 version: 1.0.0 author: Railway license: MIT tags: [Railway, 模板, 市场, 部署, CMS, 自动化, 基础设施] dependencies: [railway-cli] allowed-tools: Bash(railway:*)
Railway模板
从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- 项目IDenvironments.edges[0].node.id- 环境ID
获取工作区ID:
bash <<'SCRIPT'
${CLAUDE_PLUGIN_ROOT}/skills/lib/railway-api.sh \
'query getWorkspace($projectId: String!) {
project(id: $projectId) { workspaceId }
}' \
'{"projectId": "PROJECT_ID"}'
SCRIPT
搜索模板
列出可用模板,可选过滤器:
bash <<'SCRIPT'
${CLAUDE_PLUGIN_ROOT}/skills/lib/railway-api.sh \
'query templates($first: Int, $verified: Boolean) {
templates(first: $first, verified: $verified) {
edges {
node {
name
code
description
category
}
}
}
}' \
'{"first": 20, "verified": true}'
SCRIPT
参数
| 参数 | 类型 | 描述 |
|---|---|---|
first |
Int | 结果数量(最大约100) |
verified |
Boolean | 仅已验证模板 |
recommended |
Boolean | 仅推荐模板 |
速率限制
每分钟10个请求。不要滥用搜索。
获取模板详情
通过代码获取特定模板:
bash <<'SCRIPT'
${CLAUDE_PLUGIN_ROOT}/skills/lib/railway-api.sh \
'query template($code: String!) {
template(code: $code) {
id
name
description
serializedConfig
}
}' \
'{"code": "postgres"}'
SCRIPT
返回:
id- 模板ID(部署所需)serializedConfig- 服务配置(部署所需)
部署模板
步骤1:获取模板
bash <<'SCRIPT'
${CLAUDE_PLUGIN_ROOT}/skills/lib/railway-api.sh \
'query template($code: String!) {
template(code: $code) {
id
serializedConfig
}
}' \
'{"code": "postgres"}'
SCRIPT
步骤2:部署到项目
bash <<'SCRIPT'
${CLAUDE_PLUGIN_ROOT}/skills/lib/railway-api.sh \
'mutation deployTemplate($input: TemplateDeployV2Input!) {
templateDeployV2(input: $input) {
projectId
workflowId
}
}' \
'{
"input": {
"templateId": "TEMPLATE_ID_FROM_STEP_1",
"serializedConfig": SERIALIZED_CONFIG_FROM_STEP_1,
"projectId": "PROJECT_ID",
"environmentId": "ENVIRONMENT_ID",
"workspaceId": "WORKSPACE_ID"
}
}'
SCRIPT
重要: serializedConfig 是模板查询中的确切JSON对象,不是字符串。
组合性
- 连接服务:使用railway-environment技能添加变量引用
- 查看部署服务:使用railway-service技能
- 检查日志:使用railway-deployment技能
- 添加域名:使用railway-domain技能