This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ==== Aanleveren van een Ruby-on-Rails applicatie ==== Applicaties kunt u zelf plaatsen door ze op de upload-server in de juiste web-app directory neer te zetten. Het is ook mogelijk dit door NPO Hosting en Streaming te laten doen. Wij gaan er dan vanuit dat er 1 complete tar file aangeleverd wordt (bv dmv een url waarvan wij de tar file kunnen downloaden). Vervolgens zullen wij de tar file plaatsen. Wij verwachten dat naast de tar file installatie instructies aangeleverd worden. Het configureren van de passenger/apache-server wordt altijd door NPO Hosting en Streaming gedaan. Idem voor frontproxy en databases. Het configureren van de applicatie zal meestal in samenspraak tussen NPO Hosting en Streaming en de sitebouwer gebeuren. Zaken waar NPO Hosting en Streaming zich mee bemoeit zijn: * Database parameters ''config/database.yml''; de database wordt door NPO Hosting en Streaming aangemaakt. login namen en database passwords zijn daar eventueel op te vragen) U kunt deze file eenvoudig gebruiken door een symlink te maken, voor applicatie X <code>ln -sfn /e/ap/X/config/database.yml /e/ap/X/rails/config/database.yml</code> * Applicatie logfiles; Een railsapplicatie X logt onder ''/e/ap/X/log'' de bestanden hierin worden boven de 10MB getrunceerd, gelieve hier dus met beleid naar toe te loggen, gebruik liever de apache error-log. Met een symbolic link vanuit de root van de railsapplicatie is dit te realiseren. In rails-2 zelf kunt u dit doen in bijv. ''environment.rb'': <code> DEPLOY_PATH = '/e/ap/X' config.log_path = "#{DEPLOY_PATH}/log/#{`id -un`.chomp}-#{RAILS_ENV}.log" </code> in rails-3 <code> DEPLOY_PATH = '/e/ap/X' config.logger = Logger.new("#{DEPLOY_PATH}/log/#{`id -un`.chomp}-#{Rails.env}.log") config.logger.level = Logger::WARN </code> of, als alternatief via de apache error-log <code> config.logger = Logger.new(STDERR) config.logger.level = Logger::WARN </code> * tmpdir; De rails tmpdir van een applicatie X wordt geacht te zijn ''/e/ap/X/tmp'' ook hier kan een symbolic link diensten bewijzen. In rails zelf kunt u dit doen voor bijv. sessions in ''environment.rb'': <code> ActionController::Base.session_options[:tmpdir] = "#{DEPLOY_PATH}/tmp/sessions/" </code> * gems; Binaire (gecompileerde) gems willen wij graag compileren om makkelijk software en OS upgrades uit te kunnen voeren. Overige gems worden geacht in de applicatie 'gefreezed' of als 'gem' geinstalleerd te worden. Bij initiële oplevering plaatst NPO Hosting en Streaming een lege rails applicatie van een willekeurige versie om een werkende set-up te kunnen tonen. Deze kunt u uiteraard naar believen overschrijven of verwijderen. Per applicatie wordt een bijbehorende ruby 'binary' opgeleverd Voor een applicatie X is dat <code> /e/ap/X/bin/ruby </code> deze sourced z'n environment variablen uit: <code> /e/ap/X/bin/env </code> Voor elke applicatie wordt een plekje gereserveerd om door u zelf geïnstalleerde gems in op te slaan <code> /e/ap/X/rails/lib </code> Zo maak je je eigen gem repository: <code> source /e/ap/X/rails/bin/env gem install --no-rdoc --no-ri -E mygem-0.0.gem gem list </code> Het herstarten van passenger kunt u zelf veroorzaken door een ''touch'' van ''/e/ap/X/rails/current/config/restart.txt'' uit te voeren. Passenger instanties draaien in principe in 'production' mode. Een potentieel deploy-script inclusief bundler: <code> after 'deploy:finalize_update', 'deploy:bundle' namespace :deploy do desc "NPO Bundler magic" task :bundle, :roles => :app do run "cd #{release_path} && bundle --quiet --without development test" end end </code> Voor bundler is het ook -erg- belangrijk om bestaande .bundle/config files weg te halen. sterretje-cluster/appcluster-hosting_ruby-on-rails.txt Last modified: 2026/05/27 14:01by 127.0.0.1 Log In