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'