Railway/Guides
Express アプリをデプロイする
Railway を使って Express アプリをデプロイする手順を解説します。データベース接続、環境変数、Dockerfile の利用まで、4つのデプロイ方法を網羅します。
著者: AIイノベーションズ 阿部隼也(X / Twitter)Express アプリをデプロイする
Express は、Node.js のための高速で柔軟なウェブアプリケーションフレームワークです。シンプルかつ最小限のアプローチでウェブサーバーや API を構築できることで知られています。
このガイドでは、以下の4つの方法で Express アプリを Railway にデプロイする手順を説明します。
- テンプレートからワンクリックでデプロイ
- GitHub リポジトリからデプロイ
- Railway CLI を使ってデプロイ
- 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 リポジトリからデプロイ
- プロジェクトの作成: Railway で新しいプロジェクトを作成し、「Deploy from GitHub repo」を選択します。
- リポジトリの選択: 自分の Express プロジェクトのリポジトリを選びます。
- データベースの追加: キャンバスで右クリックし、「Database」→「Add PostgreSQL」を選択してデータベースサービスを追加します。
- 環境変数の設定: アプリケーションのサービス設定で、
DATABASE_URL
という名前の変数を追加し、値を${{Postgres.DATABASE_URL}}
に設定します。これにより、データベースサービスの接続情報が参照されます。 - デプロイ: 「Deploy」ボタンをクリックします。
- ドメインの生成: デプロイ完了後、サービスの「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 にデプロイする主要な方法を説明しました。自分のセットアップに合った方法を選び、シームレスなデプロイを実現してください。
PR