I needed to make a change, I should write more often. I decided to switch my personal website to Ghost platform.
Sean V Baker wrote fantastic article "A Ghost Workflow" on how to automate Ghost deployment with Git. Following Sean's article and Ghost installation tutorial I set up the workflow, modified Crossing theme and I was ready!
The only difference, instead of using Upstart script described in the article I used supervisor to run Ghost at startup.
apt-get install supervisor service supervisor start
Create a new script file in
[program:ghost] command = node /var/www/ghost/index.js directory = /var/www/ghost user = ghost autostart = true autorestart = true stdout_logfile = /var/log/supervisor/ghost.log stderr_logfile = /var/log/supervisor/ghost_err.log environment = NODE_ENV="production"
supervisorctl reread supervisorctl update
Ghost can be controlled by executing
supervisorctl start ghost and
supervisorctl stop ghost
My post-receive hook:
#!/bin/sh GIT_WORK_TREE=/var/www/ git checkout -f sudo /usr/bin/supervisorctl restart ghost
It will probably take a few days to transfer old content and services, but Ghost's speed and ease of use are amazing.