在 Railway 上部署 Bun 应用
从 CLI 或仪表盘将 Bun 应用部署到 Railway,可选配置 PostgreSQL 并自动启用 SSL
Railway 是一个基础设施平台:你可以配置基础设施,在本地基于它进行开发,然后部署到云端。Railway 可零配置地从 GitHub 部署,自动处理 SSL,并配置数据库。
本指南将部署一个可选配 PostgreSQL 数据库的 Bun 应用,使用的配置与以下模板相同。
你可以按照本指南逐步操作,也可以一键部署预配置的模板:
先决条件:
- 一个准备好部署的 Bun 应用
- 一个 Railway 账号
- Railway CLI(用于 CLI 部署方式)
- 一个 GitHub 账号(用于仪表盘部署方式)
方法一:通过 CLI 部署
- 步骤 1
安装 Railway CLI。
terminalbun install -g @railway/cli - 步骤 2
登录您的 Railway 账号。
terminalrailway login - 步骤 3
完成身份验证后,初始化一个新项目。
terminalrailway init - 步骤 4
初始化项目后,添加新的数据库和服务。
terminal# 添加 PostgreSQL 数据库。请确保先添加此项! railway add --database postgres # 添加您的应用服务 railway add --service bun-react-db --variables DATABASE_URL=\${{Postgres.DATABASE_URL}} - 步骤 5
创建并连接服务后,将应用部署到 Railway。默认情况下,服务只能通过 Railway 的私有网络访问,因此请生成一个公共域名,让您的应用可供公众访问。
terminal# 部署您的应用 railway up # 生成公共域名 railway domain
您的应用现已上线。railway up 部署的是您的本地目录,而不是 GitHub 仓库。若要让 Railway 在每次 GitHub 推送时自动部署,请使用 railway service source connect --repo <owner>/<repo> --branch <branch> 将服务连接到您的仓库。
方法二:通过仪表盘部署
- 步骤 1
创建新项目
- 前往 Railway Dashboard
- 点击 “+ New” → “GitHub repo”
- 选择您的仓库
- 步骤 2
添加 PostgreSQL 数据库,并将该数据库连接到服务
- 点击 “+ New” → “Database” → “Add PostgreSQL”
- Railway 创建数据库后,选择您的服务(而不是数据库)
- 前往 “Variables” 标签页
- 点击 “+ New Variable” → “Add Reference”
- 从 postgres 中选择
DATABASE_URL
- 步骤 3
生成公共域名
- 选择您的服务
- 转到 “设置” 标签页
- 在 “网络” 区块,点击 “生成域名”
您的应用现已上线。Railway 会在每次 GitHub 推送时自动部署。
配置(可选)
默认情况下,Railway 使用 Railpack 自动检测并以零配置构建您的 Bun 应用。
Railpack 会根据您的 bun.lock 检测 Bun,并安装最新版本的 Bun,除非您在 package.json 的 engines.bun 或 packageManager 字段中指定了版本。Railway 之前使用的构建器 Nixpacks 目前处于维护模式。
如果您的服务仍使用 Nixpacks 构建,请将以下内容添加到您的 railway.json,以切换到 Railpack:
{
"$schema": "https://railway.com/railway.schema.json",
"build": {
"builder": "RAILPACK"
}
}
如需了解更多构建配置设置,请参阅 Railway 文档。