SetupDeployment

This page describes how to set up and deploy to staging and production servers.

Required server software

You need nginx or apache, ruby, rails, mongrel. For Debian/Ubuntu server execute:

apt-get install nginx ruby1.8 rdoc1.8 irb1.8
apt-get install sudo subversion gcc make libstdc++6-dev ruby1.8-dev libmysql-ruby
cd /tmp
wget http://rubyforge.org/frs/download.php/29548/rubygems-1.0.1.tgz #from http://rubyforge.org/frs/?group_id=126
tar xzf rubygems-1.0.1.tgz
cd rubygems-1.0.1 && ruby setup.rb
gem install rails -v=2.0.2 -y
gem install mongrel -y
apt-get install librmagick-ruby # if you need image magick support 

Edit the deploy.rb capistrano script

Adjust your application settings in config/deploy.rb Install capistrano gem:
gem install capistrano -y

Configure server, first time

Execute to setup application directories on servers:
cap deploy:setup
Create a folder /etc/rails/<application_name>
Create production db
# mysqladmin create <application_name>_production
# mysql
> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX ON <application_name>_production.* TO <app_user>@localhost IDENTIFIED BY 'Str0ng-Passw0rd!';
> FLUSH PRIVILEGES;
Copy to above folder database.yml and configure production db
Copy nginx.conf from the file tab to the /etc/nginx/ folder and modify it to sweet your needs and reload config
/etc/init.d/nginx reload
Run on local computer:
cap deploy
cap deploy:migrate
Note: To deploy to production servers, use:
ruby script/production_deploy
export PRODUCTION=1 && cap deploy:migrate
# or execute on the server:
rake db:migrate RAILS_ENV=production

Setting up continuous integration

You will need to install capistrano gem on deploy machine:
gem install capistrano -y
Copy deploy_project.sh from Files tab to machine, checkout your project in ~/projects folder and setup a cron job with command: crontab -e
0       *       *       *       *       /path/to/deploy_project.sh my_project


Copyright © 2006–2008 by Assembla, LLC / Phone 1.781.328.2241 / E-mail: info@assembla.com