templates/rails_app/config/deploy.rb.tt in railman-0.3.7 vs templates/rails_app/config/deploy.rb.tt in railman-0.4.0
- old
+ new
@@ -1,130 +1,6 @@
-# Capistrano deployment tasks
-lock '3.4.1'
+# Capistrano deployment configuration
-require 'securerandom'
-
set :application, '<%= @config.app_name %>'
set :repo_url, '<%= @repository.origin %>'
-set :deploy_to, "/home/deploy/apps/#{fetch(:application)}"
-set :rbenv_home, '/home/deploy/.rbenv'
-set :environment, {path: "#{fetch(:rbenv_home)}/shims:#{fetch(:rbenv_home)}/bin:$PATH", rails_env: 'production'}
+# append :sync_dirs, 'public/system', 'public/files'
set :log_level, :info
-
-SSHKit.config.command_map[:rake] = "#{fetch(:deploy_to)}/bin/rake"
-%w(ln service start restart stop status).each do |cmd|
- SSHKit.config.command_map[cmd.to_sym] = "sudo #{cmd}"
-end
-SSHKit.config.command_map[:eye] = "#{fetch(:rbenv_home)}/shims/eye"
-SSHKit.config.command_map[:su_rm] = "sudo rm"
-
-desc "Setup rails application for the first time on a server"
-task :setup do
- on roles(:all) do
- with fetch(:environment) do
- if test "[ -d #{fetch(:deploy_to)} ]"
- within fetch(:deploy_to) do
- execute :git, :fetch, 'origin'
- execute :git, :reset, '--hard origin/master'
- end
- else
- execute :git, :clone, fetch(:repo_url), fetch(:deploy_to)
- end
- server_conf_dir = "#{fetch(:deploy_to)}/config/server"
- execute :ln, "-s -f #{server_conf_dir}/nginx.conf /etc/nginx/conf.d/#{fetch(:application)}.conf"
- execute :ln, "-s -f #{server_conf_dir}/letsencrypt.conf /etc/nginx/letsencrypt/#{fetch(:application)}.conf"
- execute :ln, "-s -f #{server_conf_dir}/logrotate.conf /etc/logrotate.d/#{fetch(:application)}"
- within fetch(:deploy_to) do
- execute :bundle, :install, "--without development test"
- execute :mkdir, "-p #{fetch(:deploy_to)}/tmp/pids"
- if test "[ -f #{fetch(:deploy_to)}/.env ]"
- execute :rake, 'db:create'
- if test "[ -f #{fetch(:deploy_to)}/db/#{fetch(:application)}.sql ]"
- execute :psql, "-d #{fetch(:application)}_production", "-f db/#{fetch(:application)}.sql"
- end
- execute :rake, 'db:migrate'
- execute :rake, 'assets:precompile'
- execute :eye, :load, 'Eyefile'
- execute :eye, :start, fetch(:application)
- execute :service, "nginx restart"
- else
- execute :cp, '.env.example.production', '.env'
- execute "sed -i -e 's/TODO: generate with: rake secret/#{SecureRandom.hex(64)}/g' #{fetch(:deploy_to)}/.env"
- warn "TODO: Edit .env and modify your database and smtp settings."
- warn "TODO: Create ssl certificates by running the following command as root: /etc/letsencrypt/generate_letsencrypt.sh"
- warn "TODO: Run 'cap ENV setup' again!"
- end
- end
- end
- end
-end
-
-desc "Remove the application completely from the server"
-task :remove do
- on roles(:all) do
- with fetch(:environment) do
- within fetch(:deploy_to) do
- execute :eye, :load, 'Eyefile'
- execute :eye, :stop, fetch(:application)
- execute :rake, 'db:drop'
- execute :su_rm, "-rf #{fetch(:deploy_to)}"
- end if test "[ -d #{fetch(:deploy_to)} ]"
- execute :su_rm, "-f /etc/nginx/conf.d/#{fetch(:application)}.conf"
- execute :su_rm, "-f /etc/nginx/letsencrypt/#{fetch(:application)}.conf"
- execute :su_rm, "-f /etc/logrotate.d/#{fetch(:application)}"
- execute :service, "nginx restart"
- end
- end
-end
-
-desc "Deploy rails application"
-task :deploy do
- on roles(:all) do
- with fetch(:environment) do
- within fetch(:deploy_to) do
- execute :git, :fetch, 'origin'
- execute :git, :reset, '--hard origin/master'
- execute :bundle, :install
- execute :rake, 'db:migrate'
- execute :rake, 'assets:precompile'
- execute :eye, :load, 'Eyefile'
- execute :eye, :restart, fetch(:application)
- execute :service, "nginx restart"
- end
- end
- end
-end
-
-desc "Copy database from the server to the local machine"
-task :sync_local do
- on roles(:all) do
- within fetch(:deploy_to) do
- execute :pg_dump, "-U deploy --clean #{fetch(:application)}_production > db/#{fetch(:application)}.sql"
- download! "#{fetch(:deploy_to)}/db/#{fetch(:application)}.sql", 'db'
- end
- end
- run_locally do
- execute "psql -d #{fetch(:application)}_development -f db/#{fetch(:application)}.sql"
- end
-end
-
-desc "Recreate server database from db/#{fetch(:application)}.sql"
-task :reset_server do
- on roles(:all) do
- with fetch(:environment) do
- within fetch(:deploy_to) do
- execute :eye, :load, 'Eyefile'
- execute :eye, :stop, fetch(:application)
- execute :git, :fetch, 'origin'
- execute :git, :reset, '--hard origin/master'
- execute :rake, 'db:drop'
- execute :rake, 'db:create'
- if test "[ -f #{fetch(:deploy_to)}/db/#{fetch(:application)}.sql ]"
- execute :psql, "-d #{fetch(:application)}_production", "-f db/#{fetch(:application)}.sql"
- end
- execute :rake, 'db:migrate'
- execute :eye, :start, fetch(:application)
- execute :service, "nginx restart"
- end
- end
- end
-end