読者です 読者をやめる 読者になる 読者になる

黒縁眼鏡は海を飛ぶ

IT中心にそこはかとなく

HerokuでMojoliciousアプリを動かしてみる

Herokuとは

ある程度の規模のアプリなら無料で利用可能なPaaSです。

Wikipedia先生によると

ベースとなるOSはDebian、もしくはDebianをベースに開発されたUbuntuである。
初期はRubyによるウェブアプリケーションフレームワークRuby on Railsのみのサポートであったが、Java、Node.js、ScalaClojurePythonPHPなど複数プログラミング言語をサポートするようになった。
データベースはPostgreSQLMySQL、Cloudant、Couchbase Server、MongoDB、Redisをサポートしている。

だそうで、Perlアプリもbuildpackを利用すれば登録可能です。


Herokuのアカウントを作る

何はともあれHerokuのアカウントを作りましょう。

名前、メールアドレス、使う言語なんかを入力するだけで簡単。


toolbeltインストール

Herokuにアプリを乗せるためにはtoolbeltが必要です。
ここから自分の環境用のものを入手しましょう。

インストールが終わったら、terminalでheroku loginを実行します。

$ heroku login
Installing Heroku Toolbelt v4... done.
For more information on Toolbelt v4: https://github.com/heroku/heroku-cli
Setting up node-v4.1.1...done
Installing core plugins heroku-cli-addons, heroku-apps, heroku-fork, heroku-git, heroku-local, heroku-run, heroku-status... done
Enter your Heroku credentials.
Email: 
Password (typing will be hidden): 
Logged in as 

実際は色々やってくれているそうですが、ユーザがやることはメールアドレスとパスワードを入力するだけ。

pushする準備

今回稼働させるアプリは、前作った自前のブログです。
はてなに戻ってしまったので用済みになってしまった。)

$ vim Procfile
eb: starman --preload-app --port $PORT app.psgi 

app.psgiは自分のアプリ用に書きませう。
あとは依存モジュールがあるならcpanfileに書きませう。

準備できたらローカルリポジトリにコミットします。

$ git init
$ git add .
$ git commit -m "first commit"

そんでもってアプリをHerokuに登録します。

$ heroku create appname --buildpack https://github.com/miyagawa/heroku-buildpack-perl.git

appnameと指定しているところがそのままサブドメインとして登録されます。
heroku-buildpack-perlはHerokuにPSGIアプリを登録するためのツール…という理解です。


いざpush。そしてアクセス

ここまでできたら後はpushするだけです。

$ git push heroku master

無事pushできたらheroku openしてみてください。
appname.herokuapp.comが見れましたかね?

自前のブログは折角なのでどこでもアクセスできる備忘録として残してますが、Text::Markdown::Discount拡張機能が有効にならないのでコード部分がぐちゃぐちゃになってます。悲しい。

謝辞

Perl製のWebアプリケーションをherokuで3分で動かすの法 - おそらくはそれさえも平凡な日々
Mojolicious::Liteで作ったアプリをHerokuで動かす - IT Office Nishimiyahara