Heroku

Herokuを使ってサクッと無料で静的サイトを公開

すでに手元にある HTML などのファイルをインターネットに公開したい場合に、 クラウドサービスを利用すると便利です。 今回は無料で利用できる Heroku を使ったやり方を紹介します。


余談 ― 2018年末現在、静的ファイルのホスティングは Netlify が主流です。 Heroku は無料で利用できる PaaS の有力な候補であることは変わりませんが、 後発の Firebase も便利ですので、あわせてご検討ください。

 

Netlify のスターターキットも用意しています。


Heroku でアカウントを登録したら、コマンドラインで扱うために Heroku CLI をインストールします。

インストールが完了したら、$ heroku login でログインします。

ひな形をダウンロード

Download zip file from GitHub site

ダウンロードした ZIP ファイルを、任意の場所に展開します。 その後、ディレクトリ名を awake からサイト名に変更してください。 ここでは仮に awake-sample として説明していきます。指定する名称は公開先の URL として https://awake-sample.herokuapp.com が得られます[1]

Extract the zip file and rename to awake-sample

ちなみに $ git clone して利用することもできますが、あとで自分のリポジトリとして Git 管理したり GitHub にプッシュしたい場合に面倒なので、こちらの方法を取るほうが手っ取り早いです。

ターミナルで操作

まずはサンプルをそのままアップロードし、Heroku上で動作するかを確認しましょう。
はじめに、Git 管理を開始して初期状態としてコミットします。

$ cd awake-sample
$ git init
$ git add -A
$ git commit -am "Innitial commit"

次に Heroku アプリを作成してプッシュ(アップロード)します。 $ heroku open はブラウザで公開先を開くコマンドです。

$ heroku create awake-sample
$ git push -u heroku master
$ heroku open

Terminal screen shot

Awake sample in browser after heroku open command

要領がわかったところで、お手元のファイルを public ディレクトリに配置します。
変更内容をコミットして Heroku にアップロードして完了です。

$ git add -A
$ git commit -am "update"
$ git push -u heroku master

ローカルで動作確認したいとき

動作に必要な Node.js のパッケージをインストールします。

$ npm install

HTTP サーバを起動してブラウザで確認します。

$ npm start

修正が必要になったら、そのまま public ディレクトリの内容を変更します。 反映されない場合は、ブラウザのキャッシュを確認してみてください。 HTTP サーバは control + C で停止します。

Basic認証をかける

ユーザー名とパスワードを使ってWebサイトに閲覧制限をかけることができます。
Procfile を以下のように編集します。

web: serve public --auth

変更内容をコミットします。

$ git commit -am "basic auth"

Herokuサーバに、Basic認証に使うユーザー名とパスワードを設定します。

$ heroku config:set SERVE_USER username
$ heroku config:set SERVE_PASSWORD password

リポジトリをHerokuに反映して完了です。

$ git push -u heroku master

  1. URL にこだわりがなければ、後述の $ heroku create コマンドで名称を未指定にすれば自動で生成されます。