Skip to content

Commit

Permalink
Add Capistrano task to automate maintenance mode
Browse files Browse the repository at this point in the history
  • Loading branch information
aitbw committed Nov 17, 2017
1 parent bb1e5e4 commit c643656
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 1 deletion.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
/config/database.yml
/config/secrets.yml
/config/deploy-secrets.yml
/config/maintenance.yml

/coverage

Expand Down
2 changes: 1 addition & 1 deletion config/deploy.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# config valid only for current version of Capistrano
lock '3.8.1'
lock '3.8.2'

def deploysecret(key)
@deploy_secrets_yml ||= YAML.load_file('config/deploy-secrets.yml')[fetch(:stage).to_s]
Expand Down
12 changes: 12 additions & 0 deletions config/maintenance.yml.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
app_root: '.'
allowed_ips:
- 127.0.0.1
- x.x.x.x

allowed_paths:
- your/custom/route

reason: 'Website down for maintenance'
response_code: 503
retry_after: 3600
15 changes: 15 additions & 0 deletions lib/capistrano/tasks/maintenance.cap
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
namespace :maintenance do
desc "Start maintenance mode (edit config/maintenance.yml to provide parameters)"
task :start do
on roles(:app) do
upload! "config/maintenance.yml", "#{current_path}/tmp/maintenance.yml"
end
end

desc "Stop maintenance mode"
task :stop do
on roles(:app) do
execute "rm #{current_path}/tmp/maintenance.yml"
end
end
end

0 comments on commit c643656

Please sign in to comment.