Viewing version 1 created 8 months ago by andy.
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- Replace all my_project string with your application_name.
- Set username and password for your repository by modifing scm_username and scm_password variables.
- Set your stage and production servers in role statements
gem install capistrano -y
Configure server, first time
Execute to setup application directories on servers:cap deploy:setupCreate 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 reloadRun on local computer:
cap deploy cap deploy:migrateNote: 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 -yCopy 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
This is the current version.