magic_recipes_two 0.0.90 → 0.0.91

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- MDlmMzcyNjFhNjc0MzdkM2ZkMjg1ZWI3ZDUwM2ExNjkwNjQxNjc5Nw==
5
- data.tar.gz: !binary |-
6
- NjVmMWE5M2IxMDYxYmJiOWUxZjZlNTllYjYxNzM2MjdlZGFhMGFhOQ==
2
+ SHA1:
3
+ metadata.gz: 472f4e4b04b65e63711b84778706b6fe4fb3a282
4
+ data.tar.gz: 1b5be2fecaee6c9d3f8d7fca3653cce5f1ff8ad7
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- OTYyODc0NzI5ZDljZGY0M2Q5ZDZiMTg0NDZmZTQwZTNiOTk4M2QyZDY3MWY3
10
- YTRlYzFkZTcyZWZlYzNhOTIxMDEzNmI0MjBjNDc3YzYxZWE2OWYzZDc4Y2Rj
11
- MTFlYTA1MmEzMDg0YjJhNGU4MjI2NDlkZTcyMWM0MTY3ZTI3ODA=
12
- data.tar.gz: !binary |-
13
- YmE0ZmE3OTcwMjJhZDk0ZGFjOTgwMWNlM2E2Nzc3ZmNlYmI3YmEzNjk4NTAy
14
- MzMxYjYxYTQ3M2NmOWE1ZGUyMzY2MWMxMzc5ODU0NDgwMTdmYjEwOTZhMzk4
15
- YTgxMmRlNTJmZjkwNThhMjFjZGY0NjllOTNjNWI2YjlmYjczODI=
6
+ metadata.gz: 647bf58972384b14fda093ad39c70b5b4164647268da67769cb1312509d5804b5e60a60652f12e0f4df9aebc7d667d2ce92841cfaedf384d7c1c3a2302750014
7
+ data.tar.gz: b46a257c14e9f8fd51c90be613b9bbab50e53a825f5330e4bcc50b926434f71b7800dcd67f2e5ea834038912922976e54d0564bd8ff3afd7773688de7e707289
@@ -61,6 +61,7 @@ module Capistrano
61
61
  raise "File '#{from}' was not found!!!"
62
62
  end
63
63
 
64
+
64
65
  end
65
66
  end
66
67
  end
@@ -0,0 +1 @@
1
+ load File.expand_path("../../tasks/redirect_page.rake", __FILE__)
@@ -1,5 +1,5 @@
1
1
  module Capistrano
2
2
  module MagicRecipes
3
- VERSION = "0.0.90"
3
+ VERSION = "0.0.91"
4
4
  end
5
5
  end
@@ -7,10 +7,11 @@ namespace :load do
7
7
  set :lets_encrypt_path, -> { "~" }
8
8
  set :lets_encrypt_domains, -> { fetch(:nginx_major_domain,false) ? [fetch(:nginx_major_domain)] + Array(fetch(:nginx_domains)) : Array(fetch(:nginx_domains)) }
9
9
  set :lets_encrypt__www_domains, -> { true }
10
- set :lets_encrypt_renew_minute, -> { "23" }
11
- set :lets_encrypt_renew_hour1, -> { "0" }
12
- set :lets_encrypt_renew_hour2, -> { "12" }
13
- set :lets_encrypt_renew_hour, -> { "#{ fetch(:lets_encrypt_renew_hour1) },#{ fetch(:lets_encrypt_renew_hour2) }" }
10
+ # set :lets_encrypt_renew_minute, -> { "23" }
11
+ # set :lets_encrypt_renew_hour1, -> { "0" }
12
+ # set :lets_encrypt_renew_hour2, -> { "12" }
13
+ # # set :lets_encrypt_renew_hour, -> { "#{ fetch(:lets_encrypt_renew_hour1) },#{ fetch(:lets_encrypt_renew_hour2) }" }
14
+ # set :lets_encrypt_renew_hour, -> { "3" }
14
15
  set :lets_encrypt_cron_log, -> { "#{shared_path}/log/lets_encrypt_cron.log" }
15
16
  set :lets_encrypt_email, -> { "ssl@example.com" }
