nodesterを使ってみた

nodesterを使った日本語の記事が少なかったのと、備忘録として記事を書いてみます。

nodesterはnode.jsを使うことができるPaaS(Platform as a Service)です。
node.jsを使うことができるPaaSは他にもDotCloudやjoyentなどがあります。
DotCloudではSocket.ioが使えなかったり、joyentは現在はいっぱいで、サブドメインがもらえないかもしれません。
というわけでnodesterを使うことにしました。

npmとgitを使いますが、インストールされていることを前提で書いています。
gitのインストールとnode,npmのインストールについては過去に書いたものがありますので、次の記事を参照してください。
gitをソースからインストール メモ - mintsu’s プログラミング日誌
node.js 導入してみた - mintsu’s プログラミング日誌

nodesterに登録

まずnodesterのWebサイトに行きます。
http://nodester.com/
「Request Registration Coupon」というところをクリックし、
メールアドレスを入力しそのメールアドレスにクーポンが届きます。
メールが届くまでに2,3日かかると思います。

クーポンが届いたら
http://nodester.com/help.html
こちらの「Registering with a Coupon Code」の「OR CHEAT」と書いてあるところをクリッククーポン、ユーザーネーム、パスワード、メールアドレス、公開鍵を入力します。

これで登録は完了です

アプリケーションを作るための準備

次に実際にnodesterでアプリケーションを作れるようにします

$npm install nodester-cli 
$nodester user setup <登録したユーザーネーム> <登録したパスワード> 
$nodester user setkey

アプリケーションを作る

実際にアプリケーションを作ってみます。

$nodester app create <appname>
$nodester app init <appname>

この状態でhttp://.nodester.com にアクセスするとHelloWorldが表示されるはずです。

アプリケーションを更新

アプリケーションの更新にはgitのコマンドを使います。

$cd ./<appname>

server.jsというファイルがあるのでこのファイルを編集します。
4行目のres.endの引数を適当に変更します
私はとりあえず
res.end('konnichiwa');
としてみました。

そして次のgitコマンドを打ちます

$git commit -am "<コミットメーッセージ>"
$git push origin master

これで更新完了です。先程のhttp://.nodester.com にアクセスしてみてください
「konnichiwa」と表示されているはずです。

すでに作ってあるアプリをデプロイする

すでに作ってあるアプリのあるフォルダに移動します。
gitでリポジトリをまだ作っていなければ。

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

とコマンドを打ちます。

$nodester app info <appname>
The "sys" module is now called "util". It should have a similar interface.
nodester info Gathering information about: appname
nodester info appname on port xxxx running: true (pid: xxxx)
nodester info gitrepo: git@nodester.com:/xxxxxx.git
nodester info appfile: server.js

nodester info gitrepo: の値をコピーするなりメモするなりしてください。

続いて

$git remote add nodester <先ほどコピしたgitrepoの値>
$git push nodester master

これで完了です。


*2012年2月4日変更
ちなみに、nodesterでsocket.ioを使う場合xhr-pollingにしないとうまく動かないようです。
私はsocket.ioを使ったチャットを作ったのですが

var io = require('socket.io').listen(app);
io.set('transports', ['xhr-polling']);

とすることでnodesterでうまく動くようになりました。
*2012年2月4日追記
nodesterのAPIコマンドを打ちモジュールをインストールすることでsocket.ioを使ってwebsocket通信できました。

package.jsonがしっかりと記述されていれば次のコマンドで必要なnpmのモジュールがインストールされると思います。

$nodester npm install <appname>
$nodester app restart <appname>

追加したいモジュールを

$nodester npm install <appname> <使いするパッケージ名>
$nodester app restart <appname>

と書いてもできます。

これでsocket.ioを使ってwebsocket通信をすることができました。


作ってみたチャットはこちら
http://mintsu1.nodester.com/