My New Rails Deploy Method
I recently learned that capistrano can temporarily take down the web server while it’s being updated. This sounded like a very good idea to me, so I’ve started to use it. The only change I needed to make was to my /etc/httpd/conf/httpd.conf file. My virtual host now looks like this:
<VirtualHost *:80>
ServerName survey.example.com
DocumentRoot /local/data1/web/app/hepsurvey/current/public
ErrorDocument 503 /system/maintenance.html
RewriteEngine On
RewriteCond %{REQUEST_URI} !.(css|gif|jpg|png)$
RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f
RewriteCond %{SCRIPT_FILENAME} !maintenance.html
RewriteRule ^.*$ - [redirect=503,last]
</VirtualHost>
Then, to update, I use these commands.
git status git commit -a git push --all cap deploy:web:disable cap deploy cap deploy:web:enable