16
17
  end
@@ -33,7 +34,7 @@ namespace :lets_encrypt do
33
34
  task :certonly do
34
35
  on release_roles fetch(:lets_encrypt_roles) do
35
36
  # execute "./certbot-auto certonly --webroot -w /var/www/example -d example.com -d www.example.com -w /var/www/thing -d thing.is -d m.thing.is"
36
- execute :sudo, "#{ fetch(:lets_encrypt_path) }/certbot-auto --non-interactive --agree-tos --email #{fetch(:lets_encrypt_email)} certonly --webroot -w #{current_path}/public #{ Array(fetch(:lets_encrypt_domains)).map{ |d| "-d #{d.gsub(/^\*?\./, "")}#{ fetch(:lets_encrypt__www_domains,false) ? " -d www.#{d.gsub(/^\*?\./, "")}" : "" }" }.join(" ") }"
37
+ execute :sudo, "#{ fetch(:lets_encrypt_path) }/certbot-auto --non-interactive --agree-tos --allow-subset-of-names --email #{fetch(:lets_encrypt_email)} certonly --webroot -w #{current_path}/public #{ Array(fetch(:lets_encrypt_domains)).map{ |d| "-d #{d.gsub(/^\*?\./, "")}#{ fetch(:lets_encrypt__www_domains,false) ? " -d www.#{d.gsub(/^\*?\./, "")}" : "" }" }.join(" ") }"
37
38
  end
38
39
  end
39
40
 
@@ -43,7 +44,9 @@ namespace :lets_encrypt do
43
44
  task :auto_renew do
44
45
  on release_roles fetch(:lets_encrypt_roles) do
45
46
  # execute :sudo, "echo '42 0,12 * * * root (#{ fetch(:lets_encrypt_path) }/certbot-auto renew --quiet) >> #{shared_path}/lets_encrypt_cron.log 2>&1' | cat > #{ fetch(:lets_encrypt_path) }/lets_encrypt_cronjob"
46
- execute :sudo, "echo '#{ fetch(:lets_encrypt_renew_minute) } #{ fetch(:lets_encrypt_renew_hour) } * * * root #{ fetch(:lets_encrypt_path) }/certbot-auto renew --no-self-upgrade --post-hook \"#{fetch(:nginx_service_path)} restart\" >> #{ fetch(:lets_encrypt_cron_log) } 2>&1' | cat > #{ fetch(:lets_encrypt_path) }/lets_encrypt_cronjob"
47
+ # execute :sudo, "echo '#{ fetch(:lets_encrypt_renew_minute) } #{ fetch(:lets_encrypt_renew_hour) } * * * root #{ fetch(:lets_encrypt_path) }/certbot-auto renew --no-self-upgrade --allow-subset-of-names --post-hook \"#{fetch(:nginx_service_path)} restart\" >> #{ fetch(:lets_encrypt_cron_log) } 2>&1' | cat > #{ fetch(:lets_encrypt_path) }/lets_encrypt_cronjob"
48
+ # just once a week
49
+ execute :sudo, "echo '0 0 * * 0 root #{ fetch(:lets_encrypt_path) }/certbot-auto renew --no-self-upgrade --allow-subset-of-names --post-hook \"#{fetch(:nginx_service_path)} restart\" >> #{ fetch(:lets_encrypt_cron_log) } 2>&1' | cat > #{ fetch(:lets_encrypt_path) }/lets_encrypt_cronjob"
47
50
  execute :sudo, "mv -f #{ fetch(:lets_encrypt_path) }/lets_encrypt_cronjob /etc/cron.d/lets_encrypt"
48
51
  execute :sudo, "chown -f root:root /etc/cron.d/lets_encrypt"
49
52
  execute :sudo, "chmod -f 0644 /etc/cron.d/lets_encrypt"
@@ -94,7 +97,7 @@ namespace :lets_encrypt do
94
97
  task :certonly_expand do
95
98
  on release_roles fetch(:lets_encrypt_roles) do
96
99
  # execute "./certbot-auto certonly --webroot -w /var/www/example -d example.com -d www.example.com -w /var/www/thing -d thing.is -d m.thing.is"
