Nanoc3 Boilerplate
I put my personal nanoc boilerplate setup on GitHub. Maybe you find the deployment process useful.
Deployment Process
I assume you’re public html folder is called htdocs/
and you can create new folders below your domains folder but outside htdocs/
.
I also assume you use my Rakefile: upon rake build
it will checkout the branch ‘deploy’ and put all files from output/
in there. Uploading from ‘deploy’ to the production server will only copy the HTML output, not the nanoc setup.
-
Initialize bare production git repository on the server:
git init --bare ~/doms/example.com/git
-
You’ll want automatic updates when you push to the server. Use git’s own
post-receive
hook:# add to ~/doms/example.com/git/hooks/post-receive echo "Updating website ..." cd /the/full/path/to/doms/example.com/htdocs || exit unset GIT_DIR git pull origin echo "Update complete."
Make it executable:
chmod +x post-receive
-
Initialize git repository in
htdocs/
. This will point to the bare
repository on the server and check out the current version:# given you're in ~/doms/example.com/htdocs git init git remote add origin ../git # setup branch to pull from: git config branch.master.remote origin git config branch.master.merge refs/heads/deploy
-
Setup production server locally:
git remote add production ssh://user@example.com/~/doms/example.com/git/ git remote show production
-
Commit changes locally and put them on the server:
git commit rake build git push production deploy
You can push all branches via
git push production
to backup your code.
Only the branch ‘deploy’ will be visible to the public.
Sources
I once combed this together from various sources: