diff --git a/Capfile b/Capfile deleted file mode 100644 index 9d7f1f7e8..000000000 --- a/Capfile +++ /dev/null @@ -1,21 +0,0 @@ -# Load DSL and set up stages -require 'capistrano/setup' - -# Include default deployment tasks -require 'capistrano/deploy' - -require "capistrano/scm/git" -install_plugin Capistrano::SCM::Git - -# Include tasks from other gems included in your Gemfile -require 'capistrano/rbenv' -require 'capistrano/rails' -require 'capistrano3/unicorn' -require 'capistrano/deploytags' -require 'new_relic/recipes' - -# Load custom tasks from `lib/capistrano/tasks` if you have any defined -Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r } - -# workaround for https://github.com/capistrano/rails/issues/235 -Rake::Task["deploy:assets:backup_manifest"].clear_actions diff --git a/Gemfile b/Gemfile index 030fe6d19..1f9a93e5d 100644 --- a/Gemfile +++ b/Gemfile @@ -12,9 +12,6 @@ gem 'ruby-vips' gem 'net-sftp' gem 'diff-lcs', :require => "diff/lcs/array" gem 'bcrypt', :require => "bcrypt" -gem 'capistrano', '~> 3.10' -gem 'capistrano-rails' -gem 'capistrano-rbenv' gem 'rubyzip', :require => "zip" gem 'stripe' gem 'aws-sdk-sqs', '~> 1' @@ -59,12 +56,10 @@ gem "parallel" group :production do gem 'unicorn', :platforms => :ruby - gem 'capistrano3-unicorn' end group :production do gem 'unicorn-worker-killer' - gem 'capistrano-deploytags', '~> 1.0.0', require: false end group :development do diff --git a/Gemfile.lock b/Gemfile.lock index c86bbbafd..915c0bee8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -83,8 +83,6 @@ GEM zeitwerk (~> 2.3) addressable (2.8.0) public_suffix (>= 2.0.2, < 5.0) - airbrussh (1.4.0) - sshkit (>= 1.6.1, != 1.7.0) ansi (1.5.0) ast (2.4.2) aws-eventstream (1.2.0) @@ -114,23 +112,6 @@ GEM msgpack (~> 1.0) builder (3.2.4) byebug (11.1.3) - capistrano (3.16.0) - airbrussh (>= 1.0.0) - i18n - rake (>= 10.0.0) - sshkit (>= 1.9.0) - capistrano-bundler (2.0.1) - capistrano (~> 3.1) - capistrano-deploytags (1.0.7) - capistrano (>= 3.7.0) - capistrano-rails (1.6.1) - capistrano (~> 3.1) - capistrano-bundler (>= 1.1, < 3) - capistrano-rbenv (2.2.0) - capistrano (~> 3.1) - sshkit (~> 1.3) - capistrano3-unicorn (0.2.1) - capistrano (~> 3.1, >= 3.1.0) capybara (3.35.3) addressable mini_mime (>= 0.1.3) @@ -294,8 +275,6 @@ GEM multi_json (1.15.0) multi_xml (0.6.0) multipart-post (2.1.1) - net-scp (3.0.0) - net-ssh (>= 2.6.5, < 7.0.0) net-sftp (3.0.0) net-ssh (>= 5.0.0, < 7.0.0) net-ssh (6.1.0) @@ -461,9 +440,6 @@ GEM actionpack (>= 4.0) activesupport (>= 4.0) sprockets (>= 3.0.0) - sshkit (1.21.2) - net-scp (>= 1.1.2) - net-ssh (>= 2.8.0) stackprof (0.2.17) stripe (5.38.0) stripe-ruby-mock (3.0.1) @@ -522,11 +498,6 @@ DEPENDENCIES binding_of_caller bootsnap builder - capistrano (~> 3.10) - capistrano-deploytags (~> 1.0.0) - capistrano-rails - capistrano-rbenv - capistrano3-unicorn capybara clockwork codecov diff --git a/bin/cap b/bin/cap deleted file mode 100755 index db774dc52..000000000 --- a/bin/cap +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env ruby -# frozen_string_literal: true - -# -# This file was generated by Bundler. -# -# The application 'cap' is installed as part of a gem, and -# this file is here to facilitate running it. -# - -require "pathname" -ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile", - Pathname.new(__FILE__).realpath) - -bundle_binstub = File.expand_path("../bundle", __FILE__) - -if File.file?(bundle_binstub) - if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/ - load(bundle_binstub) - else - abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run. -Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.") - end -end - -require "rubygems" -require "bundler/setup" - -load Gem.bin_path("capistrano", "cap") diff --git a/config/deploy.rb b/config/deploy.rb deleted file mode 100644 index 129ad66f8..000000000 --- a/config/deploy.rb +++ /dev/null @@ -1,27 +0,0 @@ -# This file contains configuration settings for deploying Danbooru to the -# production servers using Capistrano. This is only used by production and -# shouldn't be edited by end users. -# -# @see Capfile -# @see config/deploy -# @see lib/capistrano/tasks -# @see https://capistranorb.com - -set :stages, %w(production test) -set :default_stage, "test" -set :application, "danbooru" -set :repo_url, "git://github.com/danbooru/danbooru.git" -set :deploy_to, "/var/www/danbooru2" -append :linked_dirs, "log", "tmp/pids", "tmp/cache", "tmp/sockets", "vendor/bundle" -set :branch, ENV.fetch("branch", "master") - -# skip migrations if files in db/migrate weren't modified -set :conditionally_migrate, true - -# run migrations on the primary app server -set :migration_role, :app - -set :whenever_roles, :cron - -# how long unicorn:legacy_restart (used by deploy:rolling) waits until killing the old unicorn. -set :unicorn_restart_sleep_time, 10 diff --git a/config/deploy/README.md b/config/deploy/README.md deleted file mode 100644 index f66473942..000000000 --- a/config/deploy/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# Deploy - -This directory contains configuration settings for deploying Danbooru to the production servers -using Capistrano. This is only used by production and shouldn't be edited by end users. - -# See also - -* [Capfile](../../Capfile) -* [config/deploy.rb](../deploy.rb) -* [lib/capistrano/tasks](../../lib/capistrano/tasks) - -# External links - -* https://capistranorb.com \ No newline at end of file diff --git a/config/deploy/development.rb b/config/deploy/development.rb deleted file mode 100644 index 45d40abd5..000000000 --- a/config/deploy/development.rb +++ /dev/null @@ -1,3 +0,0 @@ -set :user, "danbooru" -set :rails_env, "development" -server "localhost", :roles => %w(web app db), :primary => true, :user => "danbooru" diff --git a/config/deploy/production.rb b/config/deploy/production.rb deleted file mode 100644 index a2fa7ac5c..000000000 --- a/config/deploy/production.rb +++ /dev/null @@ -1,12 +0,0 @@ -set :user, "danbooru" -set :rails_env, "production" -set :delayed_job_workers, 8 -append :linked_files, ".env.production" - -server "kagamihara", :roles => %w(web app cron), :primary => true -server "shima", :roles => %w(web app) -server "saitou", :roles => %w(web app) -server "oogaki", :roles => %w(worker) - -set :newrelic_appname, "Danbooru" -after "deploy:finished", "newrelic:notice_deployment" diff --git a/lib/capistrano/tasks/app.rake b/lib/capistrano/tasks/app.rake deleted file mode 100644 index 304136a54..000000000 --- a/lib/capistrano/tasks/app.rake +++ /dev/null @@ -1,35 +0,0 @@ -namespace :app do - set :rolling_deploy, false - - task :disable do - if fetch(:rolling_deploy) - # do nothing - else - invoke "web:disable" - invoke "unicorn:stop" - end - end - - task :enable do - if fetch(:rolling_deploy) - invoke "unicorn:legacy_restart" - else - invoke "unicorn:start" - invoke "web:enable" - end - end -end - -namespace :deploy do - desc "Deploy a rolling update without taking the site down for maintenance" - task :rolling do - set :rolling_deploy, true - invoke "deploy" - end -end - -before "deploy:migrate", "app:disable" -after "deploy:published", "app:enable" - -before "app:disable", "delayed_job:stop" -after "app:enable", "delayed_job:start" diff --git a/lib/capistrano/tasks/delayed_job.rake b/lib/capistrano/tasks/delayed_job.rake deleted file mode 100644 index a49c18a6b..000000000 --- a/lib/capistrano/tasks/delayed_job.rake +++ /dev/null @@ -1,39 +0,0 @@ -namespace :delayed_job do - desc "Start delayed_job process" - task :start do - on roles(:worker) do - within current_path do - with rails_env: fetch(:rails_env) do - bundle = SSHKit.config.command_map[:bundle] - - execute :"systemd-run", "--user --collect --slice delayed_job --unit delayed_job.bulk_update -E RAILS_ENV=$RAILS_ENV -p WorkingDirectory=$PWD -p Restart=always #{bundle} exec bin/delayed_job --queues=bulk_update run" - fetch(:delayed_job_workers, 16).times do |n| - execute :"systemd-run", "--user --collect --slice delayed_job --unit delayed_job.#{n} -E RAILS_ENV=$RAILS_ENV -p WorkingDirectory=$PWD -p Restart=always #{bundle} exec bin/delayed_job --queues=default run" - end - end - end - end - end - - desc "Stop delayed_job process" - task :stop do - on roles(:worker) do - execute :systemctl, "--user stop delayed_job.slice" - end - end - - desc "Restart delayed_job process" - task :restart do - on roles(:worker) do - execute :systemctl, "--user restart delayed_job.slice" - end - end - - desc "Show status of delayed_job process" - task :status do - on roles(:worker) do - # systemctl exits with status 3 if the service isn't running. - execute :systemctl, "--user status delayed_job.slice", raise_on_non_zero_exit: false - end - end -end diff --git a/lib/capistrano/tasks/nginx.rake b/lib/capistrano/tasks/nginx.rake deleted file mode 100644 index e42dc1467..000000000 --- a/lib/capistrano/tasks/nginx.rake +++ /dev/null @@ -1,28 +0,0 @@ -namespace :nginx do - desc "Shut down Nginx" - task :stop do - on roles(:web) do - as :user => "root" do - execute "/etc/init.d/nginx", "stop" - end - end - end - - desc "Start Nginx" - task :start do - on roles(:web) do - as :user => "root" do - execute "/etc/init.d/nginx", "start" - end - end - end - - desc "Reload Nginx" - task :reload do - on roles(:web) do - as :user => "root" do - execute "/etc/init.d/nginx", "reload" - end - end - end -end diff --git a/lib/capistrano/tasks/symlink.rake b/lib/capistrano/tasks/symlink.rake deleted file mode 100644 index 24a96712c..000000000 --- a/lib/capistrano/tasks/symlink.rake +++ /dev/null @@ -1,19 +0,0 @@ -namespace :symlink do - desc "Link the local config files" - task :local_files do - on roles(:app, :worker) do - execute :ln, "-s", "#{deploy_to}/shared/config/danbooru_local_config.rb", "#{release_path}/config/danbooru_local_config.rb" - end - end - - desc "Link the local directories" - task :directories do - on roles(:app, :worker) do - execute :rm, "-f", "#{release_path}/public/data" - execute :ln, "-s", "#{deploy_to}/shared/data", "#{release_path}/public/data" - end - end -end - -after "deploy:symlink:shared", "symlink:local_files" -after "deploy:symlink:shared", "symlink:directories" diff --git a/lib/capistrano/tasks/web.rake b/lib/capistrano/tasks/web.rake deleted file mode 100644 index 7a4e024ad..000000000 --- a/lib/capistrano/tasks/web.rake +++ /dev/null @@ -1,21 +0,0 @@ -namespace :web do - desc "Present a maintenance page to visitors." - task :disable do - on roles(:app) do - maintenance_html_path = "#{current_path}/public/maintenance.html.bak" - if test("[ -e #{maintenance_html_path} ]") - execute :mv, maintenance_html_path, "#{current_path}/public/maintenance.html" - end - end - end - - desc "Makes the application web-accessible again." - task :enable do - on roles(:app) do - maintenance_html_path = "#{current_path}/public/maintenance.html" - if test("[ -e #{maintenance_html_path} ]") - execute :mv, maintenance_html_path, "#{current_path}/public/maintenance.html.bak" - end - end - end -end