I use the following Capistrano script to manage deployment of my blog to Dreamhost. It is a modified version of the deploy script provided on the Radiant CMS wiki, and it addresses two bugs involving the svn username and password.
To use it, capify your working rails directory and then replace /config/deploy.rb with the code below:
set :user, '' #dreamhost username goes here set :application, "" #dreamhost domain name goes here set :repository, "" #path to your svn repo set :scm_username, "" #svn username # ============================================================================= # You shouldn't have to modify the rest of these # ============================================================================= role :web, application role :app, application role :db, application, :primary => true set :deploy_to, "/home/#{user}/#{application}" # set :svn, "/path/to/svn" # defaults to searching the PATH set :use_sudo, false # set :restart_via, :run set(:scm_password) { Capistrano::CLI.password_prompt } # saves space by only keeping last 3 when running cleanup set :keep_releases, 3 # issues svn export instead of checkout set :checkout, "checkout" # keeps a local checkout of the repository on the server to get faster deployments set :deploy_via, :remote_cache ssh_options[:paranoid] = false # ============================================================================= # OVERRIDE TASKS # ============================================================================= namespace :deploy do desc "Restart Passenger" task :restart, :roles => :app do run "touch #{current_path}/tmp/restart.txt" end desc <<-DESC Deploy and run pending migrations. This will work similarly to the \ `deploy' task, but will also run any pending migrations (via the \ `deploy:migrate' task) prior to updating the symlink. Note that the \ update in this case it is not atomic, and transactions are not used, \ because migrations are not guaranteed to be reversible. DESC task :migrations do set :migrate_target, :latest update_code migrate symlink restart end end