> ## Documentation Index
> Fetch the complete documentation index at: https://bun.ll1025.cn/llms.txt
> Use this file to discover all available pages before exploring further.

# 在 Railway 上部署 Bun 应用

> 通过 CLI 或仪表盘将 Bun 应用程序部署到 Railway，可选 PostgreSQL 设置和自动 SSL

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

本指南部署一个带可选 PostgreSQL 数据库的 Bun 应用程序，以下模板也提供了相同的设置。

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

<a href="https://railway.com/deploy/bun-react-postgres?referralCode=Bun&utm_medium=integration&utm_source=template&utm_campaign=bun" target="_blank">
  <img src="https://railway.com/button.svg" alt="在 Railway 上部署" />
</a>

***

**前提条件**：

* 一个可供部署的 Bun 应用
* 一个 [Railway 账户](https://railway.app/)
* Railway CLI（用于 CLI 部署方法）
* 一个 GitHub 账户（用于仪表盘部署方法）

***

## 方法 1：通过 CLI 部署

<Steps>
  <Step title="第 1 步">
    安装 Railway CLI。

    ```bash terminal icon="terminal" theme={null}
    bun install -g @railway/cli
    ```
  </Step>

  <Step title="第 2 步">
    登录你的 Railway 账户。

    ```bash terminal icon="terminal" theme={null}
    railway login
    ```
  </Step>

  <Step title="第 3 步">
    完成身份验证后，初始化一个新项目。

    ```bash terminal icon="terminal" theme={null}
    railway init
    ```
  </Step>

  <Step title="第 4 步">
    初始化项目后，添加新的数据库和服务。

    <Note>只有你的应用程序使用数据库时才需要第 4 步。如果你不需要 PostgreSQL，请跳到第 5 步。</Note>

    ```bash terminal icon="terminal" theme={null}
    # 添加 PostgreSQL 数据库。请确保先添加此项！
    railway add --database postgres

    # 添加你的应用程序服务。
    railway add --service bun-react-db --variables DATABASE_URL=\${{Postgres.DATABASE_URL}}
    ```
  </Step>

  <Step title="第 5 步">
    服务创建并连接后，将应用程序部署到 Railway。默认情况下，服务只能在 Railway 的私有网络内访问，因此需要生成一个公共域名以使你的应用程序可公开访问。

    ```bash terminal icon="terminal" theme={null}
    # 部署你的应用程序
    railway up

    # 生成公共域名
    railway domain
    ```
  </Step>
</Steps>

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

***

## 方法 2：通过仪表盘部署

<Steps>
  <Step title="第 1 步">
    创建新项目

    1. 前往 [Railway 仪表盘](http://railway.com/dashboard?utm_medium=integration\&utm_source=docs\&utm_campaign=bun)
    2. 点击 **"+ New"** → **"GitHub repo"**
    3. 选择你的仓库
  </Step>

  <Step title="第 2 步">
    添加一个 PostgreSQL 数据库，并将此数据库连接到服务

    <Note>只有你的应用程序使用数据库时才需要第 2 步。如果你不需要 PostgreSQL，请跳到第 3 步。</Note>

    1. 点击 **"+ New"** → **"Database"** → **"Add PostgreSQL"**
    2. 数据库创建完成后，选择你的服务（不是数据库）
    3. 前往 **"Variables"** 选项卡
    4. 点击 **"+ New Variable"** → **"Add Reference"**
    5. 从 postgres 中选择 `DATABASE_URL`
  </Step>

  <Step title="第 3 步">
    生成公共域名

    1. 选择你的服务
    2. 前往 **"Settings"** 选项卡
    3. 在 **"Networking"** 下，点击 **"Generate Domain"**
  </Step>
</Steps>

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

***

## 配置（可选）

默认情况下，Railway 使用 [Nixpacks](https://docs.railway.com/guides/build-configuration#nixpacks-options) 自动检测并零配置构建你的 Bun 应用程序。

但是，[Railpack](https://docs.railway.com/guides/build-configuration#railpack) 应用构建器对 Bun 有更好的支持，并且始终支持最新版本的 Bun。预配置的模板默认使用 Railpack。

要在自定义项目中启用 Railpack，请将以下内容添加到你的 `railway.json`：

```json railway.json icon="file-json" theme={null}
{
  "$schema": "https://railway.com/railway.schema.json",
  "build": {
    "builder": "RAILPACK"
  }
}
```

有关更多构建配置设置，请参见 [Railway 文档](https://docs.railway.com/guides/build-configuration)。