97
- execute :sudo, "#{ fetch(:lets_encrypt_path) }/certbot-auto --non-interactive --agree-tos --email #{fetch(:lets_encrypt_email)} certonly --webroot -w #{current_path}/public #{ Array(fetch(:lets_encrypt_domains)).map{ |d| "-d #{d.gsub(/^\*?\./, "")}#{ fetch(:lets_encrypt__www_domains,false) ? " -d www.#{d.gsub(/^\*?\./, "")}" : "" }" }.join(" ") } --expand"
100
+ execute :sudo, "#{ fetch(:lets_encrypt_path) }/certbot-auto --non-interactive --agree-tos --allow-subset-of-names --email #{fetch(:lets_encrypt_email)} certonly --webroot -w #{current_path}/public #{ Array(fetch(:lets_encrypt_domains)).map{ |d| "-d #{d.gsub(/^\*?\./, "")}#{ fetch(:lets_encrypt__www_domains,false) ? " -d www.#{d.gsub(/^\*?\./, "")}" : "" }" }.join(" ") } --expand"
98
101
  end
99
102
  end
100
103
 
@@ -210,6 +210,7 @@ namespace :nginx do
210
210
  end
211
211
 
212
212
 
213
+
213
214
  desc 'Creates the site configuration and upload it to the available folder'
214
215
  task :add => ['nginx:load_vars'] do
215
216
  on release_roles fetch(:nginx_roles) do
@@ -257,6 +258,8 @@ namespace :nginx do
257
258
  end
258
259
  end
259
260
  end
261
+
262
+
260
263
  end
261
264
  end
262
265
 
