I have been trying to figure out the best way to deploy and maintain node.js apps in development and production. If I have a local git repo on my machine, and I want to push it to production, what is the best way to do this? I don’t think the .git files should be there. I also don’t keep my modules in the repo, so I need a way to push updates, and make sure the newest dependencies are on the server.
I figured out that people are using a post-recieve script to update the site. This is what I ended up with. You put it in a file named post-receive in the hooks folder (on the server not on your local repo)
#!/bin/sh GIT_WORK_TREE=/opt/node/nodapp git --work-tree=$GIT_WORK_TREE checkout --force cd $GIT_WORK_TREE npm install
I may take this a step further and recycle pm2, but that is another post!