mcpField
R
railway

railway

github.com/mshumer云与 DevOps30151 次安装40 周前更新
代码仓库

关于 railway

通过 Railway CLI 管理部署和基础设施的命令流程指南,适用于需要检查项目状态、部署应用、查看日志或管理环境变量的开发者。它也规定了预检查、敏感值遮盖和破坏性操作确认步骤。

主要功能

  1. 01检查项目、服务和最近部署状态
  2. 02部署、重部署或重启服务
  3. 03筛选并汇总部署日志
  4. 04查看、设置或删除环境变量
  5. 05管理项目链接、域名及数据库连接
  6. 06破坏性操作前要求确认

适用场景

  1. 01检查 Railway 服务健康状态
  2. 02部署更新并核对结果
  3. 03排查构建或运行日志中的问题
  4. 04切换项目或管理服务变量

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mshumer/claude-skill-railway --skill railway

安装后在 Claude Code 中输入/railway确认已加载。

详细介绍

Railway CLI 技能

使用 Railway CLI 管理 Railway 部署和基础设施。

预检

当前状态: !railway status 2>&1 || echo "NOT_LINKED"

自动恢复

运行任何命令前,先检查上方的预检状态:

  1. 如果显示“command not found”:运行 npm install -g @railway/cli
  2. 如果显示“Not logged in”:告知用户手动运行 railway login(需要浏览器)
  3. 如果显示“NOT_LINKED”或“No project linked”:
    • 运行 railway list 查看可用项目
    • 询问用户要关联哪个项目,或根据 package.json 名称自动检测
    • 使用 railway link -p <project-id> 关联项目

命令路由

根据 $ARGUMENTS 执行相应的工作流:

"status"(无参数时的默认值)
railway status
railway domain
railway deployment list --limit 1

报告:项目信息、URL,以及最近一次部署的状态和时间。

"logs" [options]

解析自然语言选项:

  • "errors" → --filter "@level:error"
  • "last hour" / "1h" → --since 1h
  • "build" → --build
  • 类似 "100" 的数字 → --lines 100

默认值:railway logs --lines 30

总结输出内容,突出显示错误、警告或有意义的模式。

"deploy" / "up"
railway up

然后等待并检查:

  1. 运行 railway deployment list --limit 1 获取状态
  2. 如果为 SUCCESS,获取域名 URL 并验证其是否可访问:curl -s -o /dev/null -w "%{http_code}" <domain>
  3. 如果为 FAILED,显示构建日志:railway logs --build --lines 50
"redeploy"
railway redeploy

重新部署但不重新构建。适用于环境变量变更。

"restart"
railway restart

重启服务,不进行构建或重新部署。

"vars" / "env" [action]
railway variables

重要:显示变量时,请对敏感值进行脱敏处理:

  • API 密钥:显示前 8 个字符 + "..."
  • 密码:显示 "********"
  • 令牌:显示前 8 个字符 + "..."

设置变量:railway variables set KEY=value 删除变量:railway variables delete KEY(请先征求确认!)

"deployments" / "history"
railway deployment list --limit 10

以表格形式展示:ID(简短形式)、状态、距今时间、提交说明(截断)

"domain"
railway domain

显示公开 URL。如果不存在,则询问是否创建一个。

"health"
railway domain

然后 curl 域名以检查 HTTP 状态:

curl -s -o /dev/null -w "%{http_code}" -m 10 <domain-url>

报告服务是否健康(2xx)、不健康或无法访问。

"open"
railway open

在浏览器中打开 Railway 控制台。

"switch "

按名称切换到其他 Railway 项目(模糊匹配)。

# List all projects
railway list

查找与名称匹配的项目 ID,然后:

railway link -p <project-id>

通过运行 railway status 确认切换。

"db" / "connect"

连接到项目的数据库 Shell(Postgres、MongoDB、Redis 等)

railway connect

如果存在多个数据库,Railway 会提示选择其中一个。

"link"

列出可用项目并关联其中一个:

railway list

以编号列表形式显示项目。询问用户要关联哪个,然后:

railway link -p <project-id>

安全防护

执行破坏性操作前,请先征求确认:

  • railway down - 移除部署
  • railway variables delete - 删除环境变量
  • railway unlink - 取消关联项目

格式:“这将[操作]。确定吗?(y/n)”

响应格式

始终提供:

  1. 摘要:一行状态(✓ 成功 / ✗ 失败 / ⚠ 警告)
  2. 详情:以清晰的表格或列表呈现相关信息
  3. URL:如适用,提供公开 URL
  4. 后续步骤:如果出现故障,建议修复方法

响应示例

状态检查:

✓ MyApp is deployed and healthy

| Project     | MyApp                                    |
| Environment | production                               |
| Service     | MyApp                                    |
| URL         | https://myapp-production.up.railway.app  |
| Last deploy | 2 hours ago (SUCCESS)                    |

部署后:

✓ Deployment successful

Build completed in 45s
URL: https://myapp-production.up.railway.app
Health check: 200 OK

出错时:

✗ Deployment failed

Build error at line 23: Module not found 'xyz'

Suggested fix: Run `npm install xyz` and redeploy

评论

支持 Markdown