@@ -0,0 +1,118 @@
1
+ namespace :load do
2
+ task :defaults do
3
+ set :redirect_page_active, -> { false }
4
+ set :redirect_old_domains, -> { [] }
5
+ set :redirect_old_ssl_domains, -> { [] }
6
+ set :redirect_new_domain, -> { '' }
7
+ set :redirect_new_name, -> { '' }
8
+ set :redirect_ssl_cert, -> { '' }
9
+ set :redirect_ssl_key, -> { '' }
10
+ set :redirect_roles, -> { :app }
11
+ set :redirect_index_path, -> { "redirector" }
12
+ set :redirect_index_parent, -> { "#{ shared_path }" }
13
+ set :redirect_index_template, -> { :default }
14
+ set :redirect_nginx_template, -> { :default }
15
+ set :redirect_conf_name, -> { "redirector_#{fetch(:application)}_#{fetch(:stage)}" }
16
+ end
17
+ end
18
+
19
+ namespace :redirect_page do
20
+
21
+ desc 'upload the redirect page'
22
+ task :upload do
23
+ on release_roles fetch(:redirect_roles) do
24
+ within fetch(:redirect_index_parent, shared_path) do
25
+ # create dir if not existing
26
+ execute :mkdir, "-p #{ fetch(:redirect_index_path, 'redirector') }"
27
+ # upload index.html file
28
+ config_file = fetch(:redirect_index_template, :default)
29
+ if config_file == :default
30
+ magic_template("redirect_page.html", '/tmp/redirect_page.html')
31
+ else
32
+ magic_template(config_file, '/tmp/redirect_page.html')
33
+ end
34
+ execute :sudo, :mv, '/tmp/redirect_page.html', "#{ fetch(:redirect_index_path, 'redirector') }/index.html"
35
+ end
36
+ end
37
+ end
38
+
39
+ desc 'Creates the redirect-site configuration and upload it to the available folder'
40
+ task :add => ['nginx:load_vars'] do
41
+ on release_roles fetch(:nginx_roles) do
42
+ within fetch(:sites_available) do
43
+ config_file = fetch(:redirect_nginx_template, :default)
44
+ if config_file == :default
45
+ magic_template("nginx_redirect_page.conf", '/tmp/nginx_redirector.conf')
46
+ else
47
+ magic_template(config_file, '/tmp/nginx_redirector.conf')
48
+ end
49
+ execute :sudo, :mv, '/tmp/nginx_redirector.conf', "#{ fetch(:redirect_conf_name) }"
50
+ end
51
+ end
52
+ end
53
+
54
+ desc 'Enables the redirect-site creating a symbolic link into the enabled folder'
55
+ task :enable => ['nginx:load_vars'] do
56
+ on release_roles fetch(:nginx_roles) do
57
+ if test "! [ -h #{fetch(:sites_enabled)}/#{ fetch(:redirect_conf_name) } ]"
58
+ within fetch(:sites_enabled) do
59
+ execute :sudo, :ln, '-nfs', "#{fetch(:sites_available)}/#{ fetch(:redirect_conf_name) }", "#{fetch(:sites_enabled)}/#{ fetch(:redirect_conf_name) }"
60
+ end
61
+ end
62
+ end
63
+ end
64
+
65
+ desc 'Disables the redirect-site removing the symbolic link located in the enabled folder'
66
+ task :disable => ['nginx:load_vars'] do
67
+ on release_roles fetch(:nginx_roles) do
68
+ if test "[ -f #{fetch(:sites_enabled)}/#{ fetch(:redirect_conf_name) } ]"
69
+ within fetch(:sites_enabled) do
70
+ execute :sudo, :rm, '-f', "#{ fetch(:redirect_conf_name) }"
71
+ end
72
+ end
73
+ end
74
+ end
75
+
76
+ desc 'Removes the redirect-site removing the configuration file from the available folder'
77
+ task :remove => ['nginx:load_vars'] do
78
+ on release_roles fetch(:nginx_roles) do
79
+ if test "[ -f #{fetch(:sites_available)}/#{ fetch(:redirect_conf_name) } ]"
80
+ within fetch(:sites_available) do
81
+ execute :sudo, :rm, "#{ fetch(:redirect_conf_name) }"
82
+ end
83
+ end
84
+ end
85
+ end
86
+
87
+
88
+ desc 'upload redirect-page and activate nginx config'
89
+ task :upload_and_enable do
90
+ invoke "redirect_page:upload"
91
+ invoke "redirect_page:add"
92
+ invoke "redirect_page:enable"
93
+ end
94
+
95
+ namespace :lets_encrypt do
96
+
97
+ desc "Generate MONIT-WebClient LetsEncrypt certificate"
98
+ task :certonly do
99
+ on release_roles fetch(:lets_encrypt_roles) do
100
+ execute :sudo, "#{ fetch(:lets_encrypt_path) }/certbot-auto --non-interactive --agree-tos --allow-subset-of-names --email #{fetch(:lets_encrypt_email)} certonly --webroot -w #{current_path}/public #{ Array(fetch(:redirect_old_ssl_domains)).map{ |d| "-d #{d.gsub(/^\*?\./, "")} -d www.#{d.gsub(/^\*?\./, "")}" }.join(" ") }"
101
+ end
102
+ end
103
+
104
+ end
105
+
106
+ end
107
+
108
+
109
+
110
+
111
+
112
+ namespace :deploy do
113
+ after :finishing, :include_redirect_page do
114
+ if fetch(:redirect_page_active, false)
115
+ invoke "redirect_page:upload_and_enable"
116
+ end
117
+ end
118
+ end
@@ -0,0 +1,50 @@
1
+ # Redirect - Page
2
+ server {
3
+ listen 80;
4
+ server_name <%= Array(fetch(:redirect_old_domains)).join(joiner) %>;
5
+
6
+ root <%= "#{ fetch(:redirect_index_parent, shared_path) }/#{ fetch(:redirect_index_path, 'redirector') }" %>;
7
+
8
+ # location ~ /.well-known { allow all; }
9
+
10
+ # lets-encrypt path
11
+ location ~ /.well-known {
12
+ allow all;
13
+ root <%= current_path %>/public;
14
+ }
15
+
16
+ # SPA-routing
17
+ location / {
18
+ try_files /index.html;
19
+ }
20
+
21
+ }
22
+
23
+
24
+ <% if Array(fetch(:redirect_old_ssl_domains, [])).any? %>
25
+ server {
26
+ listen 443 ssl http2;
27
+ ssl on;
28
+ ssl_certificate <%= fetch(:redirect_ssl_cert) %>;
29
+ ssl_certificate_key <%= fetch(:redirect_ssl_key) %>;
30
+ <%= magic_render("nginx/diffie_hellman") %>
31
+
32
+ server_name <%= Array(fetch(:redirect_old_ssl_domains)).join(joiner) %>;
33
+
34
+ root <%= "#{ fetch(:redirect_index_parent, shared_path) }/#{ fetch(:redirect_index_path, 'redirector') }" %>;
35
+
36
+ # location ~ /.well-known { allow all; }
37
+
38
+ # lets-encrypt path
39
+ location ~ /.well-known {
40
+ allow all;
41
+ root <%= current_path %>/public;
42
+ }
43
+
44
+ # SPA-routing
45
+ location / {
46
+ try_files /index.html;
47
+ }
48
+
49
+ }
50
+ <% end %>
@@ -0,0 +1,114 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta http-equiv="x-ua-compatible" content="ie=edge">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
7
+
8
+ <title>Wir werden <%= fetch(:redirect_new_name) %></title>
9
+ <script src="https://cdn.jsdelivr.net/npm/vue"></script>
10
+
11
+ <style>
12
+ html, body {
13
+ width: 100%;
14
+ height: 100%;
15
+ margin: 0;
16
+ padding: 0;
17
+ font-size: 18px;
18
+ font-family: Lucida, Verdana, Arial, sans-serif;
19
+ line-height: 1.6;
20
+ color: #333;
21
+ background: #fff;
22
+ }
23
+ #app {
24
+ height: 100vh;
25
+ width: 100vw;
26
+ display: flex;
27
+ justify-content: center;
28
+ align-items: center;
29
+ }
30
+ .box {
31
+ display: block; position: relative;
32
+ width: 60%;
33
+ max-width: 600px;
34
+ padding: 20px;
35
+ text-align: center;
36
+ }
37
+ a, p {
38
+ display: block; position: relative;
39
+ margin: 0;
40
+ padding: 0;
41
+ }
42
+ a {
43
+ color: #000;
44
+ text-decoration: none;
45
+ }
46
+ a:hover {
47
+ text-shadow: 0 0 2px #069;
48
+ }
49
+ .gets {
50
+ font-size: 80%;
51
+ color: rgb(102,102,102);
52
+ }
53
+ .small {
54
+ font-size: 60%;
55
+ color: rgb(102,102,102);
56
+ }
57
+ .new { font-size: 120%; }
58
+ @media (min-width: 600px) {
59
+ html, body {
60
+ font-size: 24px;
61
+ }
62
+ }
63
+ @media (min-width: 1200px) {
64
+ html, body {
65
+ font-size: 32px;
66
+ }
67
+ }
68
+ </style>
69
+
70
+ </head>
71
+ <body>
72
+ <div id="app">
73
+ <div class="box">
74
+ <p class="old">{{ domain }}</p>
75
+ <p class="gets">wird zu</p>
76
+ <a class="new" href="<%= fetch(:redirect_new_domain) %>"><%= fetch(:redirect_new_name) %></a>
77
+ <br>
78
+ <p class="small">
79
+ Du wirst
80
+ <span v-if="count > 0">in {{ count }} Sekunden</span>
81
+ <span v-else>jetzt</span>
82
+ automatisch weitergeleitet.</p>
83
+ </div>
84
+ </div>
85
+ <script>
86
+ var app = new Vue({
87
+ el: '#app',
88
+ data: {
89
+ domain: String(window.location).split('://')[1].split('/')[0],
90
+ count: 10,
91
+ interval: null
92
+ },
93
+ methods: {
94
+ startInterval() {
95
+ console.log('domain => ' + this.domain)
96
+ console.log('start CountDown .. ', this.count)
97
+ let that = this
98
+ this.interval = setInterval(function(){
99
+ console.log('CountDown: ', that.count)
100
+ that.count = that.count - 1
101
+ if (this.count < 0) {
102
+ window.location = '<%= fetch(:redirect_new_domain) %>'
103
+ }
104
+ }, 990);
105
+ }
106
+ },
107
+ created: function () {
108
+ if (this.interval) { clearInterval(this.interval) }
109
+ this.startInterval()
110
+ }
111
+ })
112
+ </script>
113
+ </body>
114
+ </html>
metadata CHANGED
@@ -1,139 +1,139 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: magic_recipes_two
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.90
4
+ version: 0.0.91
5
5
  platform: ruby
