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.
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