1) заходим в папку проекта на локальном компьютере.
2) выполняем команду "capify ."
3) содержимое файла "проект/config/deploy.rb" меняем на, попутно не забыв поменять специфичные для проекта и аккаунта на locum.ru данные:
#========================================
#========================================
# _your_login_ - Поменять на ваш логин в панели управления
# _your_project_ - Поменять на имя вашего проекта
# _your_server_ - Поменять на имя вашего сервера (Указано на вкладке "FTP и SSH" вашей панели управления)
# set :repository - Установить расположение вашего репозитория
# У вас должна быть настроена авторизация ssh по сертификатам
set :application, "aaa"
set :repository, "file:///home/trololo/megaproject"
set :deploy_via, :copy
dpath = "/home/hosting_your_login/projects/_your_project_"
set :user, "hosting_your_login"
set :use_sudo, false
set :deploy_to, dpath
set :scm, :git
role :web, "_your_server_.locum.ru" # Your HTTP server, Apache/etc
role :app, "_your_server_.locum.ru" # This may be the same as your `Web` server
role :db, "_your_server_.locum.ru", :primary => true # This is where Rails migrations will run
after "deploy:update_code", :copy_database_config
task :copy_database_config, roles => :app do
db_config = "#{shared_path}/database.yml"
run "cp #{db_config} #{release_path}/config/database.yml"
end
set :unicorn_rails, "/var/lib/gems/1.8/bin/unicorn_rails"
set :unicorn_conf, "/etc/unicorn/_your_project_._your_login_.rb"
set :unicorn_pid, "/var/run/unicorn/_your_project_._your_login_.pid"
# - for unicorn - #
namespace :deploy do
desc "Start application"
task :start, :roles => :app do
run "#{unicorn_rails} -Dc #{unicorn_conf}"
end
desc "Stop application"
task :stop, :roles => :app do
run "[ -f #{unicorn_pid} ] && kill -QUIT `cat #{unicorn_pid}`"
end
desc "Restart Application"
task :restart, :roles => :app do
run "[ -f #{unicorn_pid} ] && kill -USR2 `cat #{unicorn_pid}` || #{unicorn_rails} -Dc #{unicorn_conf}"
end
end
#========================================
#========================================
4) выполняем команды:
git init
git add.
git commit -m "new app"
5) выполнить команду:
cap deploy:setup
данная команда только создаст на сервере необходимую структуру каталогов.
6) создать файл database.yml в папке "~/projects/megaproject/shared" на сервере и поменять на специфичную для сервера конфигурацию базы данных. Это файл будет использовать всякий раз, как вы будете обновлять свой код на сервере. Он будет автоматичеси затирать файл, используемый на вашем локальном компьютере.
7) выполняем команду:
cap deploy
или
cap deploy:update_code
данная команда зальет ваш проект на locum.ru и поменяет файл database.yml на файл, залитый на сервер на предыдущем шаге.
8) радуемся.
ЗЫ данный файл deploy.rb отличается от файла с сайта locum.ru двумя строчками:
set :repository, "file:///home/trololo/megaproject"
set :deploy_via, :copy
перая строчка - директория локального проекта, а не сервер.
вторая сторчка указывает стратегию обновления: проект архивируется, отправляется на сервер и обрабатывается на нем.