6
6
  authors:
7
7
  - Torsten Wetzel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-16 00:00:00.000000000 Z
11
+ date: 2020-02-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ! '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '3.2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ! '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '3.2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: capistrano
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ! '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '3.2'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ! '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '3.2'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: capistrano-bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ! '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.1'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ! '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.1'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: capistrano-rails
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ! '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '1.1'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ! '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.1'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rvm1-capistrano3
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ! '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: 1.4.0
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ! '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: 1.4.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: capistrano-rvm
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ! '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: 0.1.2
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ! '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: 0.1.2
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: capistrano-postgresql
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ! '>='
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
103
  version: '4.2'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ! '>='
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '4.2'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: yaml_db
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ! '>='
115
+ - - ">="
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ! '>='
122
+ - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: sqlite3
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ! '>='
129
+ - - ">="
130
130
  - !ruby/object:Gem::Version
131
131
  version: '0'
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - ! '>='
136
+ - - ">="
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  description: MagicRecipesTwo contains our most used deployment recipes for Capistrano-3.
@@ -156,6 +156,7 @@ files:
156
156
  - lib/capistrano/magic_recipes/monit.rb
157
157
  - lib/capistrano/magic_recipes/nginx.rb
158
158
  - lib/capistrano/magic_recipes/pwa.rb
159
+ - lib/capistrano/magic_recipes/redirect_page.rb
159
160
  - lib/capistrano/magic_recipes/redis.rb
