用途
Railway 技能用于在 railway.com 上部署和管理应用。当用户要求部署、托管或将应用发布到 Railway,或向 Railway 添加数据库、服务时使用。
CLI 基础
Railway CLI 为所有命令提供内置帮助:
railway --help
railway <command> --help
重要:CLI 具有在自动化环境中无法工作的交互式菜单。应始终显式提供所有必需参数以避免提示(例如 --workspace、--service、--name)。
常见命令
创建项目(始终指定 workspace 以避免提示):
railway init --name "my-project" --workspace "Workspace Name"
从模板部署(从 railway.com 上模板 URL 获取 ID):
railway init --template
添加 PostgreSQL 数据库:
railway add --database postgres
为应用添加空服务:
railway add --service api
将本地目录链接到服务:
railway service link api
设置环境变量(数据库 URL 使用引用):
railway variables --service api --set 'DATABASE_URL=${{Postgres.DATABASE_URL}}'
部署:
railway up
生成公开域名:
railway domain --service api
查看日志:
railway logs --service api
railway logs --service api --build # build logs
SSH 进入运行中的服务:
railway ssh --service api
更多命令
以下命令较不常见但有用,运行 railway <command> --help 查看详情:
railway status --json # 完整项目概览(服务、部署、域名)
railway metrics --service api # CPU、内存、网络、磁盘使用情况
railway redeploy --service api # 重新部署最新部署
railway restart --service api # 重启而不重新部署
railway down --service api # 使服务下线
变量接线
使用 ${{ServiceName.VARIABLE}} 跨服务引用变量:
# 将数据库连接到应用
railway variables --service api --set 'DATABASE_URL=${{Postgres.DATABASE_URL}}'
railway variables --service api --set 'REDIS_URL=${{Redis.REDIS_URL}}'
# 将后端 URL 连接到前端
railway variables --service web --set 'API_URL=${{api.RAILWAY_PUBLIC_DOMAIN}}'
Railway 还提供内置变量:RAILWAY_PUBLIC_DOMAIN、RAILWAY_PRIVATE_DOMAIN、RAILWAY_PROJECT_ID、RAILWAY_ENVIRONMENT_NAME 等。
GraphQL API
对于 CLI 不可用的操作,Railway 提供 GraphQL API:
- 端点:https://backboard.railway.com/graphql/v2
- 认证令牌:~/.railway/config.json → user.token(用作 Bearer token)
- API 文档:https://docs.railway.com/api/llms-docs.md
始终将应用绑定到 0.0.0.0:$PORT —— Railway 会注入 PORT 变量。
日志(Python)
Railway 解析 stdout 上的单行 JSON,按 level 字段着色,并可通过 Log Explorer 中的 @field:value 查询所有 JSON 字段。完整的设置指南、模式和陷阱见 logging-python.md。
适用场景
适用于需要将应用部署到 Railway 平台、管理 Railway 项目与服务、配置环境变量与数据库连接、查看部署日志与指标等场景。
限制
CLI 交互式菜单在自动化环境中不可用,需显式提供全部参数。CLI 未提供的操作需改用 GraphQL API。应用须绑定 0.0.0.0:$PORT。