Meteor Fan (日本語情報)

JavaScriptフレームワークMeteorに関していろいろ紹介する日本語情報サイト

MeteorをHerokuにデプロイする方法

Meteorアプリは、meteor.comにデプロイする場合はコマンド一つなので楽ですが、その他にデプロイしようとすると意外と大変です。Meteorを普通のnode.jsアプリに変換するツールとしてdemeteorizermeteor-upがありますが、今回はHerokuに限定した方法を紹介します。

Heroku custom buildpack

Herokuにはbuildpackというgit pushしたデータをコンパイルなどして環境を作る仕組みがあります。RubyやNode.jsなど標準的なものはDefault buildpacksとして提供されているのですが、APIが公開されていて第三者が作るThird-Party Buildpacksというものがあります。

Meteor Buildpack Horse

Meteor Buildpack HorseはHerokuのMeteor用buildpackです。類似buildpackが乱立していたようですが、今のところこれがメンテされているようです。

これを使うと拍子抜けするくらい簡単です。使い方を見てみましょう。

使い方

HerokuでMeteor以外のNode.jsアプリをデプロイしたことがある前提で説明します。

初めにHerokuでアプリを作成します。Webインタフェースでもできますが、CLIでは下記のようにすると思います。

heroku create myapp

Meteor Buildpack Horseを設定します。(アプリのowner権限が必要)

heroku buildpacks:set https://github.com/AdmitHub/meteor-buildpack-horse.git

MeteorはMongoDBを使うので、そのためのアドオンを追加します。Webインタフェースでもできます。

heroku addons:create mongolab

最後に一つだけ設定しなければいけない環境変数があります。

heroku config:set ROOT_URL=https://myapp.herokuapp.com

URLの中身は適切に変えましょう。これもWebインタフェースから設定できます。

さて、以上で設定は終わりであとは通常と同じくgit pushすればよいだけです。

git push heroku master

リモートリポジトリherokuの設定が正しくされている前提です。

感想

一度設定してしまえば、あとは普通のnode.jsアプリと何ら変わらないのでとても自然です。buildpacksすばらしい。ただ、Meteorの仕様が変わってうまく動かなくなる可能性はあるので注意は必要です。頻繁に最新情報をチェックするのがよいでしょう。