AIイノベーションズ
Railway/Guides

Express アプリをデプロイする

Railway を使って Express アプリをデプロイする手順を解説します。データベース接続、環境変数、Dockerfile の利用まで、4つのデプロイ方法を網羅します。

著者: AIイノベーションズ 阿部隼也X / Twitter

Railwayはこちら

Express アプリをデプロイする

Express は、Node.js のための高速で柔軟なウェブアプリケーションフレームワークです。シンプルかつ最小限のアプローチでウェブサーバーや API を構築できることで知られています。

このガイドでは、以下の4つの方法で Express アプリを Railway にデプロイする手順を説明します。

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

Express アプリの準備

既に Express アプリがある場合は、このセクションをスキップしてください。

1. アプリの作成とローカルでの実行

# アプリケーションの雛形を作成
npx express-generator --view=pug helloworld
cd helloworld

# 依存関係をインストール
npm install

# アプリケーションを起動
npm start

ブラウザで http://localhost:3000 にアクセスし、動作を確認します。

2. データベースの接続設定

ここでは PostgreSQL を使用します。

# pg-promise をインストール
npm i pg-promise

routes/index.js を開き、データベースに接続して現在時刻を取得するように変更します。

const express = require('express');
const pgp = require('pg-promise')();
// 環境変数からデータベースURLを取得
const db = pgp(process.env.DATABASE_URL); 
const router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
  db.one("SELECT NOW()")
    .then(function (data) {
      res.render('index', { title: 'Hello World, Railway!', timeFromDB: data.now });
    })
    .catch(function (error) {
      console.error("ERROR:", error);
      res.status(500).send("Error querying the database");
    });
});

module.exports = router;

views/index.pug も修正して、取得した時刻を表示できるようにします。

extends layout

block content
  h1= title
  p Welcome to #{title}
  p This is the time retrieved from the database:
  p #{timeFromDB}

Railway へのデプロイ

方法1: GitHub リポジトリからデプロイ

  1. プロジェクトの作成: Railway で新しいプロジェクトを作成し、「Deploy from GitHub repo」を選択します。
  2. リポジトリの選択: 自分の Express プロジェクトのリポジトリを選びます。
  3. データベースの追加: キャンバスで右クリックし、「Database」→「Add PostgreSQL」を選択してデータベースサービスを追加します。
  4. 環境変数の設定: アプリケーションのサービス設定で、DATABASE_URL という名前の変数を追加し、値を ${{Postgres.DATABASE_URL}} に設定します。これにより、データベースサービスの接続情報が参照されます。
  5. デプロイ: 「Deploy」ボタンをクリックします。
  6. ドメインの生成: デプロイ完了後、サービスの「Settings」→「Networking」で「Generate Domain」をクリックして公開 URL を取得します。

方法2: Dockerfile を使う

プロジェクトのルートに以下の内容で Dockerfile を作成します。

# Node の公式イメージを使用
FROM node:lts

# アプリケーションディレクトリを作成
WORKDIR /app

# ローカルのコードをコンテナにコピー
COPY . ./

# 依存関係をインストール
RUN npm ci

# アプリケーションを起動
CMD ["npm", "run", "start"]

この Dockerfile を含むリポジトリを GitHub からデプロイすると、Railway は自動的に Dockerfile を使ってビルドとデプロイを行います。


このガイドでは、Express アプリを Railway にデプロイする主要な方法を説明しました。自分のセットアップに合った方法を選び、シームレスなデプロイを実現してください。

Railwayはこちら

PR