名称未定ドキュメント"Que"

ゴーゴーカレーでロースカツビジネスルー増し頼んでキャベツを4回おかわりするブログ

Joyentでnode.jsのプログラムを動かそう!

ここ半年くらい、node.jsをつかったプロダクトを仕事で作ってましたが(node.jsとはまたちょっと違うというアレなんですけど……)その仕事が一段落したので、node.jsを使ってwebsocketの練習をしてました。

Macにnodeをインストールして、npmを入れて、socket.ioをいれてごにょごにょ……というような作業をしていたのですが、成果物を見せびらかすのにlocalhostはいろいろ面倒。socketなんだからたくさんのユーザに同時接続してほしいし、スマートフォンからも接続してほしいし……。

ちゅうわけで、node.jsが動くホスティングサービスを探してみました。
最初はdotcloud使おうかとおもったんですが、デプロイするのにコマンドラインツールを入れろとか言われて面倒。ぽーい。
つぎに、herokuを検討。だが、よくわからん。なんかrailsのイメージ強いしなぁ……。

そこで、最後に Joyent を試してみたら、これがいいじゃない。
まず URL が素敵です。

http://no.de/

ですよ。
デプロイ方法は簡単。
sshの設定して、git push すればOK
こりゃ楽だ〜

まずはアカウントつくります。
まぁ、名前とかメールアドレスとかそんないつもの奴です。

それが終わったら、sshの設定があります。
アカウントの名前を設定して、公開鍵を設定します。
コマンドラインで、 ssh-keygen を実行します。
で、指示に従ってパスフレーズを入力。
んで、 (デフォルトなら) ~/.ssh/id_rsa.pub が公開鍵なんですが、この中身をJoyentの管理画面に貼り付けるです。
catして、中身を全部コピーすればよいでしょう。

これで初期準備完了。

つぎにアプリケーションの初期設定を行います。
アプリケーションの名前(URLになる)を決めます。 たとえば exampleって名前だったら http://example.no.de になります。
すると、管理画面にsshの設定をしましょうととでてきます。
~/.ssh/config に 指示通りの設定します。

さて、いよいよデプロイです。
もう最近だとgitで管理してますよねー。ちゅうわけでJoyentにgit push すればデプロイ完了です。
git push example.no.de master

これでデプロイ完了~。ね、簡単でしょ?


……なんですが、いくつか注意点。
一つ目は、エントリーポイントは server.js で有ることが必要です。
サーバの起動コマンドが node server.js で固定なので、server.jsがないといけません。
expressなんかを使って雛形をつくっていたら app.js になるので注意です。

次に、 package.json を適切に設定する必要があります。
git push したときに、自動で依存関係のモジュールの導入が行われます。
これは package.jsonを元に導入が行われますので、注意が必要です。

最後に、package.jsonの話と関連があるのですが、 node_module を .gitignoreについかしてください。
node_module/*
みたいなかんじで。
すでに node_moduleをgit add しているのであれば、 .gitignoreを設定して、 git rm -r node_module/* して、git push してください。
そして、 npm install -d すればOK
こうしないと、git push したときの依存性注入で失敗します。

これで、joyentについてはOK です。
楽しいnode.js 生活を!


……ついでに、joyentは80番ポートしか使えませんので、もしもスクリプトの中で他のポートを指定している場合は80番指定に直しておきましょう。