【Railway】NestJSをデプロイする方法

この記事では、Railway に NestJSアプリをデプロイする方法方法を紹介します。クイックセットアップ、データベース統合、ワンクリックデプロイ、その他のデプロイ戦略について解説します。

Share

Railwayはこちら (←このリンクから登録すると20ドル分のクレジットがもらえます)

NestJSアプリをデプロイする方法

Nest は、効率的で信頼性が高く、スケーラブルなサーバーサイドアプリケーションを作成するために設計された最新の Node.js フレームワークです。強力な HTTP サーバーフレームワーク上に構築されており、デフォルトでは Express を使用しますが、パフォーマンスと柔軟性を高めるために Fastify もシームレスにサポートします。

この記事では、4 つの方法で Railway に Nestアプリをデプロイする手順を説明します。

  1. テンプレートからのワンクリックデプロイ
  2. GitHubリポジトリからデプロイ
  3. CLIでデプロイ
  4. Dockerfileでデプロイ

それでは、Nest アプリを作成しましょう。

Nest アプリの作成

注: すでにローカルまたは GitHub に Nest アプリがある場合は、この章をスキップして「Nest アプリを Railway にデプロイする」へ進んでください。

新しい Nest アプリを作成するには、Node と NestJS がインストールされていることを確認してください。

ターミナルで以下を実行して、新しい Nest アプリを作成します。

nest new helloworld

helloworld ディレクトリに新しい Nest アプリが作成されます。

Nest アプリをローカルで実行

以下でアプリをローカル起動します。

npm run start

ブラウザで http://localhost:3000 にアクセスして表示を確認します。

別ポートで実行する場合は PORT=8080 npm run start を使用します。その場合は http://localhost:8080 にアクセスします。

データベースの追加と設定

注: このアプリでは Postgres を使用します。ローカルに未インストールの場合はインストールするか、別の Node.js データベースパッケージを選択してください。

  1. nestjshelloworld_dev という名前のデータベースを作成します。
  2. 次のパッケージをインストールします。
npm i @nestjs/typeorm typeorm pg
  • TypeORM は TypeScript および JavaScript 用の ORM ライブラリです。
  • pgはPostgresデータベースと通信するためのものです。
  1. src/app.module.ts ファイルを開き、内容を以下のコードに変更します。
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { TypeOrmModule } from '@nestjs/typeorm';
 