160
161
  - lib/capistrano/magic_recipes/secrets.rb
161
162
  - lib/capistrano/magic_recipes/sidekiq.rb
@@ -171,6 +172,7 @@ files:
171
172
  - lib/capistrano/tasks/monit_sidekiq.rake
172
173
  - lib/capistrano/tasks/nginx.rake
173
174
  - lib/capistrano/tasks/pwa.rake
175
+ - lib/capistrano/tasks/redirect_page.rake
174
176
  - lib/capistrano/tasks/redis.rake
175
177
  - lib/capistrano/tasks/secrets.rake
176
178
  - lib/capistrano/tasks/sidekiq.rake
@@ -195,7 +197,9 @@ files:
195
197
  - lib/generators/capistrano/magic_recipes/templates/nginx/remove_www.erb
196
198
  - lib/generators/capistrano/magic_recipes/templates/nginx_monit.conf.erb
197
199
  - lib/generators/capistrano/magic_recipes/templates/nginx_pwa.conf.erb
200
+ - lib/generators/capistrano/magic_recipes/templates/nginx_redirect_page.conf.erb
198
201
  - lib/generators/capistrano/magic_recipes/templates/postgresql.yml.erb
202
+ - lib/generators/capistrano/magic_recipes/templates/redirect_page.html.erb
199
203
  - lib/generators/capistrano/magic_recipes/templates/secrets_yml.erb
200
204
  - lib/generators/capistrano/magic_recipes/templates/thin_app_yml.erb
201
205
  - lib/magic_recipes_two.rb
@@ -210,17 +214,17 @@ require_paths:
210
214
  - lib
211
215
  required_ruby_version: !ruby/object:Gem::Requirement
212
216
  requirements:
213
- - - ! '>='
217
+ - - ">="
214
218
  - !ruby/object:Gem::Version
215
219
  version: '0'
216
220
  required_rubygems_version: !ruby/object:Gem::Requirement
217
221
  requirements:
218
- - - ! '>='
222
+ - - ">="
219
223
  - !ruby/object:Gem::Version
220
224
  version: '0'
221
225
  requirements: []
222
226
  rubyforge_project:
223
- rubygems_version: 2.4.8
227
+ rubygems_version: 2.6.11
224
228
  signing_key:
225
229
  specification_version: 4
226
230
  summary: Some recipes for rails-4 and capistrano-3.