Deploy Express(node) app on heroku

herokunodeExpress
tomoyukikashiro
tomoyukikashiro

Prerequisite

  • created heroku account.
  • installed heroku toolbelt.
  • develop express app and commit git repository (e.g. github).

Process (Command)

1. login by using heroku command

heroku login

Input email address and password of heroku account.

Enter your Heroku credentials.
Email: XXXXXX
Password (typing will be hidden):

2. create public key

ssh-keygen -t rsa -C "mail address"
heroku keys:add ~/.ssh/id_rsa.pub

3. clone Express app

$ git clone XXXXXXXXXXXXX ${appname}
$ cd ${appname}

4. edit .gitignore

vi .gitignore

Add follows text in .gitignore.

node_modules

5. edit package.json

You have to add follows settings to deploy your app on heroku in package.json.

vi .gitignore
vi package.json
"engines": {
    "node": "XXX",
    "npm": "XXX"
}

6. create web server process setting config

On hreoku, You have to create Procfile.
It is process configuration file you will start your app.

vi Procfile

Write follows text.

web: node app.js

8. create app on heroku

heroku create ${appname}
Creating ${appname}… done, stack is cedar
http://${appname}.herokuapp.com/ | [email protected]:${appname}.git
Git remote heroku added

9. push Express app code to heroku git repository

When you push code to heroku git repository. All npm dependency resources are installed.

git push heroku master

Reference

Other heroku command

start app on local

foreman start

check web server process

heroku ps:scale web=1

check heroku logs

Including access log.

heroku logs

run command on heroku

heroku run ${command}