@Module({
  imports: [
    TypeOrmModule.forRoot({
      type: 'postgres',
      host: 'localhost',
      port: 5432,
      username: 'username',
      password: 'password',
      database: 'nestjshelloworld_dev',
      entities: [],
      synchronize: true,
    }),
  ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

npm run start:dev コマンドを使用してアプリを起動します。上記のコードは、アプリが起動するとデータベースに接続しようとします。資格情報のいずれかが間違っている場合は、アプリがデータベースに接続できないという警告が表示されます。

  1. src/app.service.ts ファイルを開き、内容を Hello World, Welcome to Railway! を返すように変更します。
import { Injectable } from '@nestjs/common';
 
@Injectable()
export class AppService {
  getHello(): string {
    return 'Hello World, Welcome to Railway!';
  }
}
  1. アプリを再度実行して、変更が反映されていることを確認してください!

デプロイのためのNestJSアプリの準備

src/app.module.ts ファイルで、ハードコードされたPostgresデータベースの資格情報を環境変数に置き換えます。

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { TypeOrmModule } from '@nestjs/typeorm';
 
@Module({
  imports: [
    TypeOrmModule.forRoot({
      type: 'postgres',
      host: process.env.DB_HOST,
      port: 5432,
      username: process.env.DB_USERNAME,
      password: process.env.DB_PASSWORD,
      database: process.env.DB_DATABASE,
      entities: [],
      synchronize: true,
    }),
  ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

これにより、アプリはデプロイ中にRailwayから正しいデータベース構成を動的にプルできます。

NestアプリをRailwayにデプロイする

Railwayは、セットアップと好みに応じて、Nestアプリをデプロイする複数の方法を提供します。

テンプレートからのワンクリックデプロイ

Postgresデータベースに接続されたNestを最速で開始したい場合は、ワンクリックデプロイオプションが最適です。

下のボタンをクリックして開始します。

Railwayにデプロイ

デプロイ後はテンプレートから Eject して、GitHub アカウントにリポジトリのコピーを作成することを強くおすすめします。

注: コミュニティによって作成されたさまざまなNestアプリテンプレートから選択することもできます。

CLIからデプロイ

  1. Railway CLIのインストール
    • CLIをインストールし、Railwayアカウントで認証します。
  2. Railwayプロジェクトの初期化
    • プロンプトに従ってプロジェクトに名前を付けます。
    • プロジェクトが作成されたら、提供されたリンクをクリックしてブラウザで表示します。
  3. Postgresデータベースサービスの追加
    • railway add -d postgres を実行します。
    • Enter を押してプロジェクトに追加します。
    • データベースサービスがRailwayプロジェクトに追加されます。
  4. サービスと環境変数の追加
    • railway add を実行します。
    • オプションのリストから Empty Service を選択します。
    • Enter a service name プロンプトで app-service と入力します。
    • Enter a variable プロンプトで入力します
  5. アプリケーションのデプロイ
    • railway up を実行してアプリをデプロイします。
      • このコマンドは、アプリのファイルをスキャン、圧縮し、Railwayにアップロードします。ターミナルにはリアルタイムのデプロイログが表示されます。
    • デプロイが完了したら、アプリサービスのドメインを生成に進むことができます。
  6. 公開URLの設定
    • railway domain を実行して、アプリの公開URLを生成します。
    • 新しいURLにアクセスして、アプリがライブで動作していることを確認してください!

Nestアプリディレクトリで以下のコマンドを実行します。

railway init

GitHubリポジトリからデプロイ

NestアプリをGitHubから直接Railwayにデプロイするには、以下の手順に従ってください。

  1. Railwayで新しいプロジェクトを作成
    • Railwayにアクセスして、新しいプロジェクトを作成します。
  2. GitHubからデプロイ
    • Deploy from GitHub repo を選択し、リポジトリを選択します。
      • RailwayアカウントがまだGitHubにリンクされていない場合は、リンクするように求められます。
  3. 環境変数の追加とデータベースサービスのプロビジョニング
    • Add Variables をクリックしますが、まだ何も追加しないでください。まず、次の手順に進んでください。
    • Railwayプロジェクトキャンバスを右クリックするか、Create ボタンをクリックし、Database を選択して Add PostgreSQL を選択します。
      • これにより、プロジェクト用に新しいPostgreSQLデータベースが作成され、デプロイされます。
    • データベースがデプロイされたら、必要な環境変数を追加に戻ることができます。
  4. アプリサービスのデプロイ
    • Railwayプロジェクトキャンバスで Deploy をクリックして、変更を適用します。
  5. デプロイの確認
    • デプロイが完了したら、View logs に移動して、サーバーが正常に実行されていることを確認します。 注: デプロイプロセス中に、RailwayはNixpacksを介してNode.jsアプリであることを自動的に検出します。
  6. 公開URLの設定
    • 新しいサービスの「設定」タブのNetworkingセクションに移動します。
    • 「Generate Domain」をクリックして、アプリの公開URLを作成します。

Dockerfileの使用

  1. Nestアプリのルートディレクトリに Dockerfile を作成します。
  2. CLIまたはGitHubからデプロイします。

Dockerfile に以下の内容を追加します。

# Node公式イメージを使用
# https://hub.docker.com/_/node
FROM node:lts
# アプリディレクトリを作成して変更
WORKDIR /app
# ローカルコードをコンテナイメージにコピー
COPY . ./
# パッケージのインストール
RUN npm ci
# アプリの提供
CMD ["npm", "run", "start:prod"]

Railwayは Dockerfile を自動的に検出し、それを使用してアプリをビルドおよびデプロイします。

注: Railwayは、パブリックおよびプライベートのDockerイメージからのデプロイもサポートしています。

この記事では、Railwayの主なデプロイオプションについて説明しました。セットアップに適したアプローチを選択し、Nestアプリをシームレスにデプロイし始めてください!

次のステップ

Railwayでのエクスペリエンスを最大限に活用するために、これらのリソースを調べてください。

Railwayはこちら (←このリンクから登録すると20ドル分のクレジットがもらえます)

Read more

サービス更新履歴

ここでは、LiveQのサービス・製品への変更を全て紹介しております。 このページは大きな変更があった場合に更新されます。 いつごろにどのような機能がリリースされたかが分かります。 2026年6月: 高速化・安定化 * 5月よりサーバーおよびアプリケーションの大型リニューアルに取り組み、6月に読み込み速度の向上や、大規模アクセス時にも安定して高速に動作するように変更をおこないました。 2026年4月: 画像スライド * 新たなスライドの種類として画像スライドを追加しました。 * PowerPoint, PDFファイルを一括インポートし、画像スライドとして追加する機能を追加しました * そのほか多数の細かな変更(操作性などのデザイン改善や、不具合)をおこないました 2026年3月: ワードクラウド、コメントのAIモデレーション(監視) * 新たなスライドの種類としてワードクラウドを追加しました * コメントをAIで自動監視する機能をリリースしました * そのほか細かな改善や不具合の修正をおこないました 2026年2月: 有料プランのデータエクスポート

By 阿部 隼也

チームメンバーを招待する方法

チームメンバーを追加するには、招待する必要があります。 その招待方法を紹介します。 招待可能なチームメンバーの数は、ご利用のプランによって異なるため、事前にご確認ください。 チームページの「新しいチームメンバーを招待」にて、招待するメンバーのメールアドレスを入力し、「招待を送信」をクリックします。 招待された側で招待を承認 次に、招待された側の方によって招待を承認する必要があります。 ※この承認にはLiveQのアカウントが必要となりますので、必ず事前にご登録ください。 下記のような招待メールが届きます。 件名:【LiveQ】チームへの招待が届いています 差出人:[email protected] 既にLiveQに登録済みの方はそのまま「招待を承認して参加する」ボタンをクリックします。 まだLiveQに登録していない方は、登録後、同様に承認ボタンをクリックします。 チームを切り替える 招待を承認すると、チームページに下記のように「チーム切り替え」ができるようになります。 招待したユーザーにもメールが届きます 招待が承認されると、招待したユーザーに

By 阿部 隼也