Edited at

Node.jsをHerokuへデプロイ

More than 5 years have passed since last update.


heroku toolbeltのインストール

heroku toolbeld(heroku推奨)

https://toolbelt.heroku.com/

herokuコマンドと同時にrubyとgitが同時にインストールされる。

すでにRubyや、windowsでmsysgitをインストールしていると、rubyやgitのバージョンが下がることもある。

すでにRubyをインストールしている場合は

$ gem install heroku

herokuツールベルトのバージョン確認

$ heroku version

herokuコマンドのhelp

$ heroku help


herokuにログイン

herokuに登録したEメールとパスワードをきかれる

$ heroku login

sshキーが使用中のPCアカウントになければsshキーの生成

$ ssh-keygen

windowsではssh-keygenコマンドは実行できないが、msysgitを使えば可能

herokuにssh公開鍵をアップロード

$ heroku keys:add ~/.ssh/id_rsa.pub

herokuの管理画面からでも可能


Herokuにからアプリをコマンドから生成

cd アプリのパス

git init

git status

herokuに空アプリ生成

heroku create アプリ名(半角英数字記号ハイフンのみ)

※heroku createだけだと勝手にアプリ名が付けられる

package.jsonに使用するモジュールを記述

※Expressを使用する場合はpackage.jsonのファイルは自動生成される


package.json

{

"name": "application-name",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node app.js"
},

"engine": {
"node": "v0.10.x",
"npm": "1.3.x"
},
"dependencies": {
"express": "3.3.4",
"ejs": "*",
"mongodb": "*" //←使用するモジュールを追加しておく
}
}


参考

Node.jsのバージョン確認

node -v

npmコマンドのバージョン確認

npm -v


Procfile作成

アプリを起動するコマンドを指定(※拡張子なし)


Procfile

web: node app.js 


CoffeeScriptで起動する場合


Procfile

web: node app.coffee


デプロイする前にコミットしておく

cd myapp

git init

git add Procfile *.js *.json public views routes

git commit -m "コミットメッセージ"

git tag v1.0

node_moduleは.gitignoreに登録


.gitignore

node_modules

.
.

リモートリポジトリ追加

※heroku create app名のときに自動的に追加されている

git remote add heroku git@heroku.com:アプリ名.git

リモートリポジトリ削除

git remote remove heroku

herokuにpush

git push heroku master

アプリを既定のブラウザで起動

heroku open

更新

git add .

git commit -m "message"

git push heroku master

heroku run rake db:migrade

heroku run rake db:seed


package.json

{

"name": "sample03",
"version": "0.0.1",
"private": true,
"scripts" : {
"start": "node app"
}
"engines": {
"node": "0.8.x",
"npm": "1.1.x"
}
"dependencies": {
"express": "3.0.0beta7",
"jade": "*"
}
}

Procfile

web: node app.js

foreman start

ローカルでアプリケーションが実行できるか確認するコマンド

ctrl + c

heroku apps:info

heroku logs

heroku apps:destroy

heroku apps:destroy -a node-sample-2012-0922 --confirm node-sample-2012-0922

参考

Herokuで作るFacebookアプリ

http://gihyo.jp/dev/serial/01/heroku

heroku再起動

heroku restart