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