运行时包管理器打包器测试运行器代码检查格式化指南参考博客反馈

在 Railway 上部署 Bun 应用

从 CLI 或仪表盘将 Bun 应用部署到 Railway,可选配置 PostgreSQL 并自动启用 SSL

Railway 是一个基础设施平台:你可以配置基础设施,在本地基于它进行开发,然后部署到云端。Railway 可零配置地从 GitHub 部署,自动处理 SSL,并配置数据库。

本指南将部署一个可选配 PostgreSQL 数据库的 Bun 应用,使用的配置与以下模板相同。

你可以按照本指南逐步操作,也可以一键部署预配置的模板:

在 Railway 上部署

先决条件:

  • 一个准备好部署的 Bun 应用
  • 一个 Railway 账号
  • Railway CLI(用于 CLI 部署方式)
  • 一个 GitHub 账号(用于仪表盘部署方式)

方法一:通过 CLI 部署

  1. 步骤 1

    安装 Railway CLI。

    terminal
    bun install -g @railway/cli
    
  2. 步骤 2

    登录您的 Railway 账号。

    terminal
    railway login
    
  3. 步骤 3

    完成身份验证后,初始化一个新项目。

    terminal
    railway init
    
  4. 步骤 4

    初始化项目后,添加新的数据库和服务。

    terminal
    # 添加 PostgreSQL 数据库。请确保先添加此项!
    railway add --database postgres
    
    # 添加您的应用服务
    railway add --service bun-react-db --variables DATABASE_URL=\${{Postgres.DATABASE_URL}}
    
  5. 步骤 5

    创建并连接服务后,将应用部署到 Railway。默认情况下,服务只能通过 Railway 的私有网络访问,因此请生成一个公共域名,让您的应用可供公众访问。

    terminal
    # 部署您的应用
    railway up
    
    # 生成公共域名
    railway domain
    

您的应用现已上线。railway up 部署的是您的本地目录,而不是 GitHub 仓库。若要让 Railway 在每次 GitHub 推送时自动部署,请使用 railway service source connect --repo <owner>/<repo> --branch <branch> 将服务连接到您的仓库。


方法二:通过仪表盘部署

  1. 步骤 1

    创建新项目

    1. 前往 Railway Dashboard
    2. 点击 “+ New” → “GitHub repo”
    3. 选择您的仓库
  2. 步骤 2

    添加 PostgreSQL 数据库,并将该数据库连接到服务

    1. 点击 “+ New” → “Database” → “Add PostgreSQL”
    2. Railway 创建数据库后,选择您的服务(而不是数据库)
    3. 前往 “Variables” 标签页
    4. 点击 “+ New Variable” → “Add Reference”
    5. 从 postgres 中选择 DATABASE_URL
  3. 步骤 3

    生成公共域名

    1. 选择您的服务
    2. 转到 “设置” 标签页
    3. 在 “网络” 区块,点击 “生成域名”

您的应用现已上线。Railway 会在每次 GitHub 推送时自动部署。


配置(可选)

默认情况下,Railway 使用 Railpack 自动检测并以零配置构建您的 Bun 应用。

Railpack 会根据您的 bun.lock 检测 Bun,并安装最新版本的 Bun,除非您在 package.json 的 engines.bun 或 packageManager 字段中指定了版本。Railway 之前使用的构建器 Nixpacks 目前处于维护模式。

如果您的服务仍使用 Nixpacks 构建,请将以下内容添加到您的 railway.json,以切换到 Railpack:

railway.json
{
  "$schema": "https://railway.com/railway.schema.json",
  "build": {
    "builder": "RAILPACK"
  }
}

如需了解更多构建配置设置,请参阅 Railway 文档。