Heroku Buttonを試してみた
先日Herokuから発表された、これ。
GitHubにあるのHerokuアプリを直接自分のHerokuアカウントにデプロイして動かせてしまうというもの。
Herokuでルートドメインの静的サイトを構築のときにも書いた通り、個人的に、静的なWebサイトの動作確認などでHerokuを活用させていただいていたりするので、これは使えるのでは、ということで試してみることにしました。
Heroku Buttonの設置準備
そもそもの前提として、
になります。
そこで、前述の記事でも書いていたumi-uyura/node-static-siteは、Node.jsベースでHerokuで動かす想定のものだったので、これに設置してみることにしました。
app.jsonを作る
Heroku上でアプリを実行するために必要な情報を記述しておくapp.jsonというファイルを用意します。
形式についてはapp.json Schema | Heroku Dev Centerに掲載されていますが、必須項目はないようです。
umi-uyura/node-static-siteには、環境変数にユーザー名とパスワードを設定することでBASIC認証を有効にできるようにしているので、app.jsonのenv
に指定しておきました。
{ "name": "node-static-site", "env": { "BASIC_AUTH_USER": "", "BASIC_AUTH_PASS": "" } }
ちなみにapp-json/app.jsonというツールがあることを初めて知りました。
$ npm install -g app.json
でインストールして、プロジェクト直下で
$ app.json init
とやると、Herokuのリモートリポジトリがある場合は、そこの情報を元にapp.jsonのひな形を生成してくれるようです。
それ以外にもvalidateなどの機能もあるようですね。
Heroku Buttonの設置方法
次に、Heroku Buttonの設置方法ですが、以下の2種類あるようです。
GitHub内のドキュメントに記載する場合
READMEなどに設置する場合は、Markdown形式で以下のリンクを記載しておくだけ。
[![Deploy](https://www.herokucdn.com/deploy/button.png)](https://heroku.com/deploy)
そうすると、referer
を元にリポジトリを特定してくれて、Herokuへデプロイしてくれます。
GitHub以外のWebサイトやブログなどに設置する場合
上記のリンクにtemplate
パラメータを加えてGitHubリポジトリURLを指定してあげるだけ。
umi-uyura/node-static-siteであれば、
[![Deploy](https://www.herokucdn.com/deploy/button.png)](https://heroku.com/deploy?template=https://github.com/umi-uyura/node-static-site)
HTMLで書くと、こんな感じらしいです。
<a href="https://heroku.com/deploy?template=https://github.com/umi-uyura/node-static-site"> <img src="https://www.herokucdn.com/deploy/button.png" alt="Deploy"> </a>
Heroku Buttonを設置してみる
というわけで設置してみました。
まずは、準備段階で作成したapp.jsonをcommitし、GitHubへpush。
その後、template
パラメータを指定したURLをブラウザで直叩きしてみます。
https://heroku.com/deploy?template=https://github.com/umi-uyura/node-static-site
すると以下のような、自分のHerokuアカウントへアプリを登録するための画面が表示されました。
自分のアカウントへ登録する際のアプリ名やリージョンの他に、env
で設定した環境変数の入力画面も表示されています。
BASIC認証が必要な場合は、アプリの登録と同時に認証情報も登録できるので便利ですね。
画面の下の方にあるDeploy for Freeボタンを押すと、進捗が表示されつつ、アプリが自分のHerokuアカウント上で動くようになりました。
その下にあるView Itのリンクをクリックすると、
というわけで、umi-uyura/node-static-siteのリポジトリのREADMEにもボタンを設置。
これで、毎回ローカルにcloneして色々書き換えてHerokuにpushして...といったことをしなくても、Heroku Deployボタン一発で環境が作れるようになりました。
いろんな人のHerokuアプリを手軽に自分の環境で動かせるようになるというのも楽しそう。