Over a year ago, I wrote a post about how to get the then-new Mongrel_cluster working with Capistrano. Since then, I have not had to touch my deployment config again.
2 days ago I needed to do a new deployment config and I thought I’d look at my config again. In reflection, it a bit dodgy, but at the time it was the best way! Honest! Also I note that in my original post, there’s broken links, and also that it is still far and away the most popular content on my site (direct links were almost 25% of the traffic!), so best to make it all new-like.
What do you do these days then?
- Get yourself mongrel and install the mongrel_cluster gem too:
# sudo gem install mongrel mongrel_cluster –include-dependencies - Go to the root of your Rails app
- Get a mongrel_cluster config:
# mongrel_rails cluster::configure -e production \
-p 8000 \
-a 127.0.0.1 \
-N 3 \
-c /path/to/the/application’s/current - Open up the /config/deploy.rb file and add:
require ‘mongrel_cluster/recipes’
set :mongrel_conf, “#{current_path}/config/mongrel_cluster.yml”
You’ll still need to add the @restart task something like this to ensure that the app comes up with the box:
@restart cd /path/to/the/application's/current && mongrel_rails cluster::start
Use cap cold_deploy to launch your app for the first time, and cap deploy to redeploy (cap deploy_with_migrations for your db updates too.)
Then all you need to do in configure your favourite proxy to serve the app from ports 80/443/whatever, and you’re good to go. I am using Apache 2.2, but perhaps soon I’ll have time to set up Swiftiply…
One reply on “Capistrano, Mongrel, and Mongrel_cluster Redux”
[…] EDIT 2007-06-05: An updated version of this is up here… […]