# ポートフォリオのデプロイ

ポートフォリオを Heroku にデプロイする手順です。

# Heroku にデプロイするための準備

Heroku で静的ファイルをホストする方法は用意されていないため、静的ファイルをホストするサーバープログラムを用意します。今回は Node.js で簡単に作成します。

まず、ポートフォリオを作成したディレクトリに移動し、 code . コマンドで Visual Studio Code を開きます。

image

続いて以下の 3 つのファイルを作成します。

  • ~~/package.json
  • ~~/server.js
  • ~~/Procfile

# package.json

package.json を作成し、以下の内容をコピー&ペーストします。

~~/package.json

{
  "name": "portfolio",
  "version": "1.0.0",
  "description": "Portfolio",
  "scripts": {
    "start": "node ./server.js"
  },
  "engines": {
    "node": "16.x"
  },
  "dependencies": {
    "express": "^4.18.1"
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# server.js

server.js という名前のファイルを作成し、以下の内容をコピー&ペーストします。

TIP

~~/public ディレクトリ内のファイルをレスポンスするサーバープログラムです。

const express = require('express')
const createError = require('http-errors')

const app = express()
const port = process.env.PORT || 3000

app.use(express.static('public'))

app.use((req, res, next) => {
  next(createError(404))
})
app.use((err, req, res, next) => {
  res.status(err.status || 500).send(`${err.message}`)
  if (err.status !== 404) console.error(err)
})

app.listen(port, () => {
  console.log(`Server started on Port=${port}.`)
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# Procfile

これらのプログラムを実行するよう Heroku に指示するファイルを作成します。 Procfile を作成し以下の一行を記載します。 Procfile に関する詳細は Node.js の Heroku Getting Started (opens new window) をご覧ください。

~~/Procfile

web: npm start
1

ここまでで、ファイルは以下のようになっているはずです。

image

# GitHub リポジトリに反映する

手元の状態がすべて GitHub 上に反映されているようにしてください。

コマンド例

※ GitHub Desktop を使用し Push しても問題ありません。

$ git add .
$ git commit -m "update files"
$ git push origin main
1
2
3

image

image

# Heroku 上でアプリを作成する

Heroku の ダッシュボード (opens new window)NewCreate new app を選択します。

image

アプリ名を入力して、アプリを作成します。

ここでは、ts-user-web-portfolio-yumi と入力していますが、任意の値を入力してください。 すでに使用されている値は使用できません。 ここで入力した値は、結果的に https://{アプリ名}.herokuapp.com/ という URL で全世界に公開されます。

Create App を押します。

image

作成後は以下のような画面が表示されます。 一度、右上の Open App をクリックしてみましょう。

image

以下のようなページが表示されています。 このページは全世界に公開されているあなた専用の Web ページです。 「Heroku | Welcome to your new app!」と表示されていますが、このページを、作成したポートフォリオの内容に変更していきます。

image

# Heroku と GitHub リポジトリを連携する

先程の画面に戻ります。 「Deploy」のタブが表示されていることを確認し、GitHub から Connect To GitHub を選択します。

image

以下のようなポップアップが表示されます。 Authorize heroku をクリックします。

image

自分のユーザー名が選択されていることを確認し、ポートフォリオのリポジトリ名を入力し、 Search をクリックします。

image

デプロイしたいリポジトリの Connect をクリックします。

image

Connect to {デプロイしたいリポジトリ名} by {GutHub のユーザー名} のメッセージが表示されればうまく連携されています。

# デプロイの自動化を有効にする

少し下にスクロールし、 「Automatic deploys」 のセクションで 「Choose a branch to deploy」の項目から、公開したいブランチ(例では main ブランチ)が選択されていることを確認し、「Enable Automatic Deploys」をクリックします。

この設定は、例えば main を選択し Automatic Deploys を有効にすると、 main ブランチに Push された際に自動的にそのブランチの内容が Heroku に反映されるようになる設定です。 有効にしておくと、内容を変更したあと、 main ブランチに Push するだけで、公開中のサイトを更新できるようになり便利です。

image

# 手動デプロイを実行する

上記の設定は、Push 検知時のデプロイを有効にしました。最初の一回目は反応しないため、手動デプロイを行います。少し下にスクロールし、「Manual deploy」 のセクションに移動します。「Choose a branch to deploy」 でデプロイしたいブランチ (例では main ブランチ)を選択し、 Deploy Branch をクリックします。

image

デプロイ作業が始まるため、しばらく待機します。

image

デプロイが完了すると、以下のように緑色のチェックマークが表示されます。

image

# 表示の確認

先程の Web ページを開き、ページがうまく表示されているか確認しましょう。

image

ポートフォリオの公開は以上です。スマートフォンや、他の人の端末に URL を共有して、うまく表示されているか確認してみましょう。