Archive for the ‘merb’ Category
Capifying a Merb application
UPDATE: I was embarrassed that I actually get hits on this post, so I’m adding a stripped down example deploy.rb.
Create a directory named config in the Merb root (not inside dist).
Create your deploy.rb file inside the config directory. Here’s a stripped down version of what I have used:
# ./config/deploy.rb
# Do your merb daemon configuration in ./dist/conf/merb.yml
set :application, "awesome_thingummy"
set :scm_name, "thingummy"
set :repository, "svn://thelese.com/merb//trunk"
set :checkout, "checkout"
# =============================================================================
# ROLES
# =============================================================================
role :web, "slice1.automatthew.com"
role :app, "slice1.automatthew.com"
# =============================================================================
# OPTIONAL VARIABLES
# =============================================================================
set :deploy_to, "/var/www/apps/"
set :user, "deployer" # defaults to the currently logged in user
# set :scm, :darcs # defaults to :subversion
set :svn, "/opt/local/bin/svn"
set :merb, "/opt/local/bin/merb --merb-root /current"
task :spinner do
run merb
end
task :restart do
run " -k all"
run merb
end
task :update_code do
run " --quiet "
end
task :after_update_code do
run "ln -s /log /log"
end
desc "Deploy the app"
task :deploy do
transaction do
update_code
symlink
end
restart
end
Environment-specific setup in Merb
Merb has production and development environments that act much like their Rails counterparts. While there aren’t separate files for environment-specific configuration, you can get the same effect using a case statement at the bottom of merb_init.rb like so.
This is also a good place to stick database configuration when your dev is different than your prod.
Leave a Comment
Leave a Comment