capistrano3-puma 4.0.0 → 5.2.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 +4 -4
- data/.github/workflows/stale.yml +19 -0
- data/CHANGELOG.md +321 -50
- data/CONTRIBUTORS.md +1 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +1 -1
- data/README.md +65 -2
- data/Rakefile +8 -0
- data/capistrano3-puma.gemspec +1 -1
- data/lib/capistrano/puma/daemon.rb +13 -0
- data/lib/capistrano/puma/nginx.rb +1 -0
- data/lib/capistrano/puma/systemd.rb +58 -0
- data/lib/capistrano/puma/version.rb +3 -1
- data/lib/capistrano/puma.rb +48 -5
- data/lib/capistrano/tasks/daemon.rake +74 -0
- data/lib/capistrano/tasks/nginx.rake +8 -0
- data/lib/capistrano/tasks/puma.rake +0 -79
- data/lib/capistrano/tasks/systemd.rake +136 -0
- data/lib/capistrano/templates/nginx_conf.erb +12 -9
- data/lib/capistrano/templates/puma.rb.erb +0 -0
- data/lib/capistrano/templates/puma.service.erb +28 -0
- data/lib/capistrano/templates/puma.socket.erb +22 -0
- metadata +20 -8
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 98e0fb64cfd73c2183c8ac641ec0e426f1721657254eeae1b6cebea4d9b34e78
|
|
4
|
+
data.tar.gz: 658219686493acef08d13c050c6d3c8536c980a6820d3d1165dcb5c3e3c80f89
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2423e9acfe501fe4404592ae5099e619aa168e055372ea7e56762a001e59cbefbdf6d32373e7c003a6abe2fefcde429887bddb5d02d7806b8969fa92297d70ad
|
|
7
|
+
data.tar.gz: f629c899266cbc6a97b40243c1edfdfa7ba23e6f519f837e6c05209de2845261ca25a823a84ecbf1045fe8566845deff8fb71c7fee967e1c9b46d67896f9652b
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
name: Mark stale issues and pull requests
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
schedule:
|
|
5
|
+
- cron: "30 1 * * *"
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
stale:
|
|
9
|
+
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
|
|
12
|
+
steps:
|
|
13
|
+
- uses: actions/stale@v3
|
|
14
|
+
with:
|
|
15
|
+
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
|
16
|
+
stale-issue-message: 'Stale issue message'
|
|
17
|
+
stale-pr-message: 'Stale pull request message'
|
|
18
|
+
stale-issue-label: 'no-issue-activity'
|
|
19
|
+
stale-pr-label: 'no-pr-activity'
|
data/CHANGELOG.md
CHANGED
|
@@ -1,50 +1,321 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [5.2.0](https://github.com/seuros/capistrano-puma/tree/5.2.0) (2021-09-11)
|
|
4
|
+
|
|
5
|
+
[Full Changelog](https://github.com/seuros/capistrano-puma/compare/v5.1.1...5.2.0)
|
|
6
|
+
|
|
7
|
+
**Merged pull requests:**
|
|
8
|
+
|
|
9
|
+
- Add option for phased restart of puma [\#333](https://github.com/seuros/capistrano-puma/pull/333) ([phylor](https://github.com/phylor))
|
|
10
|
+
|
|
11
|
+
## [v5.1.1](https://github.com/seuros/capistrano-puma/tree/v5.1.1) (2021-09-03)
|
|
12
|
+
|
|
13
|
+
[Full Changelog](https://github.com/seuros/capistrano-puma/compare/v5.1.0...v5.1.1)
|
|
14
|
+
|
|
15
|
+
**Merged pull requests:**
|
|
16
|
+
|
|
17
|
+
- Reload also should support system mode. [\#331](https://github.com/seuros/capistrano-puma/pull/331) ([Eric-Guo](https://github.com/Eric-Guo))
|
|
18
|
+
|
|
19
|
+
## [v5.1.0](https://github.com/seuros/capistrano-puma/tree/v5.1.0) (2021-09-02)
|
|
20
|
+
|
|
21
|
+
[Full Changelog](https://github.com/seuros/capistrano-puma/compare/v5.0.4...v5.1.0)
|
|
22
|
+
|
|
23
|
+
**Merged pull requests:**
|
|
24
|
+
|
|
25
|
+
- Phased restart [\#329](https://github.com/seuros/capistrano-puma/pull/329) ([mksvdmtr](https://github.com/mksvdmtr))
|
|
26
|
+
- fix typo in README.md [\#325](https://github.com/seuros/capistrano-puma/pull/325) ([Yuki-Inoue](https://github.com/Yuki-Inoue))
|
|
27
|
+
- Implement puma systemd sockets [\#324](https://github.com/seuros/capistrano-puma/pull/324) ([chriscz](https://github.com/chriscz))
|
|
28
|
+
|
|
29
|
+
## [v5.0.4](https://github.com/seuros/capistrano-puma/tree/v5.0.4) (2021-03-03)
|
|
30
|
+
|
|
31
|
+
[Full Changelog](https://github.com/seuros/capistrano-puma/compare/v5.0.3...v5.0.4)
|
|
32
|
+
|
|
33
|
+
**Merged pull requests:**
|
|
34
|
+
|
|
35
|
+
- fix: puma\_systemctl\_user default value [\#319](https://github.com/seuros/capistrano-puma/pull/319) ([davegudge](https://github.com/davegudge))
|
|
36
|
+
|
|
37
|
+
## [v5.0.3](https://github.com/seuros/capistrano-puma/tree/v5.0.3) (2021-02-23)
|
|
38
|
+
|
|
39
|
+
[Full Changelog](https://github.com/seuros/capistrano-puma/compare/v5.0.2...v5.0.3)
|
|
40
|
+
|
|
41
|
+
**Merged pull requests:**
|
|
42
|
+
|
|
43
|
+
- update systemd template accept puma\_service\_unit\_env\_file and puma\_se… [\#315](https://github.com/seuros/capistrano-puma/pull/315) ([iscreen](https://github.com/iscreen))
|
|
44
|
+
- Remove ExecStop from systemd unit file [\#314](https://github.com/seuros/capistrano-puma/pull/314) ([w-leads](https://github.com/w-leads))
|
|
45
|
+
- Default systemd service name on multi-app host [\#309](https://github.com/seuros/capistrano-puma/pull/309) ([bendilley](https://github.com/bendilley))
|
|
46
|
+
- Systemd user service manager and lingering [\#307](https://github.com/seuros/capistrano-puma/pull/307) ([farnsworth](https://github.com/farnsworth))
|
|
47
|
+
- Update nginx template to support X-Forwarded-Proto and remove executables from \*.erb files [\#283](https://github.com/seuros/capistrano-puma/pull/283) ([dapi](https://github.com/dapi))
|
|
48
|
+
|
|
49
|
+
## [v5.0.2](https://github.com/seuros/capistrano-puma/tree/v5.0.2) (2020-12-07)
|
|
50
|
+
|
|
51
|
+
[Full Changelog](https://github.com/seuros/capistrano-puma/compare/v5.0.1...v5.0.2)
|
|
52
|
+
|
|
53
|
+
**Merged pull requests:**
|
|
54
|
+
|
|
55
|
+
- Single name for systemd config template [\#308](https://github.com/seuros/capistrano-puma/pull/308) ([bendilley](https://github.com/bendilley))
|
|
56
|
+
|
|
57
|
+
## [v5.0.1](https://github.com/seuros/capistrano-puma/tree/v5.0.1) (2020-12-02)
|
|
58
|
+
|
|
59
|
+
[Full Changelog](https://github.com/seuros/capistrano-puma/compare/v5.0.0...v5.0.1)
|
|
60
|
+
|
|
61
|
+
**Merged pull requests:**
|
|
62
|
+
|
|
63
|
+
- Fix \#301, Task "puma:smart\_restart" not found [\#304](https://github.com/seuros/capistrano-puma/pull/304) ([Eric-Guo](https://github.com/Eric-Guo))
|
|
64
|
+
|
|
65
|
+
## [v5.0.0](https://github.com/seuros/capistrano-puma/tree/v5.0.0) (2020-12-01)
|
|
66
|
+
|
|
67
|
+
[Full Changelog](https://github.com/seuros/capistrano-puma/compare/v5.0.0.beta1...v5.0.0)
|
|
68
|
+
|
|
69
|
+
## [v5.0.0.beta1](https://github.com/seuros/capistrano-puma/tree/v5.0.0.beta1) (2020-11-04)
|
|
70
|
+
|
|
71
|
+
[Full Changelog](https://github.com/seuros/capistrano-puma/compare/v4.0.0...v5.0.0.beta1)
|
|
72
|
+
|
|
73
|
+
**Merged pull requests:**
|
|
74
|
+
|
|
75
|
+
- Add systemd support and puma 5 support [\#300](https://github.com/seuros/capistrano-puma/pull/300) ([ayamomiji](https://github.com/ayamomiji))
|
|
76
|
+
- Update nginx template [\#290](https://github.com/seuros/capistrano-puma/pull/290) ([neolyte](https://github.com/neolyte))
|
|
77
|
+
- Improve already running warning message [\#262](https://github.com/seuros/capistrano-puma/pull/262) ([jackbot](https://github.com/jackbot))
|
|
78
|
+
|
|
79
|
+
## [v4.0.0](https://github.com/seuros/capistrano-puma/tree/v4.0.0) (2019-06-27)
|
|
80
|
+
|
|
81
|
+
[Full Changelog](https://github.com/seuros/capistrano-puma/compare/v3.1.1...v4.0.0)
|
|
82
|
+
|
|
83
|
+
**Merged pull requests:**
|
|
84
|
+
|
|
85
|
+
- Change 3.4 to 4.0 [\#285](https://github.com/seuros/capistrano-puma/pull/285) ([paulomcnally](https://github.com/paulomcnally))
|
|
86
|
+
- Revert "Fixed call parameter" [\#282](https://github.com/seuros/capistrano-puma/pull/282) ([stefanwild](https://github.com/stefanwild))
|
|
87
|
+
- Fixed call parameter [\#280](https://github.com/seuros/capistrano-puma/pull/280) ([stefanwild](https://github.com/stefanwild))
|
|
88
|
+
- Use HTTP 1.1 for proxying [\#277](https://github.com/seuros/capistrano-puma/pull/277) ([amiuhle](https://github.com/amiuhle))
|
|
89
|
+
- Update README.md [\#276](https://github.com/seuros/capistrano-puma/pull/276) ([poyzn](https://github.com/poyzn))
|
|
90
|
+
- fix typo in readme [\#275](https://github.com/seuros/capistrano-puma/pull/275) ([knt45](https://github.com/knt45))
|
|
91
|
+
- special case: setting X-Forwarded-Proto https even if ngnix is not using SSL [\#265](https://github.com/seuros/capistrano-puma/pull/265) ([anand-c-srinivasan](https://github.com/anand-c-srinivasan))
|
|
92
|
+
- \#243 Fix restart task, pumactl don't call bundle exec on restart [\#251](https://github.com/seuros/capistrano-puma/pull/251) ([pgericson](https://github.com/pgericson))
|
|
93
|
+
- Wrong path to puma config fixed [\#249](https://github.com/seuros/capistrano-puma/pull/249) ([atilla777](https://github.com/atilla777))
|
|
94
|
+
- Update README.md [\#247](https://github.com/seuros/capistrano-puma/pull/247) ([lozhn](https://github.com/lozhn))
|
|
95
|
+
- Added shared puma conf as argument to jungle:add [\#238](https://github.com/seuros/capistrano-puma/pull/238) ([anonoz](https://github.com/anonoz))
|
|
96
|
+
|
|
97
|
+
## [v3.1.1](https://github.com/seuros/capistrano-puma/tree/v3.1.1) (2017-07-04)
|
|
98
|
+
|
|
99
|
+
[Full Changelog](https://github.com/seuros/capistrano-puma/compare/v3.1.0...v3.1.1)
|
|
100
|
+
|
|
101
|
+
**Merged pull requests:**
|
|
102
|
+
|
|
103
|
+
- Fix jungle setup for debian [\#235](https://github.com/seuros/capistrano-puma/pull/235) ([PavelBezpalov](https://github.com/PavelBezpalov))
|
|
104
|
+
- Force SSL/LTS with return directive [\#234](https://github.com/seuros/capistrano-puma/pull/234) ([notapatch](https://github.com/notapatch))
|
|
105
|
+
- Use `$host` to prevent forgery [\#232](https://github.com/seuros/capistrano-puma/pull/232) ([teeceepee](https://github.com/teeceepee))
|
|
106
|
+
- Fix undefined method 'as' on Capistrano::Puma and 'execute' should be wrapped in an 'on' block [\#230](https://github.com/seuros/capistrano-puma/pull/230) ([4xposed](https://github.com/4xposed))
|
|
107
|
+
- Wait for Monit to be reloaded [\#224](https://github.com/seuros/capistrano-puma/pull/224) ([ivanovaleksey](https://github.com/ivanovaleksey))
|
|
108
|
+
- Update README.md [\#223](https://github.com/seuros/capistrano-puma/pull/223) ([notapatch](https://github.com/notapatch))
|
|
109
|
+
- \[Fix \#219\] Call execute on backend [\#222](https://github.com/seuros/capistrano-puma/pull/222) ([ivanovaleksey](https://github.com/ivanovaleksey))
|
|
110
|
+
- Add option to specify the location of SSL certificates [\#221](https://github.com/seuros/capistrano-puma/pull/221) ([wynksaiddestroy](https://github.com/wynksaiddestroy))
|
|
111
|
+
- Fix the nginx\_conf can not upgrade to web sockets when using ActionCable [\#218](https://github.com/seuros/capistrano-puma/pull/218) ([Eric-Guo](https://github.com/Eric-Guo))
|
|
112
|
+
- Add stage to cap commands [\#216](https://github.com/seuros/capistrano-puma/pull/216) ([wynksaiddestroy](https://github.com/wynksaiddestroy))
|
|
113
|
+
|
|
114
|
+
## [v3.1.0](https://github.com/seuros/capistrano-puma/tree/v3.1.0) (2017-03-24)
|
|
115
|
+
|
|
116
|
+
[Full Changelog](https://github.com/seuros/capistrano-puma/compare/v3.0.3...v3.1.0)
|
|
117
|
+
|
|
118
|
+
**Merged pull requests:**
|
|
119
|
+
|
|
120
|
+
- release 3.1.0 [\#212](https://github.com/seuros/capistrano-puma/pull/212) ([seuros](https://github.com/seuros))
|
|
121
|
+
- Minor fixes [\#211](https://github.com/seuros/capistrano-puma/pull/211) ([rojosinalma](https://github.com/rojosinalma))
|
|
122
|
+
- Fixes issue \#208 [\#209](https://github.com/seuros/capistrano-puma/pull/209) ([rojosinalma](https://github.com/rojosinalma))
|
|
123
|
+
- Give hint about appending variable values instead of setting them [\#207](https://github.com/seuros/capistrano-puma/pull/207) ([mcelicalderon](https://github.com/mcelicalderon))
|
|
124
|
+
|
|
125
|
+
## [v3.0.3](https://github.com/seuros/capistrano-puma/tree/v3.0.3) (2017-03-23)
|
|
126
|
+
|
|
127
|
+
[Full Changelog](https://github.com/seuros/capistrano-puma/compare/v3.0.2...v3.0.3)
|
|
128
|
+
|
|
129
|
+
## [v3.0.2](https://github.com/seuros/capistrano-puma/tree/v3.0.2) (2017-03-22)
|
|
130
|
+
|
|
131
|
+
[Full Changelog](https://github.com/seuros/capistrano-puma/compare/v3.0.1...v3.0.2)
|
|
132
|
+
|
|
133
|
+
**Merged pull requests:**
|
|
134
|
+
|
|
135
|
+
- Fix vars loading issue during plugin initialization [\#205](https://github.com/seuros/capistrano-puma/pull/205) ([ilyapoz](https://github.com/ilyapoz))
|
|
136
|
+
|
|
137
|
+
## [v3.0.1](https://github.com/seuros/capistrano-puma/tree/v3.0.1) (2017-03-20)
|
|
138
|
+
|
|
139
|
+
[Full Changelog](https://github.com/seuros/capistrano-puma/compare/v3.0.0...v3.0.1)
|
|
140
|
+
|
|
141
|
+
## [v3.0.0](https://github.com/seuros/capistrano-puma/tree/v3.0.0) (2017-03-18)
|
|
142
|
+
|
|
143
|
+
[Full Changelog](https://github.com/seuros/capistrano-puma/compare/v2.0.0...v3.0.0)
|
|
144
|
+
|
|
145
|
+
**Merged pull requests:**
|
|
146
|
+
|
|
147
|
+
- Release v3.0.0 candidate [\#201](https://github.com/seuros/capistrano-puma/pull/201) ([seuros](https://github.com/seuros))
|
|
148
|
+
- Add 'daemonize' config [\#194](https://github.com/seuros/capistrano-puma/pull/194) ([rhannequin](https://github.com/rhannequin))
|
|
149
|
+
|
|
150
|
+
## [v2.0.0](https://github.com/seuros/capistrano-puma/tree/v2.0.0) (2017-03-08)
|
|
151
|
+
|
|
152
|
+
[Full Changelog](https://github.com/seuros/capistrano-puma/compare/v1.2.1...v2.0.0)
|
|
153
|
+
|
|
154
|
+
**Merged pull requests:**
|
|
155
|
+
|
|
156
|
+
- Skip puma start command if puma is running [\#198](https://github.com/seuros/capistrano-puma/pull/198) ([mizukmb](https://github.com/mizukmb))
|
|
157
|
+
- Fix puma:monit task for first deployment [\#187](https://github.com/seuros/capistrano-puma/pull/187) ([lucasalves](https://github.com/lucasalves))
|
|
158
|
+
- Update workers.rake [\#186](https://github.com/seuros/capistrano-puma/pull/186) ([treenewbee](https://github.com/treenewbee))
|
|
159
|
+
- typo [\#178](https://github.com/seuros/capistrano-puma/pull/178) ([BenjaminKim](https://github.com/BenjaminKim))
|
|
160
|
+
- Modify README file [\#176](https://github.com/seuros/capistrano-puma/pull/176) ([00dav00](https://github.com/00dav00))
|
|
161
|
+
- Remove trailing lines in ERB files [\#171](https://github.com/seuros/capistrano-puma/pull/171) ([papilip](https://github.com/papilip))
|
|
162
|
+
- Closing ActiveRecord connections before forking [\#170](https://github.com/seuros/capistrano-puma/pull/170) ([marcoschicote](https://github.com/marcoschicote))
|
|
163
|
+
- Add support to plugins [\#168](https://github.com/seuros/capistrano-puma/pull/168) ([seuros](https://github.com/seuros))
|
|
164
|
+
- Add server\_name to the http-\>https redirection server block [\#147](https://github.com/seuros/capistrano-puma/pull/147) ([bdewater](https://github.com/bdewater))
|
|
165
|
+
- Fix README: default value of puma\_preload\_app is false [\#145](https://github.com/seuros/capistrano-puma/pull/145) ([snoozer05](https://github.com/snoozer05))
|
|
166
|
+
- Respect the global puma\_user setting [\#139](https://github.com/seuros/capistrano-puma/pull/139) ([jhollinger](https://github.com/jhollinger))
|
|
167
|
+
- Add puma commands to chruby\_map\_bins. [\#135](https://github.com/seuros/capistrano-puma/pull/135) ([linjunpop](https://github.com/linjunpop))
|
|
168
|
+
- Run the shell as a login shell. [\#132](https://github.com/seuros/capistrano-puma/pull/132) ([kgiszczak](https://github.com/kgiszczak))
|
|
169
|
+
- Issue \#120 -- explicitly pass the config file location to pumactl [\#129](https://github.com/seuros/capistrano-puma/pull/129) ([lhagemann](https://github.com/lhagemann))
|
|
170
|
+
- Use SSHKit command\_map [\#128](https://github.com/seuros/capistrano-puma/pull/128) ([hbin](https://github.com/hbin))
|
|
171
|
+
- Update Readme [\#127](https://github.com/seuros/capistrano-puma/pull/127) ([h0lyalg0rithm](https://github.com/h0lyalg0rithm))
|
|
172
|
+
|
|
173
|
+
## [v1.2.1](https://github.com/seuros/capistrano-puma/tree/v1.2.1) (2015-08-20)
|
|
174
|
+
|
|
175
|
+
[Full Changelog](https://github.com/seuros/capistrano-puma/compare/v1.2.0...v1.2.1)
|
|
176
|
+
|
|
177
|
+
**Merged pull requests:**
|
|
178
|
+
|
|
179
|
+
- Added fix for wrong arguments on puma stop [\#124](https://github.com/seuros/capistrano-puma/pull/124) ([rsov](https://github.com/rsov))
|
|
180
|
+
|
|
181
|
+
## [v1.2.0](https://github.com/seuros/capistrano-puma/tree/v1.2.0) (2015-08-19)
|
|
182
|
+
|
|
183
|
+
[Full Changelog](https://github.com/seuros/capistrano-puma/compare/v1.1.0...v1.2.0)
|
|
184
|
+
|
|
185
|
+
**Implemented enhancements:**
|
|
186
|
+
|
|
187
|
+
- Adds ssl configuration for nginx [\#116](https://github.com/seuros/capistrano-puma/pull/116) ([mdesanti](https://github.com/mdesanti))
|
|
188
|
+
|
|
189
|
+
**Merged pull requests:**
|
|
190
|
+
|
|
191
|
+
- new puma user log [\#122](https://github.com/seuros/capistrano-puma/pull/122) ([seuros](https://github.com/seuros))
|
|
192
|
+
- Don't need establish connection block if `puma\_preload\_app' set to false [\#118](https://github.com/seuros/capistrano-puma/pull/118) ([hbin](https://github.com/hbin))
|
|
193
|
+
- Mcb/add support for puma user [\#117](https://github.com/seuros/capistrano-puma/pull/117) ([mcb](https://github.com/mcb))
|
|
194
|
+
- Fix puma\_monit\_bin [\#114](https://github.com/seuros/capistrano-puma/pull/114) ([msbrigna](https://github.com/msbrigna))
|
|
195
|
+
- Update monit tasks [\#113](https://github.com/seuros/capistrano-puma/pull/113) ([soylent](https://github.com/soylent))
|
|
196
|
+
|
|
197
|
+
## [v1.1.0](https://github.com/seuros/capistrano-puma/tree/v1.1.0) (2015-06-23)
|
|
198
|
+
|
|
199
|
+
[Full Changelog](https://github.com/seuros/capistrano-puma/compare/v1.0.0...v1.1.0)
|
|
200
|
+
|
|
201
|
+
**Merged pull requests:**
|
|
202
|
+
|
|
203
|
+
- Always refresh Gemfile. Fixes \#109 [\#110](https://github.com/seuros/capistrano-puma/pull/110) ([sime](https://github.com/sime))
|
|
204
|
+
- Reload Monit after uploading any monit configuration [\#108](https://github.com/seuros/capistrano-puma/pull/108) ([suhailpatel](https://github.com/suhailpatel))
|
|
205
|
+
- Set :puma\_preload\_app to false [\#104](https://github.com/seuros/capistrano-puma/pull/104) ([rafaelgoulart](https://github.com/rafaelgoulart))
|
|
206
|
+
|
|
207
|
+
## [v1.0.0](https://github.com/seuros/capistrano-puma/tree/v1.0.0) (2015-05-05)
|
|
208
|
+
|
|
209
|
+
[Full Changelog](https://github.com/seuros/capistrano-puma/compare/v0.9.0...v1.0.0)
|
|
210
|
+
|
|
211
|
+
**Merged pull requests:**
|
|
212
|
+
|
|
213
|
+
- Feature/add activate control app [\#103](https://github.com/seuros/capistrano-puma/pull/103) ([askagirl](https://github.com/askagirl))
|
|
214
|
+
- Missing 'r' in prune\_bundler [\#101](https://github.com/seuros/capistrano-puma/pull/101) ([sime](https://github.com/sime))
|
|
215
|
+
|
|
216
|
+
## [v0.9.0](https://github.com/seuros/capistrano-puma/tree/v0.9.0) (2015-03-20)
|
|
217
|
+
|
|
218
|
+
[Full Changelog](https://github.com/seuros/capistrano-puma/compare/v0.8.5...v0.9.0)
|
|
219
|
+
|
|
220
|
+
**Merged pull requests:**
|
|
221
|
+
|
|
222
|
+
- Update Typo in README [\#97](https://github.com/seuros/capistrano-puma/pull/97) ([kcollignon](https://github.com/kcollignon))
|
|
223
|
+
- bundler prune should be automatically detect [\#96](https://github.com/seuros/capistrano-puma/pull/96) ([crhan](https://github.com/crhan))
|
|
224
|
+
|
|
225
|
+
## [v0.8.5](https://github.com/seuros/capistrano-puma/tree/v0.8.5) (2015-01-30)
|
|
226
|
+
|
|
227
|
+
[Full Changelog](https://github.com/seuros/capistrano-puma/compare/v0.8.4...v0.8.5)
|
|
228
|
+
|
|
229
|
+
**Merged pull requests:**
|
|
230
|
+
|
|
231
|
+
- Fix smart\_restart task to check if puma preloads app [\#93](https://github.com/seuros/capistrano-puma/pull/93) ([sponomarev](https://github.com/sponomarev))
|
|
232
|
+
|
|
233
|
+
## [v0.8.4](https://github.com/seuros/capistrano-puma/tree/v0.8.4) (2015-01-25)
|
|
234
|
+
|
|
235
|
+
[Full Changelog](https://github.com/seuros/capistrano-puma/compare/v0.8.3...v0.8.4)
|
|
236
|
+
|
|
237
|
+
**Merged pull requests:**
|
|
238
|
+
|
|
239
|
+
- Allow PATCH method [\#91](https://github.com/seuros/capistrano-puma/pull/91) ([lonre](https://github.com/lonre))
|
|
240
|
+
- Allow unix:/foo/ socket URLs [\#90](https://github.com/seuros/capistrano-puma/pull/90) ([indirect](https://github.com/indirect))
|
|
241
|
+
- Fix puma:monit task descriptions [\#88](https://github.com/seuros/capistrano-puma/pull/88) ([jc00ke](https://github.com/jc00ke))
|
|
242
|
+
- Convert to spaces [\#85](https://github.com/seuros/capistrano-puma/pull/85) ([lonre](https://github.com/lonre))
|
|
243
|
+
- Minor documentation correction [\#84](https://github.com/seuros/capistrano-puma/pull/84) ([neilbartley](https://github.com/neilbartley))
|
|
244
|
+
- appending :stage to puma's monit [\#81](https://github.com/seuros/capistrano-puma/pull/81) ([itsNikolay](https://github.com/itsNikolay))
|
|
245
|
+
|
|
246
|
+
## [v0.8.3](https://github.com/seuros/capistrano-puma/tree/v0.8.3) (2014-10-28)
|
|
247
|
+
|
|
248
|
+
[Full Changelog](https://github.com/seuros/capistrano-puma/compare/v0.8.2...v0.8.3)
|
|
249
|
+
|
|
250
|
+
## [v0.8.2](https://github.com/seuros/capistrano-puma/tree/v0.8.2) (2014-10-17)
|
|
251
|
+
|
|
252
|
+
[Full Changelog](https://github.com/seuros/capistrano-puma/compare/v0.8.1...v0.8.2)
|
|
253
|
+
|
|
254
|
+
**Merged pull requests:**
|
|
255
|
+
|
|
256
|
+
- Start task creates a conf file if none exists. [\#74](https://github.com/seuros/capistrano-puma/pull/74) ([stevemadere](https://github.com/stevemadere))
|
|
257
|
+
|
|
258
|
+
## [v0.8.1](https://github.com/seuros/capistrano-puma/tree/v0.8.1) (2014-10-08)
|
|
259
|
+
|
|
260
|
+
[Full Changelog](https://github.com/seuros/capistrano-puma/compare/v0.8.0...v0.8.1)
|
|
261
|
+
|
|
262
|
+
**Merged pull requests:**
|
|
263
|
+
|
|
264
|
+
- Fix nginx config task work with roles [\#72](https://github.com/seuros/capistrano-puma/pull/72) ([hnatt](https://github.com/hnatt))
|
|
265
|
+
- Fix puma\_bind unix socket path [\#70](https://github.com/seuros/capistrano-puma/pull/70) ([hnatt](https://github.com/hnatt))
|
|
266
|
+
- Update nginx\_config task call example in README [\#69](https://github.com/seuros/capistrano-puma/pull/69) ([hnatt](https://github.com/hnatt))
|
|
267
|
+
- Added config option for prune\_bundler [\#68](https://github.com/seuros/capistrano-puma/pull/68) ([behe](https://github.com/behe))
|
|
268
|
+
|
|
269
|
+
## [v0.8.0](https://github.com/seuros/capistrano-puma/tree/v0.8.0) (2014-09-23)
|
|
270
|
+
|
|
271
|
+
[Full Changelog](https://github.com/seuros/capistrano-puma/compare/v0.7.0...v0.8.0)
|
|
272
|
+
|
|
273
|
+
**Merged pull requests:**
|
|
274
|
+
|
|
275
|
+
- Update puma.cap to add missing , [\#65](https://github.com/seuros/capistrano-puma/pull/65) ([bryanl](https://github.com/bryanl))
|
|
276
|
+
- Fixed handling of multiple puma endpoints and of wildcard IP addresses [\#64](https://github.com/seuros/capistrano-puma/pull/64) ([jabbrwcky](https://github.com/jabbrwcky))
|
|
277
|
+
- Cannot call nginx:config cap task [\#61](https://github.com/seuros/capistrano-puma/pull/61) ([isc](https://github.com/isc))
|
|
278
|
+
|
|
279
|
+
## [v0.7.0](https://github.com/seuros/capistrano-puma/tree/v0.7.0) (2014-08-07)
|
|
280
|
+
|
|
281
|
+
[Full Changelog](https://github.com/seuros/capistrano-puma/compare/v0.6.1...v0.7.0)
|
|
282
|
+
|
|
283
|
+
**Merged pull requests:**
|
|
284
|
+
|
|
285
|
+
- Add a task for uploading nginx site config and a generator for configuring template before uploadinging [\#57](https://github.com/seuros/capistrano-puma/pull/57) ([dfang](https://github.com/dfang))
|
|
286
|
+
|
|
287
|
+
## [v0.6.1](https://github.com/seuros/capistrano-puma/tree/v0.6.1) (2014-07-03)
|
|
288
|
+
|
|
289
|
+
[Full Changelog](https://github.com/seuros/capistrano-puma/compare/v0.2.0...v0.6.1)
|
|
290
|
+
|
|
291
|
+
**Merged pull requests:**
|
|
292
|
+
|
|
293
|
+
- Explicitly daemonize when needed. [\#54](https://github.com/seuros/capistrano-puma/pull/54) ([crohr](https://github.com/crohr))
|
|
294
|
+
- Access and Error logs where backwards [\#52](https://github.com/seuros/capistrano-puma/pull/52) ([rottmanj](https://github.com/rottmanj))
|
|
295
|
+
- Fix jungle tasks [\#47](https://github.com/seuros/capistrano-puma/pull/47) ([RavWar](https://github.com/RavWar))
|
|
296
|
+
- Make monit play well with chruby. [\#46](https://github.com/seuros/capistrano-puma/pull/46) ([linjunpop](https://github.com/linjunpop))
|
|
297
|
+
- fix and beautify puma-deb, closes \#44 [\#45](https://github.com/seuros/capistrano-puma/pull/45) ([masterkain](https://github.com/masterkain))
|
|
298
|
+
- puma jungle start stop restart fix [\#38](https://github.com/seuros/capistrano-puma/pull/38) ([petertoth](https://github.com/petertoth))
|
|
299
|
+
- check redhat-release first [\#34](https://github.com/seuros/capistrano-puma/pull/34) ([marshall-lee](https://github.com/marshall-lee))
|
|
300
|
+
- set rack\_env before command execution [\#29](https://github.com/seuros/capistrano-puma/pull/29) ([arielze](https://github.com/arielze))
|
|
301
|
+
|
|
302
|
+
## [v0.2.0](https://github.com/seuros/capistrano-puma/tree/v0.2.0) (2014-01-28)
|
|
303
|
+
|
|
304
|
+
[Full Changelog](https://github.com/seuros/capistrano-puma/compare/4068552029ae7f40963afaa6d45d2877c7806d8d...v0.2.0)
|
|
305
|
+
|
|
306
|
+
**Merged pull requests:**
|
|
307
|
+
|
|
308
|
+
- add a trigger to puma config, for support Issue \#25 [\#26](https://github.com/seuros/capistrano-puma/pull/26) ([crhan](https://github.com/crhan))
|
|
309
|
+
- bump version for support capistrano v3.1 [\#24](https://github.com/seuros/capistrano-puma/pull/24) ([crhan](https://github.com/crhan))
|
|
310
|
+
- capistrano v3.1 compatible improve: dependency solve [\#22](https://github.com/seuros/capistrano-puma/pull/22) ([crhan](https://github.com/crhan))
|
|
311
|
+
- phased-restart also check for pid file first [\#21](https://github.com/seuros/capistrano-puma/pull/21) ([crhan](https://github.com/crhan))
|
|
312
|
+
- check pid instead of state file [\#20](https://github.com/seuros/capistrano-puma/pull/20) ([crhan](https://github.com/crhan))
|
|
313
|
+
- fix puma/puma\#300: Gemfile not refreshed between deploys [\#19](https://github.com/seuros/capistrano-puma/pull/19) ([crhan](https://github.com/crhan))
|
|
314
|
+
- Update README.md [\#17](https://github.com/seuros/capistrano-puma/pull/17) ([James-Hendrickson](https://github.com/James-Hendrickson))
|
|
315
|
+
- Sane defaults and puma:check [\#15](https://github.com/seuros/capistrano-puma/pull/15) ([shaneog](https://github.com/shaneog))
|
|
316
|
+
- run puma and pumactl with bundler [\#14](https://github.com/seuros/capistrano-puma/pull/14) ([ayamomiji](https://github.com/ayamomiji))
|
|
317
|
+
- Ensures that it will bundle w/ capistrano 3.1 [\#6](https://github.com/seuros/capistrano-puma/pull/6) ([kyledecot](https://github.com/kyledecot))
|
|
318
|
+
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
|
data/CONTRIBUTORS.md
CHANGED
data/Gemfile
CHANGED
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
|
@@ -26,6 +26,14 @@ And then execute:
|
|
|
26
26
|
install_plugin Capistrano::Puma::Monit # if you need the monit tasks
|
|
27
27
|
install_plugin Capistrano::Puma::Nginx # if you want to upload a nginx site template
|
|
28
28
|
```
|
|
29
|
+
You will need to select your service manager
|
|
30
|
+
```ruby
|
|
31
|
+
install_plugin Capistrano::Puma::Daemon # If you using puma daemonized (not supported in Puma 5+)
|
|
32
|
+
```
|
|
33
|
+
or
|
|
34
|
+
```ruby
|
|
35
|
+
install_plugin Capistrano::Puma::Systemd # if you use SystemD
|
|
36
|
+
```
|
|
29
37
|
|
|
30
38
|
To prevent loading the hooks of the plugin, add false to the load_hooks param.
|
|
31
39
|
```ruby
|
|
@@ -39,8 +47,8 @@ To prevent loading the hooks of the plugin, add false to the load_hooks param.
|
|
|
39
47
|
To make it work with rvm, rbenv and chruby, install the plugin after corresponding library inclusion.
|
|
40
48
|
```ruby
|
|
41
49
|
# Capfile
|
|
42
|
-
|
|
43
|
-
require 'capistrano/rbenv'
|
|
50
|
+
|
|
51
|
+
require 'capistrano/rbenv'
|
|
44
52
|
require 'capistrano/puma'
|
|
45
53
|
install_plugin Capistrano::Puma
|
|
46
54
|
```
|
|
@@ -95,6 +103,53 @@ For Jungle tasks (beta), these options exist:
|
|
|
95
103
|
set :puma_run_path, '/usr/local/bin/run-puma'
|
|
96
104
|
```
|
|
97
105
|
|
|
106
|
+
### Systemd
|
|
107
|
+
|
|
108
|
+
Install Systemd plugin in `Capfile`:
|
|
109
|
+
```ruby
|
|
110
|
+
install_plugin Capistrano::Puma
|
|
111
|
+
install_plugin Capistrano::Puma::Systemd
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
To generate unit file use:
|
|
115
|
+
```
|
|
116
|
+
cap production puma:systemd:config puma:systemd:enable
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
To use customize environment variables
|
|
120
|
+
|
|
121
|
+
```ruby
|
|
122
|
+
set :puma_service_unit_env_file, '/etc/environment'
|
|
123
|
+
```
|
|
124
|
+
```ruby
|
|
125
|
+
set :puma_service_unit_env_vars, %w[
|
|
126
|
+
RAILS_ENV=development
|
|
127
|
+
PUMA_METRICS_HTTP=tcp://0.0.0.0:9393
|
|
128
|
+
]
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
To use [phased restart](https://github.com/puma/puma/blob/master/docs/restart.md) for zero downtime deployments:
|
|
132
|
+
|
|
133
|
+
```ruby
|
|
134
|
+
set :puma_phased_restart, true
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Systemd Socket Activation
|
|
138
|
+
|
|
139
|
+
Systemd socket activation starts your app upon first request if it is not already running
|
|
140
|
+
|
|
141
|
+
```ruby
|
|
142
|
+
set :puma_enable_socket_service, true
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
For more information on socket activation have a look at the `systemd.socket` [man page](https://man7.org/linux/man-pages/man5/systemd.socket.5.html).
|
|
146
|
+
|
|
147
|
+
To restart the listening socket using Systemd run
|
|
148
|
+
```
|
|
149
|
+
cap puma:systemd:restart_socket
|
|
150
|
+
```
|
|
151
|
+
This would also restart the puma instance as the puma service depends on the socket service being active
|
|
152
|
+
|
|
98
153
|
### Multi bind
|
|
99
154
|
|
|
100
155
|
Multi-bind can be set with an array in the puma_bind variable
|
|
@@ -137,6 +192,13 @@ Configurable options, shown here with defaults: Please note the configuration op
|
|
|
137
192
|
set :puma_plugins, [] #accept array of plugins
|
|
138
193
|
set :puma_tag, fetch(:application)
|
|
139
194
|
set :puma_restart_command, 'bundle exec puma'
|
|
195
|
+
set :puma_service_unit_name, "puma_#{fetch(:application)}_#{fetch(:stage)}"
|
|
196
|
+
set :puma_systemctl_user, :system # accepts :user
|
|
197
|
+
set :puma_enable_lingering, fetch(:puma_systemctl_user) != :system # https://wiki.archlinux.org/index.php/systemd/User#Automatic_start-up_of_systemd_user_instances
|
|
198
|
+
set :puma_lingering_user, fetch(:user)
|
|
199
|
+
set :puma_service_unit_env_file, nil
|
|
200
|
+
set :puma_service_unit_env_vars, []
|
|
201
|
+
set :puma_phased_restart, false
|
|
140
202
|
|
|
141
203
|
set :nginx_config_name, "#{fetch(:application)}_#{fetch(:stage)}"
|
|
142
204
|
set :nginx_flags, 'fail_timeout=0'
|
|
@@ -148,6 +210,7 @@ Configurable options, shown here with defaults: Please note the configuration op
|
|
|
148
210
|
set :nginx_ssl_certificate, "/etc/ssl/certs/#{fetch(:nginx_config_name)}.crt"
|
|
149
211
|
set :nginx_ssl_certificate_key, "/etc/ssl/private/#{fetch(:nginx_config_name)}.key"
|
|
150
212
|
set :nginx_use_ssl, false
|
|
213
|
+
set :nginx_use_http2, true
|
|
151
214
|
set :nginx_downstream_uses_ssl, false
|
|
152
215
|
```
|
|
153
216
|
|
data/Rakefile
CHANGED
data/capistrano3-puma.gemspec
CHANGED
|
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
|
|
|
20
20
|
|
|
21
21
|
spec.add_dependency 'capistrano', '~> 3.7'
|
|
22
22
|
spec.add_dependency 'capistrano-bundler'
|
|
23
|
-
spec.add_dependency 'puma' , '
|
|
23
|
+
spec.add_dependency 'puma' , '>= 4.0', '< 6.0'
|
|
24
24
|
spec.post_install_message = %q{
|
|
25
25
|
All plugins need to be explicitly installed with install_plugin.
|
|
26
26
|
Please see README.md
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
module Capistrano
|
|
2
|
+
class Puma::Daemon < Capistrano::Plugin
|
|
3
|
+
include PumaCommon
|
|
4
|
+
|
|
5
|
+
def register_hooks
|
|
6
|
+
after 'deploy:finished', 'puma:smart_restart'
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def define_tasks
|
|
10
|
+
eval_rakefile File.expand_path('../../tasks/daemon.rake', __FILE__)
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -11,6 +11,7 @@ module Capistrano
|
|
|
11
11
|
set_if_empty :nginx_http_flags, fetch(:nginx_flags)
|
|
12
12
|
set_if_empty :nginx_socket_flags, fetch(:nginx_flags)
|
|
13
13
|
set_if_empty :nginx_use_ssl, false
|
|
14
|
+
set_if_empty :nginx_use_http2, true
|
|
14
15
|
set_if_empty :nginx_downstream_uses_ssl, false
|
|
15
16
|
end
|
|
16
17
|
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
module Capistrano
|
|
2
|
+
class Puma::Systemd < Capistrano::Plugin
|
|
3
|
+
include PumaCommon
|
|
4
|
+
|
|
5
|
+
def register_hooks
|
|
6
|
+
after 'deploy:finished', 'puma:smart_restart'
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def define_tasks
|
|
10
|
+
eval_rakefile File.expand_path('../../tasks/systemd.rake', __FILE__)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def set_defaults
|
|
14
|
+
set_if_empty :puma_systemctl_bin, '/bin/systemctl'
|
|
15
|
+
set_if_empty :puma_service_unit_name, -> { "puma_#{fetch(:application)}_#{fetch(:stage)}" }
|
|
16
|
+
set_if_empty :puma_enable_socket_service, -> { false }
|
|
17
|
+
set_if_empty :puma_systemctl_user, :system
|
|
18
|
+
set_if_empty :puma_enable_lingering, -> { fetch(:puma_systemctl_user) != :system }
|
|
19
|
+
set_if_empty :puma_lingering_user, -> { fetch(:user) }
|
|
20
|
+
set_if_empty :puma_phased_restart, -> { false }
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def expanded_bundle_command
|
|
24
|
+
backend.capture(:echo, SSHKit.config.command_map[:bundle]).strip
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def fetch_systemd_unit_path
|
|
28
|
+
if fetch(:puma_systemctl_user) == :system
|
|
29
|
+
"/etc/systemd/system/"
|
|
30
|
+
else
|
|
31
|
+
home_dir = backend.capture :pwd
|
|
32
|
+
File.join(home_dir, ".config", "systemd", "user")
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def systemd_command(*args)
|
|
37
|
+
command = [fetch(:puma_systemctl_bin)]
|
|
38
|
+
|
|
39
|
+
unless fetch(:puma_systemctl_user) == :system
|
|
40
|
+
command << "--user"
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
command + args
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def sudo_if_needed(*command)
|
|
47
|
+
if fetch(:puma_systemctl_user) == :system
|
|
48
|
+
backend.sudo command.map(&:to_s).join(" ")
|
|
49
|
+
else
|
|
50
|
+
backend.execute(*command)
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def execute_systemd(*args)
|
|
55
|
+
sudo_if_needed(*systemd_command(*args))
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
data/lib/capistrano/puma.rb
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
require 'capistrano/bundler'
|
|
2
|
-
require
|
|
2
|
+
require 'capistrano/plugin'
|
|
3
3
|
|
|
4
4
|
module Capistrano
|
|
5
5
|
module PumaCommon
|
|
@@ -28,8 +28,7 @@ module Capistrano
|
|
|
28
28
|
end.join("\n")
|
|
29
29
|
end
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
def template_puma(from, to, role)
|
|
31
|
+
def compiled_template_puma(from, role)
|
|
33
32
|
@role = role
|
|
34
33
|
file = [
|
|
35
34
|
"lib/capistrano/templates/#{from}-#{role.hostname}-#{fetch(:stage)}.rb",
|
|
@@ -45,7 +44,50 @@ module Capistrano
|
|
|
45
44
|
File.expand_path("../templates/#{from}.rb.erb", __FILE__)
|
|
46
45
|
].detect { |path| File.file?(path) }
|
|
47
46
|
erb = File.read(file)
|
|
48
|
-
|
|
47
|
+
StringIO.new(ERB.new(erb, nil, '-').result(binding))
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def template_puma(from, to, role)
|
|
51
|
+
backend.upload! compiled_template_puma(from, role), to
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
PumaBind = Struct.new(:full_address, :kind, :address) do
|
|
55
|
+
def unix?
|
|
56
|
+
kind == :unix
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def ssl?
|
|
60
|
+
kind == :ssl
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def tcp
|
|
64
|
+
kind == :tcp || ssl?
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def local
|
|
68
|
+
if unix?
|
|
69
|
+
self
|
|
70
|
+
else
|
|
71
|
+
PumaBind.new(
|
|
72
|
+
localize_address(full_address),
|
|
73
|
+
kind,
|
|
74
|
+
localize_address(address)
|
|
75
|
+
)
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
private
|
|
80
|
+
|
|
81
|
+
def localize_address(address)
|
|
82
|
+
address.gsub(/0\.0\.0\.0(.+)/, "127.0.0.1\\1")
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
def puma_binds
|
|
87
|
+
Array(fetch(:puma_bind)).map do |m|
|
|
88
|
+
etype, address = /(tcp|unix|ssl):\/{1,2}(.+)/.match(m).captures
|
|
89
|
+
PumaBind.new(m, etype.to_sym, address)
|
|
90
|
+
end
|
|
49
91
|
end
|
|
50
92
|
end
|
|
51
93
|
|
|
@@ -89,7 +131,6 @@ module Capistrano
|
|
|
89
131
|
|
|
90
132
|
def register_hooks
|
|
91
133
|
after 'deploy:check', 'puma:check'
|
|
92
|
-
after 'deploy:finished', 'puma:smart_restart'
|
|
93
134
|
end
|
|
94
135
|
|
|
95
136
|
def puma_workers
|
|
@@ -117,6 +158,8 @@ module Capistrano
|
|
|
117
158
|
end
|
|
118
159
|
|
|
119
160
|
require 'capistrano/puma/workers'
|
|
161
|
+
require 'capistrano/puma/daemon'
|
|
162
|
+
require 'capistrano/puma/systemd'
|
|
120
163
|
require 'capistrano/puma/monit'
|
|
121
164
|
require 'capistrano/puma/jungle'
|
|
122
165
|
require 'capistrano/puma/nginx'
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
git_plugin = self
|
|
2
|
+
|
|
3
|
+
namespace :puma do
|
|
4
|
+
desc 'Start puma'
|
|
5
|
+
task :start do
|
|
6
|
+
on roles(fetch(:puma_role)) do |role|
|
|
7
|
+
git_plugin.puma_switch_user(role) do
|
|
8
|
+
if test "[ -f #{fetch(:puma_pid)} ]" and test :kill, "-0 $( cat #{fetch(:puma_pid)} )"
|
|
9
|
+
info 'Puma is already running'
|
|
10
|
+
else
|
|
11
|
+
within current_path do
|
|
12
|
+
with rack_env: fetch(:puma_env) do
|
|
13
|
+
execute :puma, "-C #{fetch(:puma_conf)} --daemon"
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
%w[halt stop status].map do |command|
|
|
22
|
+
desc "#{command} puma"
|
|
23
|
+
task command do
|
|
24
|
+
on roles (fetch(:puma_role)) do |role|
|
|
25
|
+
within current_path do
|
|
26
|
+
git_plugin.puma_switch_user(role) do
|
|
27
|
+
with rack_env: fetch(:puma_env) do
|
|
28
|
+
if test "[ -f #{fetch(:puma_pid)} ]"
|
|
29
|
+
if test :kill, "-0 $( cat #{fetch(:puma_pid)} )"
|
|
30
|
+
execute :pumactl, "-S #{fetch(:puma_state)} -F #{fetch(:puma_conf)} #{command}"
|
|
31
|
+
else
|
|
32
|
+
# delete invalid pid file , process is not running.
|
|
33
|
+
execute :rm, fetch(:puma_pid)
|
|
34
|
+
end
|
|
35
|
+
else
|
|
36
|
+
#pid file not found, so puma is probably not running or it using another pidfile
|
|
37
|
+
warn 'Puma not running'
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
%w[phased-restart restart].map do |command|
|
|
47
|
+
desc "#{command} puma"
|
|
48
|
+
task command do
|
|
49
|
+
on roles (fetch(:puma_role)) do |role|
|
|
50
|
+
within current_path do
|
|
51
|
+
git_plugin.puma_switch_user(role) do
|
|
52
|
+
with rack_env: fetch(:puma_env) do
|
|
53
|
+
if test "[ -f #{fetch(:puma_pid)} ]" and test :kill, "-0 $( cat #{fetch(:puma_pid)} )"
|
|
54
|
+
# NOTE pid exist but state file is nonsense, so ignore that case
|
|
55
|
+
execute :pumactl, "-S #{fetch(:puma_state)} -F #{fetch(:puma_conf)} #{command}"
|
|
56
|
+
else
|
|
57
|
+
# Puma is not running or state file is not present : Run it
|
|
58
|
+
invoke 'puma:start'
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
task :smart_restart do
|
|
68
|
+
if !fetch(:puma_preload_app) && fetch(:puma_workers, 0).to_i > 1
|
|
69
|
+
invoke 'puma:phased-restart'
|
|
70
|
+
else
|
|
71
|
+
invoke 'puma:restart'
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
@@ -11,4 +11,12 @@ namespace :puma do
|
|
|
11
11
|
end
|
|
12
12
|
end
|
|
13
13
|
end
|
|
14
|
+
|
|
15
|
+
desc 'Generate nginx configuration locally'
|
|
16
|
+
task :generate_nginx_config_locally do
|
|
17
|
+
fake_role = Struct.new(:hostname)
|
|
18
|
+
run_locally do
|
|
19
|
+
File.write('nginx.conf', git_plugin.compiled_template_puma("nginx_conf", fake_role.new("example.com")).string)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
14
22
|
end
|
|
@@ -8,75 +8,6 @@ namespace :puma do
|
|
|
8
8
|
end
|
|
9
9
|
end
|
|
10
10
|
|
|
11
|
-
desc 'Start puma'
|
|
12
|
-
task :start do
|
|
13
|
-
on roles(fetch(:puma_role)) do |role|
|
|
14
|
-
git_plugin.puma_switch_user(role) do
|
|
15
|
-
if test "[ -f #{fetch(:puma_conf)} ]"
|
|
16
|
-
info "using conf file #{fetch(:puma_conf)}"
|
|
17
|
-
else
|
|
18
|
-
invoke 'puma:config'
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
if test "[ -f #{fetch(:puma_pid)} ]" and test :kill, "-0 $( cat #{fetch(:puma_pid)} )"
|
|
22
|
-
info 'Already Puma is running'
|
|
23
|
-
else
|
|
24
|
-
within current_path do
|
|
25
|
-
with rack_env: fetch(:puma_env) do
|
|
26
|
-
execute :puma, "-C #{fetch(:puma_conf)} --daemon"
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
%w[halt stop status].map do |command|
|
|
35
|
-
desc "#{command} puma"
|
|
36
|
-
task command do
|
|
37
|
-
on roles (fetch(:puma_role)) do |role|
|
|
38
|
-
within current_path do
|
|
39
|
-
git_plugin.puma_switch_user(role) do
|
|
40
|
-
with rack_env: fetch(:puma_env) do
|
|
41
|
-
if test "[ -f #{fetch(:puma_pid)} ]"
|
|
42
|
-
if test :kill, "-0 $( cat #{fetch(:puma_pid)} )"
|
|
43
|
-
execute :pumactl, "-S #{fetch(:puma_state)} -F #{fetch(:puma_conf)} #{command}"
|
|
44
|
-
else
|
|
45
|
-
# delete invalid pid file , process is not running.
|
|
46
|
-
execute :rm, fetch(:puma_pid)
|
|
47
|
-
end
|
|
48
|
-
else
|
|
49
|
-
#pid file not found, so puma is probably not running or it using another pidfile
|
|
50
|
-
warn 'Puma not running'
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
%w[phased-restart restart].map do |command|
|
|
60
|
-
desc "#{command} puma"
|
|
61
|
-
task command do
|
|
62
|
-
on roles (fetch(:puma_role)) do |role|
|
|
63
|
-
within current_path do
|
|
64
|
-
git_plugin.puma_switch_user(role) do
|
|
65
|
-
with rack_env: fetch(:puma_env) do
|
|
66
|
-
if test "[ -f #{fetch(:puma_pid)} ]" and test :kill, "-0 $( cat #{fetch(:puma_pid)} )"
|
|
67
|
-
# NOTE pid exist but state file is nonsense, so ignore that case
|
|
68
|
-
execute :pumactl, "-S #{fetch(:puma_state)} -F #{fetch(:puma_conf)} #{command}"
|
|
69
|
-
else
|
|
70
|
-
# Puma is not running or state file is not present : Run it
|
|
71
|
-
invoke 'puma:start'
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
end
|
|
75
|
-
end
|
|
76
|
-
end
|
|
77
|
-
end
|
|
78
|
-
end
|
|
79
|
-
|
|
80
11
|
task :check do
|
|
81
12
|
on roles(fetch(:puma_role)) do |role|
|
|
82
13
|
#Create puma.rb for new deployments
|
|
@@ -87,14 +18,4 @@ namespace :puma do
|
|
|
87
18
|
end
|
|
88
19
|
end
|
|
89
20
|
end
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
task :smart_restart do
|
|
93
|
-
if !git_plugin.puma_preload_app? && git_plugin.puma_workers.to_i > 1
|
|
94
|
-
invoke 'puma:phased-restart'
|
|
95
|
-
else
|
|
96
|
-
invoke 'puma:restart'
|
|
97
|
-
end
|
|
98
|
-
end
|
|
99
|
-
|
|
100
21
|
end
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
git_plugin = self
|
|
4
|
+
|
|
5
|
+
namespace :puma do
|
|
6
|
+
namespace :systemd do
|
|
7
|
+
desc 'Config Puma systemd service'
|
|
8
|
+
task :config do
|
|
9
|
+
on roles(fetch(:puma_role)) do |role|
|
|
10
|
+
|
|
11
|
+
upload_compiled_template = lambda do |template_name, unit_filename|
|
|
12
|
+
git_plugin.template_puma template_name, "#{fetch(:tmp_dir)}/#{unit_filename}", role
|
|
13
|
+
systemd_path = fetch(:puma_systemd_conf_dir, git_plugin.fetch_systemd_unit_path)
|
|
14
|
+
if fetch(:puma_systemctl_user) == :system
|
|
15
|
+
sudo "mv #{fetch(:tmp_dir)}/#{unit_filename} #{systemd_path}"
|
|
16
|
+
else
|
|
17
|
+
execute :mkdir, "-p", systemd_path
|
|
18
|
+
execute :mv, "#{fetch(:tmp_dir)}/#{unit_filename}", "#{systemd_path}"
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
upload_compiled_template.call("puma.service", "#{fetch(:puma_service_unit_name)}.service")
|
|
23
|
+
|
|
24
|
+
if fetch(:puma_enable_socket_service)
|
|
25
|
+
upload_compiled_template.call("puma.socket", "#{fetch(:puma_service_unit_name)}.socket")
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# Reload systemd
|
|
29
|
+
git_plugin.execute_systemd("daemon-reload")
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
desc 'Generate service configuration locally'
|
|
34
|
+
task :generate_config_locally do
|
|
35
|
+
fake_role = Struct.new(:hostname)
|
|
36
|
+
run_locally do
|
|
37
|
+
File.write('puma.service', git_plugin.compiled_template_puma("puma.service", fake_role.new("example.com")).string)
|
|
38
|
+
if fetch(:puma_enable_socket_service)
|
|
39
|
+
File.write('puma.socket', git_plugin.compiled_template_puma("puma.socket", fake_role.new("example.com")).string)
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
desc 'Enable Puma systemd service'
|
|
45
|
+
task :enable do
|
|
46
|
+
on roles(fetch(:puma_role)) do
|
|
47
|
+
git_plugin.execute_systemd("enable", fetch(:puma_service_unit_name))
|
|
48
|
+
git_plugin.execute_systemd("enable", fetch(:puma_service_unit_name) + ".socket") if fetch(:puma_enable_socket_service)
|
|
49
|
+
|
|
50
|
+
if fetch(:puma_systemctl_user) != :system && fetch(:puma_enable_lingering)
|
|
51
|
+
execute :loginctl, "enable-linger", fetch(:puma_lingering_user)
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
desc 'Disable Puma systemd service'
|
|
57
|
+
task :disable do
|
|
58
|
+
on roles(fetch(:puma_role)) do
|
|
59
|
+
git_plugin.execute_systemd("disable", fetch(:puma_service_unit_name))
|
|
60
|
+
git_plugin.execute_systemd("disable", fetch(:puma_service_unit_name) + ".socket") if fetch(:puma_enable_socket_service)
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
desc 'Stop Puma socket via systemd'
|
|
65
|
+
task :stop_socket do
|
|
66
|
+
on roles(fetch(:puma_role)) do
|
|
67
|
+
git_plugin.execute_systemd("stop", fetch(:puma_service_unit_name) + ".socket")
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
desc 'Restart Puma socket via systemd'
|
|
72
|
+
task :restart_socket do
|
|
73
|
+
on roles(fetch(:puma_role)) do
|
|
74
|
+
git_plugin.execute_systemd("restart", fetch(:puma_service_unit_name) + ".socket")
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
desc 'Start Puma service via systemd'
|
|
80
|
+
task :start do
|
|
81
|
+
on roles(fetch(:puma_role)) do
|
|
82
|
+
git_plugin.execute_systemd("start", fetch(:puma_service_unit_name))
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
desc 'Stop Puma service via systemd'
|
|
87
|
+
task :stop do
|
|
88
|
+
on roles(fetch(:puma_role)) do
|
|
89
|
+
git_plugin.execute_systemd("stop", fetch(:puma_service_unit_name))
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
desc 'Restarts or reloads Puma service via systemd'
|
|
94
|
+
task :smart_restart do
|
|
95
|
+
if fetch(:puma_phased_restart)
|
|
96
|
+
invoke 'puma:reload'
|
|
97
|
+
else
|
|
98
|
+
invoke 'puma:restart'
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
desc 'Restart Puma service via systemd'
|
|
103
|
+
task :restart do
|
|
104
|
+
on roles(fetch(:puma_role)) do
|
|
105
|
+
git_plugin.execute_systemd("restart", fetch(:puma_service_unit_name))
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
desc 'Reload Puma service via systemd'
|
|
110
|
+
task :reload do
|
|
111
|
+
on roles(fetch(:puma_role)) do
|
|
112
|
+
service_ok = if fetch(:puma_systemctl_user) == :system
|
|
113
|
+
execute("#{fetch(:puma_systemctl_bin)} status #{fetch(:puma_service_unit_name)} > /dev/null", raise_on_non_zero_exit: false)
|
|
114
|
+
else
|
|
115
|
+
execute("#{fetch(:puma_systemctl_bin)} --user status #{fetch(:puma_service_unit_name)} > /dev/null", raise_on_non_zero_exit: false)
|
|
116
|
+
end
|
|
117
|
+
cmd = 'reload'
|
|
118
|
+
if !service_ok
|
|
119
|
+
cmd = 'restart'
|
|
120
|
+
end
|
|
121
|
+
if fetch(:puma_systemctl_user) == :system
|
|
122
|
+
sudo "#{fetch(:puma_systemctl_bin)} #{cmd} #{fetch(:puma_service_unit_name)}"
|
|
123
|
+
else
|
|
124
|
+
execute "#{fetch(:puma_systemctl_bin)}", "--user", cmd, fetch(:puma_service_unit_name)
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
desc 'Get Puma service status via systemd'
|
|
130
|
+
task :status do
|
|
131
|
+
on roles(fetch(:puma_role)) do
|
|
132
|
+
git_plugin.execute_systemd("status", fetch(:puma_service_unit_name))
|
|
133
|
+
git_plugin.execute_systemd("status", fetch(:puma_service_unit_name) + ".socket") if fetch(:puma_enable_socket_service)
|
|
134
|
+
end
|
|
135
|
+
end
|
|
136
|
+
end
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
upstream puma_<%= fetch(:nginx_config_name) %> { <%
|
|
2
|
-
@backends =
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
@backends = puma_binds.map do |bind|
|
|
3
|
+
if bind.unix?
|
|
4
|
+
"server unix:#{bind.address} #{fetch(:nginx_socket_flags)};"
|
|
5
|
+
else
|
|
6
|
+
"server #{bind.local.address} #{fetch(:nginx_http_flags)};"
|
|
7
|
+
end
|
|
8
8
|
end
|
|
9
|
-
end
|
|
10
9
|
%><% @backends.each do |server| %>
|
|
11
10
|
<%= server %><% end %>
|
|
12
11
|
}
|
|
@@ -20,8 +19,11 @@ server {
|
|
|
20
19
|
|
|
21
20
|
server {
|
|
22
21
|
<% if fetch(:nginx_use_ssl) -%>
|
|
23
|
-
|
|
24
|
-
ssl
|
|
22
|
+
<% if fetch(:nginx_use_http2) -%>
|
|
23
|
+
listen 443 ssl http2;
|
|
24
|
+
<% else -%>
|
|
25
|
+
listen 443 ssl;
|
|
26
|
+
<% end -%>
|
|
25
27
|
<% if fetch(:nginx_ssl_certificate) -%>
|
|
26
28
|
ssl_certificate <%= fetch(:nginx_ssl_certificate) %>;
|
|
27
29
|
<% else -%>
|
|
@@ -48,6 +50,7 @@ server {
|
|
|
48
50
|
location @puma_<%= fetch(:nginx_config_name) %> {
|
|
49
51
|
proxy_http_version 1.1;
|
|
50
52
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
53
|
+
proxy_set_header X-Forwarded-Proto $scheme;
|
|
51
54
|
proxy_set_header Host $host;
|
|
52
55
|
proxy_redirect off;
|
|
53
56
|
proxy_set_header Upgrade $http_upgrade;
|
|
File without changes
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
[Unit]
|
|
2
|
+
Description=Puma HTTP Server for <%= "#{fetch(:application)} (#{fetch(:stage)})" %>
|
|
3
|
+
After=network.target
|
|
4
|
+
<%= "Requires=#{fetch(:puma_service_unit_name)}.socket" if fetch(:puma_enable_socket_service) %>
|
|
5
|
+
|
|
6
|
+
[Service]
|
|
7
|
+
Type=simple
|
|
8
|
+
<%="User=#{puma_user(@role)}" if fetch(:puma_systemctl_user) == :system %>
|
|
9
|
+
WorkingDirectory=<%= current_path %>
|
|
10
|
+
# Support older bundler versions where file descriptors weren't kept
|
|
11
|
+
# See https://github.com/rubygems/rubygems/issues/3254
|
|
12
|
+
ExecStart=<%= expanded_bundle_command %> exec --keep-file-descriptors puma -C <%= fetch(:puma_conf) %>
|
|
13
|
+
ExecReload=/bin/kill -USR1 $MAINPID
|
|
14
|
+
StandardOutput=append:<%= fetch(:puma_access_log) %>
|
|
15
|
+
StandardError=append:<%= fetch(:puma_error_log) %>
|
|
16
|
+
<%="EnvironmentFile=#{fetch(:puma_service_unit_env_file)}" if fetch(:puma_service_unit_env_file) %>
|
|
17
|
+
|
|
18
|
+
<% fetch(:puma_service_unit_env_vars, []).each do |environment_variable| %>
|
|
19
|
+
<%="Environment=#{environment_variable}" %>
|
|
20
|
+
<% end %>
|
|
21
|
+
|
|
22
|
+
Restart=always
|
|
23
|
+
RestartSec=1
|
|
24
|
+
|
|
25
|
+
SyslogIdentifier=puma
|
|
26
|
+
|
|
27
|
+
[Install]
|
|
28
|
+
WantedBy=<%=(fetch(:puma_systemctl_user) == :system) ? "multi-user.target" : "default.target"%>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
[Unit]
|
|
2
|
+
Description=Puma HTTP Server Accept Sockets for <%= "#{fetch(:application)} (#{fetch(:stage)})" %>
|
|
3
|
+
|
|
4
|
+
[Socket]
|
|
5
|
+
<% puma_binds.each do |bind| -%>
|
|
6
|
+
<%= "ListenStream=#{bind.local.address}" %>
|
|
7
|
+
<% end -%>
|
|
8
|
+
|
|
9
|
+
# Don't let systemd accept the request, wait for Puma to do that.
|
|
10
|
+
# Systemd will start the puma service upon first request if it wasn't started.
|
|
11
|
+
#
|
|
12
|
+
# You might also want to set your Nginx upstream to have a fail_timeout large enough to accomodate your app's
|
|
13
|
+
# startup time.
|
|
14
|
+
Accept=no
|
|
15
|
+
<%= "NoDelay=true" if fetch(:puma_systemctl_user) == :system %>
|
|
16
|
+
ReusePort=true
|
|
17
|
+
Backlog=1024
|
|
18
|
+
|
|
19
|
+
SyslogIdentifier=puma_socket
|
|
20
|
+
|
|
21
|
+
[Install]
|
|
22
|
+
WantedBy=sockets.target
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: capistrano3-puma
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 5.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Abdelkader Boudih
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2021-09-11 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: capistrano
|
|
@@ -42,16 +42,22 @@ dependencies:
|
|
|
42
42
|
name: puma
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
|
-
- - "
|
|
45
|
+
- - ">="
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
47
|
version: '4.0'
|
|
48
|
+
- - "<"
|
|
49
|
+
- !ruby/object:Gem::Version
|
|
50
|
+
version: '6.0'
|
|
48
51
|
type: :runtime
|
|
49
52
|
prerelease: false
|
|
50
53
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
54
|
requirements:
|
|
52
|
-
- - "
|
|
55
|
+
- - ">="
|
|
53
56
|
- !ruby/object:Gem::Version
|
|
54
57
|
version: '4.0'
|
|
58
|
+
- - "<"
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: '6.0'
|
|
55
61
|
description: Puma integration for Capistrano 3
|
|
56
62
|
email:
|
|
57
63
|
- Terminale@gmail.com
|
|
@@ -59,6 +65,7 @@ executables: []
|
|
|
59
65
|
extensions: []
|
|
60
66
|
extra_rdoc_files: []
|
|
61
67
|
files:
|
|
68
|
+
- ".github/workflows/stale.yml"
|
|
62
69
|
- ".gitignore"
|
|
63
70
|
- CHANGELOG.md
|
|
64
71
|
- CONTRIBUTORS.md
|
|
@@ -68,20 +75,26 @@ files:
|
|
|
68
75
|
- Rakefile
|
|
69
76
|
- capistrano3-puma.gemspec
|
|
70
77
|
- lib/capistrano/puma.rb
|
|
78
|
+
- lib/capistrano/puma/daemon.rb
|
|
71
79
|
- lib/capistrano/puma/jungle.rb
|
|
72
80
|
- lib/capistrano/puma/monit.rb
|
|
73
81
|
- lib/capistrano/puma/nginx.rb
|
|
82
|
+
- lib/capistrano/puma/systemd.rb
|
|
74
83
|
- lib/capistrano/puma/version.rb
|
|
75
84
|
- lib/capistrano/puma/workers.rb
|
|
85
|
+
- lib/capistrano/tasks/daemon.rake
|
|
76
86
|
- lib/capistrano/tasks/jungle.rake
|
|
77
87
|
- lib/capistrano/tasks/monit.rake
|
|
78
88
|
- lib/capistrano/tasks/nginx.rake
|
|
79
89
|
- lib/capistrano/tasks/puma.rake
|
|
90
|
+
- lib/capistrano/tasks/systemd.rake
|
|
80
91
|
- lib/capistrano/tasks/workers.rake
|
|
81
92
|
- lib/capistrano/templates/nginx_conf.erb
|
|
82
93
|
- lib/capistrano/templates/puma-deb.erb
|
|
83
94
|
- lib/capistrano/templates/puma-rpm.erb
|
|
84
95
|
- lib/capistrano/templates/puma.rb.erb
|
|
96
|
+
- lib/capistrano/templates/puma.service.erb
|
|
97
|
+
- lib/capistrano/templates/puma.socket.erb
|
|
85
98
|
- lib/capistrano/templates/puma_monit.conf.erb
|
|
86
99
|
- lib/capistrano/templates/run-puma.erb
|
|
87
100
|
- lib/capistrano3-puma.rb
|
|
@@ -107,9 +120,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
107
120
|
- !ruby/object:Gem::Version
|
|
108
121
|
version: '0'
|
|
109
122
|
requirements: []
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
signing_key:
|
|
123
|
+
rubygems_version: 3.0.3
|
|
124
|
+
signing_key:
|
|
113
125
|
specification_version: 4
|
|
114
126
|
summary: Puma integration for Capistrano
|
|
115
127
|
test_files: []
|