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

# 在 Railway 上部署 Bun 应用

> 通过本分步指南使用 CLI 和仪表盘方法部署 Bun 应用，涵盖可选的 PostgreSQL 设置和自动 SSL 配置。

Railway 是一个基础设施平台，您可以在这里配置基础设施，在本地使用该基础设施进行开发，然后部署到云端。它支持从 GitHub 通过零配置实现即时部署，自动 SSL 以及内置数据库配置。

本指南演示如何部署带有 PostgreSQL 数据库（可选）的 Bun 应用，这正是下面模板所提供的内容。

You can either follow this guide step-by-step or deploy the pre-configured template with one click:

<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="Deploy on Railway" />
</a>

***

**先决条件**：

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

***

## 方法一：通过 CLI 部署

<Steps>
  <Step title="步骤 1">
    确保已安装 Railway CLI。

    ```bash terminal icon="terminal" theme={"theme":{"light":"github-light","dark":"dracula"}}
    bun install -g @railway/cli
    ```
  </Step>

  <Step title="步骤 2">
    登录您的 Railway 账号。

    ```bash terminal icon="terminal" theme={"theme":{"light":"github-light","dark":"dracula"}}
    railway login
    ```
  </Step>

  <Step title="步骤 3">
    认证成功后，初始化一个新项目。

    ```bash terminal icon="terminal" theme={"theme":{"light":"github-light","dark":"dracula"}}
    railway init
    ```
  </Step>

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

    <Note>如果您的应用不使用数据库，跳过步骤 4，直接进行步骤 5。</Note>

    ```bash terminal icon="terminal" theme={"theme":{"light":"github-light","dark":"dracula"}}
    # 添加 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={"theme":{"light":"github-light","dark":"dracula"}}
    # 部署您的应用
    railway up

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

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

***

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

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

    1. 打开 [Railway 仪表盘](http://railway.com/dashboard?utm_medium=integration\&utm_source=docs\&utm_campaign=bun)
    2. 点击 **"+ 新建"** → **"GitHub 仓库"**
    3. 选择您的代码仓库
  </Step>

  <Step title="步骤 2">
    添加 PostgreSQL 数据库，并将该数据库连接到服务

    <Note>如果应用不使用数据库，此步骤可跳过，直接进行步骤 3。</Note>

    1. 点击 **"+ 新建"** → **"数据库"** → **"添加 PostgreSQL"**
    2. 数据库创建完成后，选择您的服务（不是数据库）
    3. 转到 **"变量"** 标签页
    4. 点击 **"+ 创建新变量"** → **"添加引用"**
    5. 从 postgres 中选择 `DATABASE_URL`
  </Step>

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

    1. 选择您的服务
    2. 转到 **"设置"** 标签页
    3. 在 **"网络"** 区块，点击 **"生成域名"**
  </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={"theme":{"light":"github-light","dark":"dracula"}}
{
  "$schema": "https://railway.com/railway.schema.json",
  "build": {
    "builder": "RAILPACK"
  }
}
```

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