Compare commits

...
5 Commits
Author SHA1 Message Date
Dmitry 77382c918c Обновлениме deploy 2026-05-18 20:24:37 +03:00
Dmitry e64dfb767b Add db:seed to deploy 2026-05-18 17:20:48 +00:00
Dmitry 4483aba8ce Switch Puma to systemd management 2026-05-18 17:04:57 +00:00
Dmitry 17508519f2 Use capistrano-master-key for automatic key upload 2026-05-18 17:02:46 +00:00
Dmitry cbc83c0caf Regenerate credentials 2026-05-18 16:42:43 +00:00
5 changed files with 56 additions and 121 deletions
+8 -31
View File
@@ -1,38 +1,15 @@
# Load DSL and set up stages
require "capistrano/setup"
# Include default deployment tasks
require "capistrano/deploy"
# Load the SCM plugin appropriate to your project:
#
# require "capistrano/scm/hg"
# install_plugin Capistrano::SCM::Hg
# or
# require "capistrano/scm/svn"
# install_plugin Capistrano::SCM::Svn
# or
require "capistrano/scm/git"
install_plugin Capistrano::SCM::Git
# Include tasks from other gems included in your Gemfile
#
# For documentation on these, see for example:
#
# https://github.com/capistrano/rvm
# https://github.com/capistrano/rbenv
# https://github.com/capistrano/chruby
# https://github.com/capistrano/bundler
# https://github.com/capistrano/rails
# https://github.com/capistrano/passenger
#
# require "capistrano/rvm"
# require "capistrano/rbenv"
# require "capistrano/chruby"
# require "capistrano/bundler"
# require "capistrano/rails/assets"
# require "capistrano/rails/migrations"
# require "capistrano/passenger"
require "capistrano/master_key"
require "capistrano/rvm"
require "capistrano/bundler"
require "capistrano/rails/assets"
require "capistrano/rails/migrations"
require "capistrano/puma"
install_plugin Capistrano::Puma
install_plugin Capistrano::Puma::Systemd
# Load custom tasks from `lib/capistrano/tasks` if you have any defined
Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r }
+1 -1
View File
@@ -1 +1 @@
Nc1hSplQ0MqAyalUwEkhP4MHvgHWBdQ1asGv87citiRh0CbxU5jWK0Lue0mz1IgZfkeHK/Tk1hMRgvBraTADvRbQNW1F49wW6KM/A3JSbviimeFMhwpNeX4Td4gqGNCdynu6etedjxDNjmDVvL9ADgq2ekVJR4ILXiJOarH1Ke9xF1Ep/4NAo3ce8Ec7h9Rphk16V8sLzIQ1J+dR1gJEVAPuGElftRXxRrWx8Q6pM+iAjd/7XdqpDhhmqNZwl2b/2w0pmy1MDeAuSoEFK8VtTqKW+e8MfR7iSMX8p6FCBr0BIqlrnthmzr/et3o03X9ZxAnrWrWk+hECMPLri2hW+w0r/JuGZjBahCr3PF/MHggtx0GJNmbnxb18TRPje3hQjDZ1ro0WorO6EdoH6Tsaby+IAwIknx7WLd5N--H3c/XDWT/kou9ABR--loDWauLHnUsVDLFdegRueA==
vzvJyboAlEsDCJYPDUPlvQefU89OZO14EHm+KkZc/SXKOKak0o0h6eMpA50DWzlMqgLppOuZqg2Y4lLCSIicLEjenP9N5fhmRDDGZmMe2OtUUYo8KOOAggbV93xL/He1GbFv0g0FPljIgn3dZvesQDQeU+/Hvmip4t9d7xSIq5ztA1ljraPmT4fasc8NvPElY6HN5YuuivvDZEXrb9Ck+5o5gmLS+KHKWqEygVpnLCgXVbVFVhuNbmAJ+C/pLvPDpzDgtkbEMhMr+1B8HGyBauan5CK5afW6AUPl5hVVr1LoefHL1ZY3pl1f/4JGJijfS1Fl3E0HgGyD7etwW4s1nn5IsVhF1QzHkULAtCGTvTBMTcdrhtxvrrDu4cYUuTZ8/FnghLbw1rNdEGR4Ic00lY7Nbkzg--6FKykVUCPO92dm87--85MEOy/jUeU6+C7IezR8hQ==
+40 -29
View File
@@ -1,39 +1,50 @@
# config valid for current version and patch releases of Capistrano
lock "~> 3.19.2"
set :application, "my_app_name"
set :repo_url, "git@example.com:me/my_repo.git"
set :application, "finreport-analyzer"
set :repo_url, "https://git.ada-dev.ru/ada/finreport-analyzer.git"
# Default branch is :master
# ask :branch, `git rev-parse --abbrev-ref HEAD`.chomp
set :deploy_to, "/var/www/finreport-analyzer"
set :branch, "develop"
# Default deploy_to directory is /var/www/my_app_name
# set :deploy_to, "/var/www/my_app_name"
set :rvm_type, :user
set :rvm_ruby_version, "3.3.0"
# Default value for :format is :airbrussh.
# set :format, :airbrussh
append :linked_files, "config/database.yml"
append :linked_dirs, "log", "tmp/pids", "tmp/cache", "tmp/sockets",
"public/system", "storage"
# You can configure the Airbrussh format using :format_options.
# These are the defaults.
# set :format_options, command_output: true, log_file: "log/capistrano.log", color: :auto, truncate: :auto
set :keep_releases, 5
# Default value for :pty is false
# set :pty, true
set :puma_threads, [2, 4]
set :puma_workers, 2
set :puma_bind, "unix://#{shared_path}/tmp/sockets/puma.sock"
set :puma_state, "#{shared_path}/tmp/pids/puma.state"
set :puma_pid, "#{shared_path}/tmp/pids/puma.pid"
set :puma_access_log, "#{release_path}/log/puma.access.log"
set :puma_error_log, "#{release_path}/log/puma.error.log"
set :puma_preload_app, true
set :puma_systemctl_user, :system
set :puma_service_unit_name, "puma-finreport"
# Default value for :linked_files is []
# append :linked_files, "config/database.yml", 'config/master.key'
namespace :sidekiq do
task :restart do
on roles(:app) do
execute :sudo, "systemctl restart sidekiq-finreport", raise_on_non_zero_exit: false
end
end
end
# Default value for linked_dirs is []
# append :linked_dirs, "log", "tmp/pids", "tmp/cache", "tmp/sockets", "public/system", "vendor", "storage"
after "deploy:finished", "sidekiq:restart"
after "deploy:migrate", "deploy:seed"
# Default value for default_env is {}
# set :default_env, { path: "/opt/ruby/bin:$PATH" }
# Default value for local_user is ENV['USER']
# set :local_user, -> { `git config user.name`.chomp }
# Default value for keep_releases is 5
# set :keep_releases, 5
# Uncomment the following to require manually verifying the host key before first deploy.
# set :ssh_options, verify_host_key: :secure
namespace :deploy do
task :seed do
on roles(:db) do
within release_path do
with rails_env: fetch(:rails_env, "production") do
execute :bundle, "exec rake db:seed"
end
end
end
end
end
+7 -60
View File
@@ -1,61 +1,8 @@
# server-based syntax
# ======================
# Defines a single server with a list of roles and multiple properties.
# You can define all roles on a single server, or split them:
server "finreport-prod",
user: "deploy",
roles: %w[app db web]
# server "example.com", user: "deploy", roles: %w{app db web}, my_property: :my_value
# server "example.com", user: "deploy", roles: %w{app web}, other_property: :other_value
# server "db.example.com", user: "deploy", roles: %w{db}
# role-based syntax
# ==================
# Defines a role with one or multiple servers. The primary server in each
# group is considered to be the first unless any hosts have the primary
# property set. Specify the username and a domain or IP for the server.
# Don't use `:all`, it's a meta role.
# role :app, %w{deploy@example.com}, my_property: :my_value
# role :web, %w{user1@primary.com user2@additional.com}, other_property: :other_value
# role :db, %w{deploy@example.com}
# Configuration
# =============
# You can set any configuration variable like in config/deploy.rb
# These variables are then only loaded and set in this stage.
# For available Capistrano configuration variables see the documentation page.
# http://capistranorb.com/documentation/getting-started/configuration/
# Feel free to add new variables to customise your setup.
# Custom SSH Options
# ==================
# You may pass any option but keep in mind that net/ssh understands a
# limited set of options, consult the Net::SSH documentation.
# http://net-ssh.github.io/net-ssh/classes/Net/SSH.html#method-c-start
#
# Global options
# --------------
# set :ssh_options, {
# keys: %w(/home/user_name/.ssh/id_rsa),
# forward_agent: false,
# auth_methods: %w(password)
# }
#
# The server-based syntax can be used to override options:
# ------------------------------------
# server "example.com",
# user: "user_name",
# roles: %w{web app},
# ssh_options: {
# user: "user_name", # overrides user setting above
# keys: %w(/home/user_name/.ssh/id_rsa),
# forward_agent: false,
# auth_methods: %w(publickey password)
# # password: "please use keys"
# }
set :ssh_options, {
forward_agent: true,
auth_methods: %w[publickey]
}
BIN
View File
Binary file not shown.