Node.js

こちらのページでは、GitHubリポジトリから弊社アプリケーションホスティングに以下Node.jsアプリケーションをデプロイ、セットアップする方法をご紹介します。

前提条件

  • 弊社クイックスタートテンプレートは、GitHubに保存・管理されているため、GitHubアカウントが必要です。
  • アプリケーションのデプロイには、MyKinstaアカウントが必要になります。

Node.js

  1. GitHubにログイン後、「Kinsta – Hello World – Node.js」テンプレートから新規リポジトリを作成します(「Use this template」>「Create a new repository」)。
  2. MyKinstaで、「アプリケーション」>「アプリケーションを追加」>「GitHub」を選択し、「Gitサービスの接続」ウィンドウで「Gitサービスを接続する」をクリックして、GitHubアカウントにログインします。
  3. Node.jsリポジトリと「データセンターの所在地」を選択します。その他の設定はデフォルトのままで、「続行」をクリックします。
  4. 最終確認」画面で「デプロイする」をクリックします。

デプロイに際し、ウェブプロセスのstartコマンドが自動検出され、package.jsonファイルで定義された依存関係も自動インストールされます。デプロイ完了後、すぐにアプリケーションをご利用いただけます。アプリケーションのURLには、Kinstaのウェルカムページが表示されます。

Node.jsのデプロイ完了後に表示されるKinstaのウェルカムページ
Node.jsのデプロイ完了後に表示されるKinstaのウェルカムページ

Node.jsアプリのデプロイ方法について動画での解説もご用意しています

ウェブサーバーのセットアップ

ポート

PORT環境変数は自動的に設定されるため、お客様ご自身で定義したりアプリケーションにハードコーディングで記述したりする必要はありません。サーバーポートを参照するには、以下のようにprocess.env.PORTを使用してください。

app.listen(process.env.PORT, () => {
console.log(`Hello World Application is running on port ${process.env.PORT}`)
})

startコマンド

アプリケーションをデプロイすると、startコマンドとして自動的にnpm startを持つウェブプロセスが検出されます。サーバーを実行にはこのコマンドを使用します。別のコマンドを使用する場合は、MyKinstaでウェブプロセスの編集を行ってください。

"scripts": {
"start": "node server.js"
},

環境変数

Node.jsアプリケーションのNODE_ENV環境変数は、デフォルトでproduction設定されていないため、追加が必要になります。

デプロイメントライフサイクル

デプロイメントを開始すると(アプリケーションの作成、またはコミットの失敗による再デプロイ)、npm buildコマンド、その後にnpm startコマンドが実行されます。

Dockerfileを使用したNode.jsアプリケーション

  1. GitHubにログイン後、「Kinsta – Hello World – Dockerfile – Node.js」テンプレートから、新規リポジトリを作成します(「Use this template」>「Create a new repository」)。
  2. MyKinstaで、「アプリケーション」>「アプリケーションを追加」>「GitHub」を選択し、「Gitサービスの接続」ウィンドウで「Gitサービスを接続する」をクリックして、GitHubアカウントにログインします。
  3. Dockerfile – Node.jsのリポジトリと「データセンターの所在地」を選択します。その他の設定はデフォルトのままで、「続行」をクリックします。
  4. 環境設定」で「Dockerfileを使用してコンテナイメージを設定」を選択し、「続行」をクリックします。その他の設定はデフォルトのままで、「続行」>「デプロイする」をクリックします。

Dockerfileには、startコマンドCMD行またはENTRYPOINT命令のいずれかに含める必要があります。デプロイの完了後は、すぐにアプリケーションをご利用いただけます。アプリケーションのURLには、Hello Worldページが表示されます。

Dockerfileを使用したNode.jsのデプロイ後に表示されるHello Worldページ
Dockerfileを使用したNode.jsのデプロイ後に表示されるHello Worldページ

デプロイメントライフサイクル

弊社では、アプリケーション作成時にCMDの命令からプロセスを作成します。

CMD ["npm", "run", "start"]

リポジトリでこの命令を変更しても、プロセスは自動的に更新されないため、MyKinsta内アプリケーションの「プロセス」画面でstartコマンドも編集する必要があります。プロセスを編集する必要があります。

メール送信用のNode.jsアプリケーション

弊社アプリケーションホスティングを利用して、GitHubリポジトリからSendGrid経由でメールを送信するNode.jsアプリケーションをデプロイ、セットアップする方法の一例をご紹介します。

弊社では、サーバーからのアウトバウンドのメールを標準でサポートしていません。SendGridまたはMailchimpなどのようなメール送信サービスを経由してメールを送信すると、トランザクションやキャンペーンメールのより高い柔軟性と成功率が期待できます。

  1. GitHubにログイン後、「Kinsta – Hello World – Email Sending With PHP」テンプレートから新規リポジトリを作成します(「Use this template」>「Create a new repository」)。
  2. MyKinstaで、「アプリケーション」>「アプリケーションを追加」>「GitHub」を選択し、「Gitサービスの接続」ウィンドウで「Gitサービスを接続する」をクリックして、GitHubアカウントにログインします。
  3. Email Node.jsリポジトリと「データセンターの所在地」を選択します。「環境設定」に以下を追加します。
    • SENDGRID_API_KEY:SendGridからのAPIキー
    • TEST_EMAIL_TO_ADDRESS:テストメールの送信先アドレス
    • TEST_EMAIL_FROM_ADDRESS:テストメールの送信元アドレス
    • TEST_ENDPOINT:テストメールを送信するトリガーとして使用するエンドポイント(最低8文字以上の無作為な文字列を使用してください)
  4. その他の設定はデフォルトのままで、各ステップで「続行」をクリックし、「最終確認」画面で「デプロイする」をクリックします。

デプロイの完了後は、すぐにアプリケーションをご利用いただけます。アプリケーションのURLには、Hello Worldページが表示されます。

メール送信用Node.jsのインストール完了後に表示されるHello Worldページ
メール送信用Node.jsのインストール完了後に表示されるHello Worldページ

メール送信のトリガー

ビルドのフェーズは不要です。startコマンドでnode server.js,を実行し、2つのエンドポイントのあるExpressサーバーが起動します。

  • /:Hello Worldメッセージを返すシンプルなページ
  • /${TEST_ENDPOINT}:テストメールをトリガーするページ

メールをトリガーするには、「デプロイメント」画面で確認できるデプロイのURLにテストエンドポイントを追加し、そのページにアクセスしてください。例えば、TEST_ENDPOINTo34nifnodhni4ofに設定され、最近のデプロイが「https://example.kinsta.app」にある場合は、ブラウザで「https://example.kinsta.app/o34nifnodhni4of」からテストメールを起動することができます。

テストメールが正常に送信されると、その旨を伝えるメッセージが表示されます。

Node.jsのメール送信完了を伝えるメッセージ
Node.jsのメール送信完了を伝えるメッセージ

SendGridで確認すると、以下のような受信完了メッセージが表示されます。

メール受信完了を伝えるSendGridのメッセージ
メール受信完了を伝えるSendGridのメッセージ
この記事は役に立ちましたか?