среда, 12 декабря 2012 г.

Простой способ сделать Capistrano multistage

Простой, как двери, рецепт успеха:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
desc "Run tasks in production enviroment."
task :production do
  # Production nodes 
  role :app"192.168.1.30"
  role :app"192.168.2.30"
  role :db,  "192.168.1.30":primary => true
end 

desc "Run tasks in staging enviroment."
task :staging do
  # Staging nodes 
  role :web"192.168.1.60"
  role :app"192.168.2.60"
  role :db,  "192.168.1.60":primary=>true
end

 

1
2
3
4
5
cap staging deploy:check
cap staging deploy
# or 
cap production deploy:check
cap production deploy

http://www.pastbedti.me/2009/01/handling-a-staging-environment-with-capistrano-rails/

Деплой Rails приложения Phusion Passenger для Apache и для Nginx

Несколько полезностей было найдено в направлении деплоя рейл приложений на типовой хостинг:

1. Деплой Rails на rvm + passenger + nginx

  - установить rvm, в rvm установить нужный ruby, установить gem passenger, затем passenger-install-module-nginx вытянет сорцы, вкомпилит модуль и установит (чаще всего в /opt/nginx) nginx. Запускать прийдется руками, добавлять скрипты в init.d. Из apt-get не рекомендуют ничего из выше перечисленного ставить.

2. Деплой на Rails rvm + passenger + apache2

 - установить rvm, нужный руби, установить gem passenger

 - apt-get install apache2

 - passender-install-module-apache установит просто модуль к уже готовому апачу, что, конечно, приятнее.

 

Для корректного использования RVM при деплое прийдется юзать в capistrano gem

Gemfile

gem 'capistrano_rvm'

 

bundle install, как водится

после чего в deploy.rb добавить

require "rvm/capistrano" (без этого не работает http://stackoverflow.com/questions/5541721/capistrano-bundle-not-found-error-during-deployment)

и в принципе все.

 

Без этого хостинг с RVM работать нормально не будет.

Страшно полезным оказался гем "capistrano_database_yml" который деплоит на хостинг конфиг базы из "config/database.example.yml"

http://www.simonecarletti.com/blog/2009/06/capistrano-and-database-yml/ он же https://github.com/amfranz/capistrano_database_yml

 

Еще какой-то туториал, но тут все ручное http://it-giki.com/post/467.html

понедельник, 10 декабря 2012 г.

Что бы работал :git => "github/mymodule" в capistrano:deploy необходимо

указать в deploy.rb

ssh_options[:forward_agent] = true
default_run_options[:pty] = true

это будет пробрасывать в удаленный шелл ваши локальные ключи

и первый раз из шелла на удаленном сервере сделать

ssh git@github.com для того что бы github.com был добавлен в known hosts


вторник, 18 сентября 2012 г.

Замечательный пример acts_as_taggable_on и rails3-jquery-autocomplete

рулит и бибикает применение двух гемов для функционала "теги с автокомплитом"
 

http://stackoverflow.com/questions/4486745/rails-autocomplete-tags-separated-by-commas-using-regex

понедельник, 27 августа 2012 г.

вместо time_ago_in_words рекомендую JS решение

Гораздо более прикольное решение вместо time_ago_in_words на основе JQuery
 

https://github.com/jgraichen/rails-timeago

понедельник, 7 мая 2012 г.

воскресенье, 8 апреля 2012 г.