Hosting webů v Ruby on Rails klubu Silicon Hill.

Tento server slouží pouze pro hosting webů v Ruby on Rails. Pro hostování webů v php slouží PHP Hosting. Lze použít jakoukoliv verzi ruby dle potřeb, minimálně však 1.9.3, a je dostupná postgres databáze ve verzi 9.1. Pro sledování návštěvnosti je možné použít Piwik.

Jak na deploy aplikace

Pro deploy se používá Capistrano.

Ve zkratce: Jde o gem pro deploy aplikací na server. Deploy proces probíhá tak, že se vytvoří SSH připojení a pak se stáhne aplikace z verzovacího systému a provedou další tasky (např.: instalace gemů, kompilace assetů, vytvoření linků na sdílený obsah mezi verzemi ...) a nakonec, pokud vše proběhne v pořádku, restart aplikace.

Pro Capistrano ve verzi 2:

# Nejprve nainstalujeme gem na lokalni stroj, ze ktereho se bude provadet deploy
gem install capistrano
# Nechame automaticky vytvorit potrebne soubory
cd /moje/aplikace
capify .

Zde je ukázkový soubor config/deploy.rb pro deploy aplikace na rails hosting:

set :application, "support.sh.cvut.cz"
role :web, "rails.sh.cvut.cz"                          # Your HTTP server, Apache/etc
role :app, "rails.sh.cvut.cz"                          # This may be the same as your `Web` server
role :db,  "rails.sh.cvut.cz", :primary => true # This is where Rails migrations will run

set :user, "support"  # The server's user for deploys
set :deploy_to, "/home/#{user}/www/"
set :use_sudo, false
set :ssh_options, {:paranoid => false, :forward_agent => true}

set :scm, "git"
set :repository, "git@git.sh.cvut.cz:web-support.git"
set :branch, "master"

set :rake, 'r193_bundle exec rake' # for db:migrate etc.
set :default_environment, {
  'PATH' => "/usr/local/rvm/bin/:$PATH",
  'RAILS_ENV' => "production"
}

namespace :deploy do
  desc "Tell Passenger to restart the app."
  task :restart do
    run "touch #{current_path}/tmp/restart.txt"
  end

  desc "Try to install gems."
  task :bundle_install do
    run "cd #{release_path} && r193_bundle install --without test --without development --path #{deploy_to}/bundle"
  end

  desc "Precompile assets."
  task :precompile_assets do
    run "cd #{release_path}; r193_bundle exec rake assets:precompile"
  end
end

after 'deploy:update_code', 'deploy:bundle_install'
after 'deploy:bundle_install', 'deploy:precompile_assets'
after 'deploy:precompile_assets', 'deploy:migrate'

after "deploy:update", "deploy:cleanup"

      
# === Pri prvnim deployi
# Necháme Capitrano vytvorit potrebnou adresarovou strukturu
cap deploy:setup
# Zkontorlujem, zda je vse pripraveno
cap deploy:check

# === Pri kazdem deployi
# Nechame Capistrano nahrat aktualni verzi z repozitace na rails hosting
cap deploy