HerokuでNode。

なんだかんだで、Herokuかぁ・・・と思いながら、Nodeでアプリを動かして見ました。

まあ、Herokuのドキュメント(Getting Started With Node.js on Heroku/Cedar)のとおりにやれば、大丈夫なわけですが。

rubyが入っていれば、Windowsでもできそうな気がするけど、Linuxでやったほうが困らないようです。
僕は、VirtualBoxUbuntuを入れて作業しました。

(1) Herokuに登録

これは、Herokuのサイト上から「Sign up」でOK。
すぐに使えます。

(2) 必要なものをインストール

Herokuのドキュメント(Getting Started with Heroku)を参考に。

git

悩まずにapt-getで。

sudo apt-get install git-core

確認は、

git --version

バージョンが表示されればOK。

ruby

ドキュメントでは1.9になってるけど、1.8でも大丈夫っぽい?

sudo apt-get install ruby

で。
確認は、

ruby --version

バージョンが表示されればOK。

gem

これもapt-getでOK。

sudo apt-get install rubygems1.8

確認は、

gem --version

バージョンが表示されればOK。

.bashrcにPATHの設定もわすれずに。(僕はこれを知らなくて悩んだ・・・)

export PATH=/var/lib/gems/1.8/bin:$PATH
heroku

これはgemで入れる。

sudo gem install heroku

確認は、

heroku version

バージョンが表示されればOK。

node

ローカルでの確認用。
NodeのバージョンはHerokuのドキュメントを見て。

wget http://nodejs.org/dist/node-v0.4.7.tar.gz
tar -zxvf node-v0.4.7.tar.gz
cd node-v0.4.7
./configure
make
sudo make install
npm

これもローカルでの確認用。

curl http://npmjs.org/install.sh | sudo sh
foreman

ローカル確認用に、これもあるといいらしい。

gem install foreman

(3)herokuの設定

インストールしたherokuでログイン情報を記憶

heroku login

登録した時のメアド、パスワードを聞かれるので、入力。
公開キーを作るか?と聞かれるので、作りたかったら、Y。作らなくても後で自分のキーを追加できるので、心配なさらずに。

※キーを登録しないと、後でgitにコミットしたりできません。

(4)ローカルでアプリを作る

まあ、まずはHelloでも出しておきますかね。

mkdir node-sample
cd node-sample
vim web.js

web.jsの中身は、こんな感じで。

var exp = require('express');
var app = exp.createServer(exp.logger());

app.get('/', function(req,res){
    res.send('Hello!!');
});

var port = process.env.PORT || 3000;

app.listen(port, function(){
    console.log("Listen on " + port);
});

console.log("Start sample");

あとは、同じディレクトリにpackage.jsonとProcfileが必要なので、それも。
まずは、package.json

{
        "name": "node-test",
        "version": "0.0.1",
        "dependencies": {
                "express": "2.2.0"
        }
}

次に、Procfile

web: node web.js

確認するなら、

foreman start

でちゃんと動けばOKかな。

(5)gitに登録。そしてherokuへデプロイ。

まずは、git。

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

そして、ここでheroku上にアプリを作成!そうすることで、gitのあれこれもやってくれる。

heroku create --stack cedar

Git remote heroku added

って出てたら、OK。
そして、push。

git push heroku master

なんか、pushするとそれがトリガーなのか、いろいろ出てくる。

(6)heroku側の操作

これを最初にする必要があるのかな?

heroku ps:scale web=1

プロセスの稼働状況を見る

heroku ps

web.1があればOK。

再起動するなら

heroku ps:restart web.1

ログを見るなら、初回のみアドオン登録が必要。

heroku addons:add logging

最新ログを見る場合は、

heroku logs

tail -f的なのは、

heroku logs -t

あとは、アプリのURLにアクセスしてみて、Helloが出てくればOK。
Scriptを変えたりして遊ぶといいかと。