关于 railway
通过 Railway CLI 管理部署和基础设施的命令流程指南,适用于需要检查项目状态、部署应用、查看日志或管理环境变量的开发者。它也规定了预检查、敏感值遮盖和破坏性操作确认步骤。
主要功能
- 01检查项目、服务和最近部署状态
- 02部署、重部署或重启服务
- 03筛选并汇总部署日志
- 04查看、设置或删除环境变量
- 05管理项目链接、域名及数据库连接
- 06破坏性操作前要求确认
适用场景
- 01检查 Railway 服务健康状态
- 02部署更新并核对结果
- 03排查构建或运行日志中的问题
- 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"
自动恢复
运行任何命令前,先检查上方的预检状态:
- 如果显示“command not found”:运行
npm install -g @railway/cli - 如果显示“Not logged in”:告知用户手动运行
railway login(需要浏览器) - 如果显示“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
然后等待并检查:
- 运行
railway deployment list --limit 1获取状态 - 如果为 SUCCESS,获取域名 URL 并验证其是否可访问:
curl -s -o /dev/null -w "%{http_code}" <domain> - 如果为 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)”
响应格式
始终提供:
- 摘要:一行状态(✓ 成功 / ✗ 失败 / ⚠ 警告)
- 详情:以清晰的表格或列表呈现相关信息
- URL:如适用,提供公开 URL
- 后续步骤:如果出现故障,建议修复方法
响应示例
状态检查:
✓ 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