capistrano-pumaio 0.0.18 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/Gemfile +5 -4
- data/Gemfile.lock +64 -51
- data/LICENSE +1 -1
- data/README.md +20 -5
- data/Rakefile +13 -11
- data/VERSION +1 -1
- data/capistrano-pumaio.gemspec +33 -25
- data/lib/capistrano/helpers/puma/monit.rb +20 -0
- data/lib/capistrano/helpers/puma/nginx.rb +13 -0
- data/lib/capistrano/helpers/puma/template_paths.rb +16 -0
- data/lib/capistrano/puma.rb +13 -3
- data/lib/capistrano/tasks/config.rake +68 -0
- data/lib/capistrano/tasks/monit.rake +66 -0
- data/lib/capistrano/tasks/nginx.rake +119 -0
- data/lib/capistrano/tasks/nginx_config.rake +63 -0
- data/lib/capistrano/tasks/runit.rake +179 -0
- data/templates/monit/puma.conf.erb +11 -12
- data/templates/nginx/application.conf.erb +35 -70
- data/templates/nginx/htpasswd.erb +1 -2
- data/templates/puma-config.rb.erb +26 -0
- data/templates/runit/control/q.erb +7 -0
- data/templates/runit/finish.erb +13 -14
- data/templates/runit/log/run.erb +9 -0
- data/templates/runit/run.erb +7 -8
- metadata +51 -45
- data/lib/capistrano/puma/config.rb +0 -56
- data/lib/capistrano/puma/monit.rb +0 -70
- data/lib/capistrano/puma/nginx.rb +0 -128
- data/lib/capistrano/puma/runit.rb +0 -145
- data/templates/runit/config.rb.erb +0 -20
- data/templates/runit/control-q.erb +0 -8
- data/templates/runit/log-run.erb +0 -10
@@ -1,35 +1,34 @@
|
|
1
1
|
# Nginx configuration
|
2
|
-
#
|
3
|
-
#
|
4
|
-
#
|
5
|
-
|
6
|
-
upstream_name_ssl = "#{c.fetch(:application)}_#{Capistrano::BaseHelper.environment}_app_server_ssl"
|
2
|
+
# <%= "#{fetch(:application)} running as #{fetch(:user)} in environment #{environment}" %>
|
3
|
+
# <%
|
4
|
+
upstream_name = "#{fetch(:application)}_#{environment}_app_server"
|
5
|
+
upstream_name_ssl = "#{fetch(:application)}_#{environment}_app_server_ssl"
|
7
6
|
%>
|
8
7
|
#
|
9
8
|
|
10
9
|
upstream <%= upstream_name %> {
|
11
|
-
server
|
10
|
+
server <%= fetch(:nginx_puma_server_url) %> <%= fetch(:nginx_puma_server_timeout) %>;
|
12
11
|
}
|
13
12
|
|
14
|
-
<% if
|
13
|
+
<% if fetch(:nginx_uses_http) %>
|
15
14
|
#
|
16
15
|
# HTTP server configuration
|
17
16
|
#
|
18
17
|
server {
|
19
|
-
listen <%=
|
20
|
-
client_max_body_size <%=
|
21
|
-
server_name <%=
|
18
|
+
listen <%= fetch(:nginx_port) %>;
|
19
|
+
client_max_body_size <%= fetch(:nginx_client_max_body_size) %>;
|
20
|
+
server_name <%= fetch(:server_names) %>;
|
22
21
|
|
23
22
|
# ~2 seconds is often enough for most folks to parse HTML/CSS and
|
24
23
|
# retrieve needed images/icons/frames, connections are cheap in
|
25
24
|
# nginx so increasing this is generally safe...
|
26
25
|
# 8 seconds might be needed for some mobile devs
|
27
|
-
keepalive_timeout 8;
|
26
|
+
keepalive_timeout 8;
|
28
27
|
|
29
28
|
# path for static files
|
30
|
-
root <%=
|
31
|
-
access_log <%=
|
32
|
-
error_log <%=
|
29
|
+
root <%= fetch(:deploy_to) %>/current/public;
|
30
|
+
access_log <%= fetch(:nginx_app_log_path) %>/<%= environment %>.access.log;
|
31
|
+
error_log <%= fetch(:nginx_app_log_path) %>/<%= environment %>.error.log info;
|
33
32
|
|
34
33
|
# this rewrites all the requests to the maintenance.html
|
35
34
|
# page if it exists in the doc root. This is for capistrano's
|
@@ -40,9 +39,9 @@ server {
|
|
40
39
|
}
|
41
40
|
|
42
41
|
location / {
|
43
|
-
<% if
|
44
|
-
auth_basic "<%=
|
45
|
-
auth_basic_user_file <%=
|
42
|
+
<% if fetch(:nginx_use_simple_auth) %>
|
43
|
+
auth_basic "<%= fetch(:nginx_simple_auth_message) %>";
|
44
|
+
auth_basic_user_file <%= fetch(:nginx_remote_htpasswd) %>;
|
46
45
|
<% end %>
|
47
46
|
|
48
47
|
# needed to forward user's IP address to rails
|
@@ -58,7 +57,7 @@ server {
|
|
58
57
|
gzip_static on;
|
59
58
|
expires max;
|
60
59
|
add_header Cache-Control public;
|
61
|
-
}
|
60
|
+
}
|
62
61
|
|
63
62
|
# Serve images outside the asset path
|
64
63
|
# Now this supposedly should work as it gets the filenames with querystrings that Rails provides.
|
@@ -78,24 +77,7 @@ server {
|
|
78
77
|
break;
|
79
78
|
}
|
80
79
|
|
81
|
-
|
82
|
-
# if its there on the filesystem then rewite
|
83
|
-
# the url to add /index.html to the end of it
|
84
|
-
# and then break to send it to the next config rules.
|
85
|
-
if (-f $request_filename/index.html) {
|
86
|
-
rewrite (.*) $1/index.html break;
|
87
|
-
}
|
88
|
-
|
89
|
-
# this is the meat of the rails page caching config
|
90
|
-
# it adds .html to the end of the url and then checks
|
91
|
-
# the filesystem for that file. If it exists, then we
|
92
|
-
# rewite the url to have explicit .html on the end
|
93
|
-
# and then send it on its way to the next config rule.
|
94
|
-
# if there is no file on the fs then it sets all the
|
95
|
-
# necessary headers and proxies to our upstream mongrels
|
96
|
-
if (-f $request_filename.html) {
|
97
|
-
rewrite (.*) $1.html break;
|
98
|
-
}
|
80
|
+
<%= fetch(:nginx_extra_rules) unless fetch(:nginx_extra_rules).nil? %>
|
99
81
|
|
100
82
|
if (!-f $request_filename) {
|
101
83
|
proxy_pass http://<%= upstream_name %>;
|
@@ -106,34 +88,34 @@ server {
|
|
106
88
|
# Rails error pages
|
107
89
|
error_page 500 502 503 504 /500.html;
|
108
90
|
location = /500.html {
|
109
|
-
root <%=
|
91
|
+
root <%= fetch(:deploy_to) %>/current/public;
|
110
92
|
}
|
111
93
|
}
|
112
94
|
<% end %>
|
113
95
|
|
114
|
-
<% if
|
96
|
+
<% if fetch(:nginx_uses_ssl) %>
|
115
97
|
#
|
116
98
|
# HTTPs server configuration
|
117
99
|
#
|
118
100
|
upstream <%= upstream_name_ssl %> {
|
119
|
-
server
|
101
|
+
server <%= fetch(:nginx_puma_server_url) %> <%= fetch(:nginx_puma_server_timeout) %>;
|
120
102
|
}
|
121
103
|
|
122
104
|
# This server is setup for ssl. Uncomment if
|
123
105
|
# you are using ssl as well as port 80.
|
124
106
|
server {
|
125
|
-
listen <%=
|
107
|
+
listen <%= fetch(:nginx_ssl_port) %>;
|
126
108
|
client_max_body_size 500M;
|
127
|
-
server_name <%=
|
109
|
+
server_name <%= fetch(:server_names) %>;
|
128
110
|
ssl on;
|
129
|
-
ssl_certificate <%=
|
130
|
-
ssl_certificate_key <%=
|
111
|
+
ssl_certificate <%= fetch(:nginx_ssl_public_crt) %>;
|
112
|
+
ssl_certificate_key <%= fetch(:nginx_ssl_private_key) %>;
|
131
113
|
ssl_session_timeout 5m;
|
132
|
-
client_max_body_size <%=
|
114
|
+
client_max_body_size <%= fetch(:nginx_ssl_client_max_body_size) %>;
|
133
115
|
|
134
|
-
root <%=
|
135
|
-
access_log <%=
|
136
|
-
error_log <%=
|
116
|
+
root <%= fetch(:deploy_to) %>/current/public;
|
117
|
+
access_log <%= fetch(:nginx_app_log_path) %>/<%= environment %>_ssl.access.log;
|
118
|
+
error_log <%= fetch(:nginx_app_log_path) %>/<%= environment %>_ssl.error.log info;
|
137
119
|
|
138
120
|
# this rewrites all the requests to the maintenance.html
|
139
121
|
# page if it exists in the doc root. This is for capistrano's
|
@@ -144,9 +126,9 @@ server {
|
|
144
126
|
}
|
145
127
|
|
146
128
|
location / {
|
147
|
-
<% if
|
148
|
-
auth_basic "<%=
|
149
|
-
auth_basic_user_file <%=
|
129
|
+
<% if fetch(:nginx_ssl_use_simple_auth) %>
|
130
|
+
auth_basic "<%= fetch(:nginx_simple_auth_message) %>";
|
131
|
+
auth_basic_user_file <%= fetch(:nginx_remote_htpasswd) %>;
|
150
132
|
<% end %>
|
151
133
|
|
152
134
|
# needed to forward user's IP address to rails
|
@@ -167,7 +149,7 @@ server {
|
|
167
149
|
gzip_static on;
|
168
150
|
expires max;
|
169
151
|
add_header Cache-Control public;
|
170
|
-
}
|
152
|
+
}
|
171
153
|
|
172
154
|
# Serve images outside the asset path
|
173
155
|
# Now this supposedly should work as it gets the filenames with querystrings that Rails provides.
|
@@ -187,24 +169,7 @@ server {
|
|
187
169
|
break;
|
188
170
|
}
|
189
171
|
|
190
|
-
|
191
|
-
# if its there on the filesystem then rewite
|
192
|
-
# the url to add /index.html to the end of it
|
193
|
-
# and then break to send it to the next config rules.
|
194
|
-
if (-f $request_filename/index.html) {
|
195
|
-
rewrite (.*) $1/index.html break;
|
196
|
-
}
|
197
|
-
|
198
|
-
# this is the meat of the rails page caching config
|
199
|
-
# it adds .html to the end of the url and then checks
|
200
|
-
# the filesystem for that file. If it exists, then we
|
201
|
-
# rewite the url to have explicit .html on the end
|
202
|
-
# and then send it on its way to the next config rule.
|
203
|
-
# if there is no file on the fs then it sets all the
|
204
|
-
# necessary headers and proxies to our upstream mongrels
|
205
|
-
if (-f $request_filename.html) {
|
206
|
-
rewrite (.*) $1.html break;
|
207
|
-
}
|
172
|
+
<%= fetch(:nginx_extra_rules_ssl) unless fetch(:nginx_extra_rules_ssl).nil? %>
|
208
173
|
|
209
174
|
if (!-f $request_filename) {
|
210
175
|
proxy_pass http://<%= upstream_name_ssl %>;
|
@@ -214,7 +179,7 @@ server {
|
|
214
179
|
|
215
180
|
error_page 500 502 503 504 /500.html;
|
216
181
|
location = /500.html {
|
217
|
-
root <%=
|
182
|
+
root <%= fetch(:deploy_to) %>/current/public;
|
218
183
|
}
|
219
184
|
}
|
220
185
|
<% end %>
|
@@ -1,7 +1,6 @@
|
|
1
1
|
# Capistrano deployed htpasswd file
|
2
|
-
# <% c = Capistrano::BaseHelper::get_capistrano_instance %>
|
3
2
|
#
|
4
3
|
# Remember NOT to share your deployment file in case you have sensitive passwords stored in it.
|
5
4
|
# You probably shouldn't use this in production in case your deploy.rb is visible on public sites.
|
6
5
|
|
7
|
-
<%=
|
6
|
+
<%= fetch(:nginx_simple_auth_user) %>:<%= fetch(:nginx_simple_auth_password).crypt(fetch(:nginx_simple_auth_salt)) %>:Autogenerated user from capistrano deployment
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# Puma configuration for:
|
2
|
+
# <%= "#{fetch(:application)} running as #{fetch(:user)} in environment #{environment}" %>
|
3
|
+
workers <%= fetch(:puma_workers) %>
|
4
|
+
threads <%= fetch(:puma_min_threads) %>, <%= fetch(:puma_max_threads) %>
|
5
|
+
bind '<%= fetch(:puma_socket_url) %>'
|
6
|
+
pidfile '<%= fetch(:puma_pid_file) %>'
|
7
|
+
state_path '<%= fetch(:puma_state_file) %>'
|
8
|
+
environment '<%= "#{environment}" %>'
|
9
|
+
<%= "activate_control_app '#{fetch(:puma_control_url)}'" if fetch(:puma_activate_control_app) %>
|
10
|
+
|
11
|
+
<% if fetch(:puma_use_preload_app) %>
|
12
|
+
# In some cases preloading the app is best to avoid some infinite restart loops, however,
|
13
|
+
# it cannot be used it combination with phased restart.
|
14
|
+
<%= "preload_app!" %>
|
15
|
+
<% end %>
|
16
|
+
|
17
|
+
<% if fetch(:pruma_prune_bundler) %>
|
18
|
+
# TODO: prune_bundler
|
19
|
+
<% end %>
|
20
|
+
|
21
|
+
directory '<%= current_path %>'
|
22
|
+
|
23
|
+
# TODO - fix restart block!
|
24
|
+
# <%= "on_restart do" if fetch(:puma_on_restart_active) %>
|
25
|
+
# <%= " puts \"Restarting puma\"" if fetch(:puma_on_restart_active) %>
|
26
|
+
# <%= "end" if fetch(:puma_on_restart_active) %>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
#!/bin/bash --login
|
2
|
+
# Announcing stop/abort
|
3
|
+
echo "<%= "User: #{fetch(:user)} Application: #{fetch(:application)} Service: #{fetch(:puma_runit_service_name)}" %> stopping..."
|
4
|
+
|
5
|
+
# The command used when puma is asked to quit/stop/exit, overridden here, as runit normal signal will not work with puma
|
6
|
+
cd '<%= current_path %>'
|
7
|
+
RAILS_ENV=<%= environment %> exec <%= fetch(:puma_control) %> -S <%= fetch(:puma_state_file) %> stop
|
data/templates/runit/finish.erb
CHANGED
@@ -4,14 +4,13 @@
|
|
4
4
|
# https://github.com/erwbgy/puppet-runit/blob/fde6006e6d400f0c99b6ff0b1b63094207dc8783/templates/service/finish.erb
|
5
5
|
# Thanks to erwbgy!
|
6
6
|
#
|
7
|
-
# <% c = Capistrano::BaseHelper.get_capistrano_instance %>
|
8
7
|
# Variable name setup
|
9
8
|
<%
|
10
|
-
exit_code = "EXIT_CODE_#{
|
11
|
-
exit_status = "EXIT_STATUS_#{
|
12
|
-
min_auto_restart_interval = "MIN_AUTO_RESTART_INTERVAL_#{
|
13
|
-
max_auto_restart_count = "MAX_AUTO_RESTART_COUNT_#{
|
14
|
-
auto_restart_count_clear_interval = "AUTO_RESTART_COUNT_CLEAR_INTERVAL_#{
|
9
|
+
exit_code = "EXIT_CODE_#{user_app_env_underscore_short_char_safe}_#{fetch(:puma_runit_service_name)}".upcase
|
10
|
+
exit_status = "EXIT_STATUS_#{user_app_env_underscore_short_char_safe}_#{fetch(:puma_runit_service_name)}".upcase
|
11
|
+
min_auto_restart_interval = "MIN_AUTO_RESTART_INTERVAL_#{user_app_env_underscore_short_char_safe}_#{fetch(:puma_runit_service_name)}".upcase
|
12
|
+
max_auto_restart_count = "MAX_AUTO_RESTART_COUNT_#{user_app_env_underscore_short_char_safe}_#{fetch(:puma_runit_service_name)}".upcase
|
13
|
+
auto_restart_count_clear_interval = "AUTO_RESTART_COUNT_CLEAR_INTERVAL_#{user_app_env_underscore_short_char_safe}_#{fetch(:puma_runit_service_name)}".upcase
|
15
14
|
%>
|
16
15
|
#
|
17
16
|
# The following variables are set by Runit:
|
@@ -52,14 +51,14 @@ auto_restart_count_clear_interval = "AUTO_RESTART_COUNT_CLEAR_INTERVAL_#{Capistr
|
|
52
51
|
<%= "#{exit_status}" %>=$2
|
53
52
|
|
54
53
|
# The minimum delay (in seconds) between automatic restarts
|
55
|
-
<%= "#{min_auto_restart_interval}" %>=<%=
|
54
|
+
<%= "#{min_auto_restart_interval}" %>=<%= fetch(:puma_restart_interval) %>
|
56
55
|
|
57
56
|
# The maximum number of automatic restarts allowed
|
58
|
-
<%= "#{max_auto_restart_count}" %>=<%=
|
57
|
+
<%= "#{max_auto_restart_count}" %>=<%= fetch(:puma_restart_count) %>
|
59
58
|
|
60
59
|
# Reset the restart count if <%= "#{auto_restart_count_clear_interval}" %> seconds
|
61
60
|
# have elapsed since the last automatic restart.
|
62
|
-
<%= "#{auto_restart_count_clear_interval}" %>=<%=
|
61
|
+
<%= "#{auto_restart_count_clear_interval}" %>=<%= fetch(:puma_autorestart_clear_interval) %>
|
63
62
|
|
64
63
|
export <%= "#{exit_code}" %>
|
65
64
|
export <%= "#{exit_status}" %>
|
@@ -69,7 +68,7 @@ export <%= "#{auto_restart_count_clear_interval }" %>
|
|
69
68
|
|
70
69
|
### Normally no changes should be made after this point
|
71
70
|
|
72
|
-
echo "<%= "User: #{
|
71
|
+
echo "<%= "User: #{fetch(:user)} Application: #{fetch(:application)} Service: #{fetch(:puma_runit_service_name)}" %> finish; exit code: $<%= "#{exit_code}" %>; exit status: $<%= "#{exit_status}" %>"
|
73
72
|
|
74
73
|
if test $<%= "#{exit_code}" %> -eq 0 -a $<%= "#{exit_status}" %> -eq 0
|
75
74
|
then
|
@@ -92,7 +91,7 @@ echo $NOW > last_finish
|
|
92
91
|
# have elapsed since the last automatic restart.
|
93
92
|
if test $INTERVAL -gt $<%= "#{auto_restart_count_clear_interval}" %>
|
94
93
|
then
|
95
|
-
echo "NOTICE: <%= "User: #{
|
94
|
+
echo "NOTICE: <%= "User: #{fetch(:user)} Application: #{fetch(:application)} Service: #{fetch(:puma_runit_service_name)}" %>"
|
96
95
|
echo "The last automatic restart was $INTERVAL seconds ago."
|
97
96
|
echo "Since this is greater than $<%= "#{auto_restart_count_clear_interval}" %> the restart count is being reset."
|
98
97
|
rm -f restart_count
|
@@ -112,7 +111,7 @@ echo $RESTART_COUNT > restart_count
|
|
112
111
|
# Check that we have not exceeded the maximum number of automatic restarts
|
113
112
|
if test $RESTART_COUNT -gt $<%= "#{max_auto_restart_count}" %>
|
114
113
|
then
|
115
|
-
echo "WARNING: <%= "User: #{
|
114
|
+
echo "WARNING: <%= "User: #{fetch(:user)} Application: #{fetch(:application)} Service: #{fetch(:puma_runit_service_name)}" %>"
|
116
115
|
echo "Reached the limit of $<%= "#{max_auto_restart_count}" %> automatic restarts."
|
117
116
|
echo "The last automatic restart was within $<%= "#{auto_restart_count_clear_interval}" %> seconds."
|
118
117
|
echo "Manual intervention required. No further automatic restarts will be attempted."
|
@@ -125,11 +124,11 @@ then
|
|
125
124
|
SLEEP_TIME=$(expr $<%= "#{min_auto_restart_interval}" %> - $INTERVAL)
|
126
125
|
if test $SLEEP_TIME -gt 0
|
127
126
|
then
|
128
|
-
echo "NOTICE: Restart attempt $RESTART_COUNT for <%= "User: #{
|
127
|
+
echo "NOTICE: Restart attempt $RESTART_COUNT for <%= "User: #{fetch(:user)} Application: #{fetch(:application)} Service: #{fetch(:puma_runit_service_name)}" %>"
|
129
128
|
echo "$INTERVAL seconds have elapsed since the last automatic restart."
|
130
129
|
echo "Sleeping for $SLEEP_TIME seconds before the next automatic restart ..."
|
131
130
|
sleep $SLEEP_TIME
|
132
131
|
fi
|
133
132
|
fi
|
134
133
|
|
135
|
-
exit 0
|
134
|
+
exit 0
|
@@ -0,0 +1,9 @@
|
|
1
|
+
#!/bin/sh -e
|
2
|
+
# Log output for puma running on <%= fetch(:application) %> running as <%= fetch(:user) %>
|
3
|
+
# make sure the log directory exists
|
4
|
+
mkdir -p "<%= fetch(:puma_log_path) %>"
|
5
|
+
# change path to the log directory
|
6
|
+
cd "<%= fetch(:puma_log_path) %>"
|
7
|
+
# start logging
|
8
|
+
# exec chpst -u syslog svlogd -tt "<%= fetch(:puma_log_path) %>"
|
9
|
+
exec svlogd -tt "<%= fetch(:puma_log_path) %>"
|
data/templates/runit/run.erb
CHANGED
@@ -1,18 +1,17 @@
|
|
1
1
|
#!/bin/bash --login
|
2
2
|
# Start puma service
|
3
|
-
# <% c = Capistrano::BaseHelper.get_capistrano_instance %>
|
4
3
|
|
5
4
|
# Redirect stderr so everything ends up in the log file
|
6
5
|
exec 2>&1
|
7
6
|
|
8
7
|
# Announce start
|
9
|
-
echo "<%= "User: #{
|
8
|
+
echo "<%= "User: #{fetch(:user)} Application: #{fetch(:application)}, Environment: #{environment} Service: #{fetch(:puma_runit_service_name)}" %> starting..."
|
10
9
|
|
11
|
-
# remove pumactl.sock and puma.sock if existing, as puma doesn't overwrite and files may be
|
12
|
-
# existing after server crash or if puma
|
13
|
-
rm -f "<%=
|
14
|
-
rm -f "<%=
|
15
|
-
cd '<%=
|
10
|
+
# remove pumactl.sock and puma.sock if existing, as puma doesn't overwrite and files may be
|
11
|
+
# existing after server crash or if puma was not properly shut down.
|
12
|
+
rm -f "<%= fetch(:puma_socket_file) %>"
|
13
|
+
rm -f "<%= fetch(:puma_control_file) %>"
|
14
|
+
cd '<%= current_path %>'
|
16
15
|
|
17
16
|
# Start puma
|
18
|
-
RAILS_ENV=<%=
|
17
|
+
RAILS_ENV=<%= environment %> exec <%= fetch(:puma_bin) %> -C <%= fetch(:puma_config_file) %>
|
metadata
CHANGED
@@ -1,81 +1,87 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-pumaio
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
5
|
-
prerelease:
|
4
|
+
version: 3.0.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Leif Ringstad
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2015-03-26 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: capistrano
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - "~>"
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
19
|
+
version: '3.4'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - "~>"
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
26
|
+
version: '3.4'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
|
-
name:
|
28
|
+
name: activesupport
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - ">="
|
36
32
|
- !ruby/object:Gem::Version
|
37
|
-
version:
|
33
|
+
version: '3.0'
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - ">="
|
44
39
|
- !ruby/object:Gem::Version
|
45
|
-
version:
|
40
|
+
version: '3.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: capistrano-monit_runit
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 3.0.1
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 3.0.1
|
46
55
|
- !ruby/object:Gem::Dependency
|
47
56
|
name: bundler
|
48
57
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
58
|
requirements:
|
51
|
-
- -
|
59
|
+
- - "~>"
|
52
60
|
- !ruby/object:Gem::Version
|
53
|
-
version: 1.
|
61
|
+
version: '1.7'
|
54
62
|
type: :development
|
55
63
|
prerelease: false
|
56
64
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
65
|
requirements:
|
59
|
-
- -
|
66
|
+
- - "~>"
|
60
67
|
- !ruby/object:Gem::Version
|
61
|
-
version: 1.
|
68
|
+
version: '1.7'
|
62
69
|
- !ruby/object:Gem::Dependency
|
63
70
|
name: jeweler
|
64
71
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
72
|
requirements:
|
67
|
-
- - ~>
|
73
|
+
- - "~>"
|
68
74
|
- !ruby/object:Gem::Version
|
69
|
-
version:
|
75
|
+
version: '2.0'
|
70
76
|
type: :development
|
71
77
|
prerelease: false
|
72
78
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
79
|
requirements:
|
75
|
-
- - ~>
|
80
|
+
- - "~>"
|
76
81
|
- !ruby/object:Gem::Version
|
77
|
-
version:
|
78
|
-
description: Capistrano recipes for puma using runit and monit.
|
82
|
+
version: '2.0'
|
83
|
+
description: Capistrano recipes for puma using runit and monit. Includes nginx recipes
|
84
|
+
for the app server.
|
79
85
|
email: leifcr@gmail.com
|
80
86
|
executables: []
|
81
87
|
extensions: []
|
@@ -90,45 +96,45 @@ files:
|
|
90
96
|
- Rakefile
|
91
97
|
- VERSION
|
92
98
|
- capistrano-pumaio.gemspec
|
99
|
+
- lib/capistrano/helpers/puma/monit.rb
|
100
|
+
- lib/capistrano/helpers/puma/nginx.rb
|
101
|
+
- lib/capistrano/helpers/puma/template_paths.rb
|
93
102
|
- lib/capistrano/puma.rb
|
94
|
-
- lib/capistrano/
|
95
|
-
- lib/capistrano/
|
96
|
-
- lib/capistrano/
|
97
|
-
- lib/capistrano/
|
103
|
+
- lib/capistrano/tasks/config.rake
|
104
|
+
- lib/capistrano/tasks/monit.rake
|
105
|
+
- lib/capistrano/tasks/nginx.rake
|
106
|
+
- lib/capistrano/tasks/nginx_config.rake
|
107
|
+
- lib/capistrano/tasks/runit.rake
|
98
108
|
- templates/monit/puma.conf.erb
|
99
109
|
- templates/nginx/application.conf.erb
|
100
110
|
- templates/nginx/htpasswd.erb
|
101
|
-
- templates/
|
102
|
-
- templates/runit/control
|
111
|
+
- templates/puma-config.rb.erb
|
112
|
+
- templates/runit/control/q.erb
|
103
113
|
- templates/runit/finish.erb
|
104
|
-
- templates/runit/log
|
114
|
+
- templates/runit/log/run.erb
|
105
115
|
- templates/runit/run.erb
|
106
116
|
homepage: https://github.com/leifcr/capistrano-puma
|
107
117
|
licenses:
|
108
118
|
- MIT
|
119
|
+
metadata: {}
|
109
120
|
post_install_message:
|
110
121
|
rdoc_options: []
|
111
122
|
require_paths:
|
112
123
|
- lib
|
113
124
|
required_ruby_version: !ruby/object:Gem::Requirement
|
114
|
-
none: false
|
115
125
|
requirements:
|
116
|
-
- -
|
126
|
+
- - ">="
|
117
127
|
- !ruby/object:Gem::Version
|
118
128
|
version: '0'
|
119
|
-
segments:
|
120
|
-
- 0
|
121
|
-
hash: -349427844065879838
|
122
129
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
123
|
-
none: false
|
124
130
|
requirements:
|
125
|
-
- -
|
131
|
+
- - ">="
|
126
132
|
- !ruby/object:Gem::Version
|
127
133
|
version: '0'
|
128
134
|
requirements: []
|
129
135
|
rubyforge_project:
|
130
|
-
rubygems_version:
|
136
|
+
rubygems_version: 2.4.6
|
131
137
|
signing_key:
|
132
|
-
specification_version:
|
138
|
+
specification_version: 4
|
133
139
|
summary: Capistrano recipes for puma using runit and monit
|
134
140
|
test_files: []
|