diff --git a/config/deploy.rb b/config/deploy.rb index 31d142275..76e6b2815 100644 --- a/config/deploy.rb +++ b/config/deploy.rb @@ -12,3 +12,21 @@ set :migration_role, :app append :linked_files, '.env.production', 'public/robots.txt' append :linked_dirs, 'vendor/bundle', 'node_modules', 'public/system' + +namespace :systemd do + %i[sidekiq streaming web].each do |service| + %i[reload restart status].each do |action| + desc "Perform a #{action} on #{service} service" + task "#{service}:#{action}".to_sym do + on roles(:app) do + # runs e.g. "sudo restart mastodon-sidekiq.service" + sudo :systemctl, action, "#{fetch(:application)}-#{service}.service" + end + end + end + end +end + +after 'deploy:publishing', 'systemd:web:reload' +after 'deploy:publishing', 'systemd:sidekiq:restart' +after 'deploy:publishing', 'systemd:streaming:restart'