TL;DR:推送代码到 GitHub,在 railway.app 上连接仓库,Railway 会自动检测你的技术栈并开始构建。如果想通过 LingCode 一键部署,只需将 Railway 令牌填入 Magic Deploy → Railway 并点击"Ship"即可。大多数技术栈无需 Dockerfile。
Railway 就是把 Heroku 的简洁性加上实时日志、2020 年代的定价透明度,并且不让用户去写 Dockerfile 的产物。指向一个 GitHub 仓库,三十秒后你的应用就以真实 URL 上线了。
早期 Heroku 的魔力在于你完全不需要思考。git push heroku main,dyno 启动,URL 生效,几分钟内你就能专注于真正要解决的问题,而不是花几个小时折腾部署。后来 Heroku 变贵了,取消了免费层,多年停滞不前。市场注意到了,一批替代品随之涌现。其中,Railway 最干净地重现了"那种魔力",同时解决了 Heroku 留下的问题。
Railway 的卖点是:连接一个 GitHub 仓库,它会检测项目类型(Node、Python、Go、Ruby、Rust 等),自动完成构建,部署上线,你就得到了一个 URL。整个流程只需十五秒的界面操作加上构建时间。如果应用需要数据库,从侧边栏添加 Postgres 或 Redis 即可,连接字符串会自动作为环境变量注入。如果需要后台 Worker,再添加一个服务就行。它的心智模型是"一个项目就是一组共享环境变量和私有网络的服务集合"——这和真实应用的架构高度吻合,还不用去写 yaml 文件。
代价是平台的强主张。Railway 会选择构建路径,你可以覆盖,但这样做会有一种"逆着平台走"的感觉。定价按用量计费(按 CPU 时间和内存时间收费,而非固定月费),用量低时非常划算,用量高时可能出现意外费用。对于大多数独立项目和小型业务来说,Railway 是通往"像生产环境一样的基础设施"最经济的路径。但对于有特殊需求的企业工作负载,这种强主张就会成为阻碍。
用 GitHub 账号在 railway.com 注册。Railway 会申请读取你仓库的权限——如果不想授权所有仓库,可以只选特定仓库。免费试用提供 $5 的使用额度,之后可以选择合适的套餐。
Railway 的定价在 2023 年有所调整——旧意义上的免费层已不存在,但 $5/月的 Hobby 套餐是实打实的,$5 额度足够测试好几个小时。
点击 New Project → Deploy from GitHub repo,选择仓库和分支(默认为 main)。Railway 扫描仓库后自动检测技术栈(例如"这是一个 Next.js 应用"),并开始构建。
30 到 90 秒内,首次部署就会上线。Railway 会生成一个类似 my-app-production.up.railway.app 的公开 URL,默认启用 HTTPS。点击它,你的应用应该就能正常加载。
railway.toml,或在服务设置中手动指定启动命令。对于常见技术栈,检测通常是正确的;Monorepo 或非常规结构可能需要手动覆盖。
在 Railway 项目视图中,点击空白区域并选择 Add Service → Database,然后选择 Postgres、MySQL、MongoDB 或 Redis。
Railway 在几秒内完成数据库的创建,并在项目的私有网络中将连接字符串以环境变量的形式暴露——你的应用服务会自动获得 DATABASE_URL,无需手动设置。该数据库仅限项目内部访问,公网无法直接连接。
在服务的 Variables 标签页中设置应用所需的环境变量(SECRET_KEY、第三方 API 密钥等)。有两种常用模式值得了解:
${{ Postgres.DATABASE_URL }} 可以将数据库连接字符串导入应用的环境变量,而无需复制值本身。变量在存储时会加密,控制台默认以遮码方式显示。
点击你的服务,进入 Settings → Networking,点击 Custom Domain,输入你的域名。Railway 会显示一个 CNAME 目标(类似 your-app.up.railway.app),你需要将 DNS 指向它。
在你的 DNS 服务商处,为子域名添加指向该目标的 CNAME 记录。对于裸域名,Railway 在支持 ALIAS / 扁平化 CNAME 的服务商(Cloudflare、Route 53 等)上可以正常工作。几分钟内 Railway 会自动签发 TLS 证书。
正式项目需要一个预发布环境,在正式上线前进行测试。在 Railway 中,点击 Environments → New Environment,从生产环境复制一份。Railway 会建立一个独立的副本,拥有自己的 URL 和(克隆的)数据库。你可以将代码推送到预发布环境的分支;准备好后再晋级到生产环境。
这正是 Railway 弥补了 Heroku 一直没做好的地方——一个真正的双环境工作流,不需要再学一套新工具。
Railway 按 CPU 时间、内存时间、出站流量和数据库存储收费,按服务计算。Hobby 套餐($5/月)上一个小的低负载应用通常没问题;但如果应用有峰值(长时间运行的定时任务、大型容器构建、大量带宽),费用可能会上涨。
在账户设置中设置用量上限——当你达到上限时,Railway 会关闭服务,而不是让账单无限增长。这是最重要的一项配置,第一天就应该完成。