diff --git a/config/deploy.rb b/config/deploy.rb index 784f90b..ab0da3c 100644 --- a/config/deploy.rb +++ b/config/deploy.rb @@ -1,88 +1,143 @@ set :application, 'accescible_app' - set :domain, 'www.accescible-solutions.com' +set :domain, 'quartz-www02.sysnove.net' + + + +set :user, 'web' +set :scm_user, "git" +set :scm_host, "quartz.snlab.fr" + + + +set :rvm_ruby_string, 'ruby-2.1.2' +set :rvm_autolibs_flag, "read-only" + +set :bundle_cmd, "/srv/www/#{user}/.rvm/gems/#{rvm_ruby_string}@global/bin/bundle" +set :bundle_dir, "/srv/www/#{user}/.rvm/gems/#{rvm_ruby_string}" +set :use_sudo, false - set :rvm_ruby_string, 'ruby-1.9.3-p0' - set :rvm_type, :user - set :user, 'web' +set :deploy_to, "/srv/www/#{user}/#{application}/" +set :deploy_via, :remote_cache + +set :normalize_asset_timestamps, false + +set :rails_env, "production" + +role :app, domain +role :web, domain +role :db, domain, :primary => true + +set :scm, :git + +set :repository, "#{scm_user}@#{scm_host}:nicolas/#{application}.git" + +set :branch, "master" + +default_run_options[:pty] = true + + +require "rvm/capistrano" +require 'bundler/capistrano' - set :deploy_to, "/home/#{user}/#{application}/" - set :deploy_via, :remote_cache - set :normalize_asset_timestamps, false +load 'deploy/assets' +namespace :deploy do - set :rails_env, "production" +# namespace :assets do +# task :precompile, :roles => :web, :except => { :no_release => true } do +# from = source.next_revision(current_revision) +# if releases.length <= 1 || capture("cd #{latest_release} && #{source.local.log(from)} vendor/assets/ app/assets/ | wc -l").to_i > 0 +# run %Q{cd #{latest_release} && #{rake} RAILS_ENV=#{rails_env} #{asset_env} assets:precompile} +# else +# logger.info "Skipping asset pre-compilation because there were no asset changes" +# end +# end +# end - role :app, domain - role :web, domain - role :db, domain, :primary => true - - set :scm, :git - set :repository, "git@git.nicolasbally.com:root/#{application}.git" - set :branch, "master" - - default_run_options[:pty] = true - - - after "deploy", "deploy:bundle_gems" - after "deploy:bundle_gems", "deploy:make_simlinks" - after "deploy:make_simlinks", "deploy:init_d" - after "deploy:init_d", "deploy:restart" + desc "Symlink shared config files" + task :symlink_config_files do - after "deploy:restart", "deploy:cleanup" + run "ln -s #{deploy_to}shared/storage/private #{current_path}/private_medias" + + run "ln -s #{deploy_to}shared/storage/public #{current_path}/public/public_medias" - namespace :deploy do - task :init_d do - sudo "cp #{current_path}/config/unicorn_init_d /etc/init.d/#{application}" - - sudo "chmod +x /etc/init.d/#{application}" - sudo "update-rc.d #{application} defaults " - end + run "ln -s #{deploy_to}shared/production.sqlite3 #{current_path}/db/production.sqlite3" + + sudo "cp #{current_path}/config/env_init #{deploy_to}env_init" - task :reload_nginx do + sudo "sudo systemctl enable quartz_app@#{application}" + + + - sudo "rm -rf /etc/nginx/sites-enabled/#{application}" - sudo "ln -s #{current_path}/config/nginx.conf /etc/nginx/sites-enabled/#{application} " + end - sudo "service nginx reload" - end - task :bundle_gems do - run "cd #{deploy_to}current && bundle install" - end - task :make_simlinks do - run "rm -rf #{deploy_to}current/private_medias" - run "ln -s #{deploy_to}shared/storage/private #{deploy_to}current/private_medias" - run "rm -rf #{deploy_to}current/public/public_medias" - run "ln -s #{deploy_to}shared/storage/public #{deploy_to}current/public/public_medias" - end - task :start do - sudo "service #{application} start" - end - task :stop do - run "service #{application} stop" - end - task :restart, :roles => :app, :except => { :no_release => true } do - run "rm -rf #{deploy_to}current/private_medias" - run "ln -s #{deploy_to}shared/storage/private #{deploy_to}current/private_medias" - run "rm -rf #{deploy_to}current/public/public_medias" - run "ln -s #{deploy_to}shared/storage/public #{deploy_to}current/public/public_medias" - - sudo "service #{application} restart" - end - task :migrate do - run "cd #{deploy_to}current && rake db:migrate RAILS_ENV=#{rails_env}" + task :start do + sudo "systemctl start quartz_app@#{application}" + end + task :stop do + sudo "systemctl stop quartz_app@#{application}" + end + task :restart do + sudo "systemctl stop quartz_app@#{application}" + sudo "systemctl start quartz_app@#{application}" + end + + task :reload_nginx do + + sudo "rm -rf /etc/nginx/sites-enabled/#{application}" + sudo "ln -s #{current_path}/config/nginx.conf /etc/nginx/sites-enabled/#{application} " + + sudo "service nginx reload" + end + + + + task :seeds do + run "cd #{deploy_to}current && rake db:seed RAILS_ENV=#{rails_env}" + + end + + + task :create_files_folders do + + run "mkdir #{deploy_to}shared/storage" + run "mkdir #{deploy_to}shared/storage/private" + run "mkdir #{deploy_to}shared/storage/public" + end + + + +end + + +#before 'deploy:setup', 'rvm:install_rvm' # install RVM +#before 'deploy:setup', 'rvm:install_ruby' # install Ruby and create gemset, OR: +#before 'deploy:setup', 'rvm:create_gemset' # only create gemset + + + +after "deploy:setup", "deploy:create_files_folders" + +#after "deploy:restart", "deploy:cleanup" + + +before "deploy:restart", "deploy:symlink_config_files" + +after "deploy", "deploy:cleanup" + + - end - end \ No newline at end of file diff --git a/config/env_init b/config/env_init new file mode 100644 index 0000000..7e7534f --- /dev/null +++ b/config/env_init @@ -0,0 +1,7 @@ + +APP_RUBY=1.9.3-p0 +ENV=production +APP_ROOT=/srv/www/web/accescible_app/current/ +GEM_HOME=/srv/www/web/.rvm/gems/ruby-$APP_RUBY +UNICORN_OPTS="-D -E ${ENV} -c ${APP_ROOT}/config/unicorn.rb" + diff --git a/config/nginx.conf b/config/nginx.conf index 5054b0e..0487bb2 100644 --- a/config/nginx.conf +++ b/config/nginx.conf @@ -1,11 +1,11 @@ upstream accescible_app_unicorn { - server unix:/home/web/accescible_app/shared/unicorn.sock fail_timeout=0; + server unix:/srv/www/web/accescible_app/shared/unicorn.sock fail_timeout=0; } server { listen 80; server_name www.accescible-solutions.com; - root /home/web/accescible_app/current/public; + root /srv/www/web/accescible_app/current/public; try_files $uri/index.html $uri @unicorn; location @unicorn { diff --git a/config/unicorn.rb b/config/unicorn.rb index 2ddd126..2df6e8e 100644 --- a/config/unicorn.rb +++ b/config/unicorn.rb @@ -1,10 +1,10 @@ @rails_app = "accescible_app" -working_directory "/home/web/#{@rails_app}/current" -pid "/home/web/#{@rails_app}/shared/unicorn.pid" -stderr_path "/home/web/#{@rails_app}/shared/log/unicorn.log" -stdout_path "/home/web/#{@rails_app}/shared/log/unicorn.log" +working_directory "/srv/www/web/#{@rails_app}/current" +pid "/srv/www/web/#{@rails_app}/shared/unicorn.pid" +stderr_path "/srv/www/web/#{@rails_app}/shared/log/unicorn.log" +stdout_path "/srv/www/web/#{@rails_app}/shared/log/unicorn.log" -listen "/home/web/#{@rails_app}/shared/unicorn.sock" +listen "/srv/www/web/#{@rails_app}/shared/unicorn.sock" worker_processes 2 timeout 30 \ No newline at end of file