Node.js
こちらのページでは、GitHubリポジトリから弊社アプリケーションホスティングに以下Node.jsアプリケーションをデプロイ、セットアップする方法をご紹介します。
前提条件
- 弊社クイックスタートテンプレートは、GitHubに保存・管理されているため、GitHubアカウントが必要です。
- アプリケーションのデプロイには、MyKinstaアカウントが必要になります。
Node.js
- GitHubにログイン後、「Kinsta – Hello World – Node.js」テンプレートから新規リポジトリを作成します(「Use this template」>「Create a new repository」)。
- MyKinstaで、「アプリケーション」>「アプリケーションを追加」>「GitHub」を選択し、「Gitサービスの接続」ウィンドウで「Gitサービスを接続する」をクリックして、GitHubアカウントにログインします。
- Node.jsリポジトリと「データセンターの所在地」を選択します。その他の設定はデフォルトのままで、「続行」をクリックします。
- 「最終確認」画面で「デプロイする」をクリックします。
デプロイに際し、ウェブプロセスのstartコマンドが自動検出され、package.jsonファイルで定義された依存関係も自動インストールされます。デプロイ完了後、すぐにアプリケーションをご利用いただけます。アプリケーションのURLには、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アプリケーション
- GitHubにログイン後、「Kinsta – Hello World – Dockerfile – Node.js」テンプレートから、新規リポジトリを作成します(「Use this template」>「Create a new repository」)。
- MyKinstaで、「アプリケーション」>「アプリケーションを追加」>「GitHub」を選択し、「Gitサービスの接続」ウィンドウで「Gitサービスを接続する」をクリックして、GitHubアカウントにログインします。
- Dockerfile – Node.jsのリポジトリと「データセンターの所在地」を選択します。その他の設定はデフォルトのままで、「続行」をクリックします。
- 「環境設定」で「Dockerfileを使用してコンテナイメージを設定」を選択し、「続行」をクリックします。その他の設定はデフォルトのままで、「続行」>「デプロイする」をクリックします。
Dockerfileには、startコマンドをCMD
行またはENTRYPOINT
命令のいずれかに含める必要があります。デプロイの完了後は、すぐにアプリケーションをご利用いただけます。アプリケーションのURLには、Hello Worldページが表示されます。
デプロイメントライフサイクル
弊社では、アプリケーション作成時にCMD
の命令からプロセスを作成します。
CMD ["npm", "run", "start"]
リポジトリでこの命令を変更しても、プロセスは自動的に更新されないため、MyKinsta内アプリケーションの「プロセス」画面でstartコマンドも編集する必要があります。プロセスを編集する必要があります。
メール送信用のNode.jsアプリケーション
弊社アプリケーションホスティングを利用して、GitHubリポジトリからSendGrid経由でメールを送信するNode.jsアプリケーションをデプロイ、セットアップする方法の一例をご紹介します。
弊社では、サーバーからのアウトバウンドのメールを標準でサポートしていません。SendGridまたはMailchimpなどのようなメール送信サービスを経由してメールを送信すると、トランザクションやキャンペーンメールのより高い柔軟性と成功率が期待できます。
- GitHubにログイン後、「Kinsta – Hello World – Email Sending With PHP」テンプレートから新規リポジトリを作成します(「Use this template」>「Create a new repository」)。
- MyKinstaで、「アプリケーション」>「アプリケーションを追加」>「GitHub」を選択し、「Gitサービスの接続」ウィンドウで「Gitサービスを接続する」をクリックして、GitHubアカウントにログインします。
- Email Node.jsリポジトリと「データセンターの所在地」を選択します。「環境設定」に以下を追加します。
SENDGRID_API_KEY
:SendGridからのAPIキーTEST_EMAIL_TO_ADDRESS
:テストメールの送信先アドレスTEST_EMAIL_FROM_ADDRESS
:テストメールの送信元アドレスTEST_ENDPOINT
:テストメールを送信するトリガーとして使用するエンドポイント(最低8文字以上の無作為な文字列を使用してください)
- その他の設定はデフォルトのままで、各ステップで「続行」をクリックし、「最終確認」画面で「デプロイする」をクリックします。
デプロイの完了後は、すぐにアプリケーションをご利用いただけます。アプリケーションのURLには、Hello Worldページが表示されます。
メール送信のトリガー
ビルドのフェーズは不要です。startコマンドでnode server.js,
を実行し、2つのエンドポイントのあるExpressサーバーが起動します。
/
:Hello Worldメッセージを返すシンプルなページ/${TEST_ENDPOINT}
:テストメールをトリガーするページ
メールをトリガーするには、「デプロイメント」画面で確認できるデプロイのURLにテストエンドポイントを追加し、そのページにアクセスしてください。例えば、TEST_ENDPOINT
がo34nifnodhni4of
に設定され、最近のデプロイが「https://example.kinsta.app」にある場合は、ブラウザで「https://example.kinsta.app/o34nifnodhni4of」からテストメールを起動することができます。
テストメールが正常に送信されると、その旨を伝えるメッセージが表示されます。
SendGridで確認すると、以下のような受信完了メッセージが表示されます。