🚃

Railwayでデプロイ後に503エラー

2023/07/12に公開

概要

Node.js アプリケーションを Railway というホスティングサービスにデプロイした際に、デプロイ url にアクセスしても 503 ステータスエラー (「Application Error: This application failed to respond」) が表示されてアプリケーションが起動しない問題があったのでメモ。

Railway

https://railway.app/

Railway での 503 エラー

Railway 公式が、デプロイ後に url アクセス時に 503 エラーが発生する理由とその解決法を記載してくれている。
https://docs.railway.app/troubleshoot/fixing-common-errors

解決手順

Railway のプロジェクトに PORT という環境変数を設定し、アプリケーション側でデプロイ時にはそれを読み込むように設定すれば ok。
上記の公式のリンクにも解決策は書いてある。

Railway に環境変数PORTを設定

プロジェクトの詳細画面の「Variables」タグで追加。

アプリケーションで PORT 環境変数を読み込むようにする (Node.js (NestJS) 想定)

筆者は NestJS で作ったアプリケーションをデプロイしたので NestJS で実装。
この実装自体は今回に限らずお左方的な感じで実装するものなのかも。

main.ts
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);

  await app.listen(process.env.PORT || 8080);
}
bootstrap();

おわり

別にこれは Railway に限らずどの PaaS でも大体必要な操作なのかもしれない。

GitHubで編集を提案

Discussion