capistrano-nuxt2 0.2.17
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/MIT-LICENSE +20 -0
- data/README.md +222 -0
- data/Rakefile +3 -0
- data/lib/capistrano/nuxt2/base_helpers.rb +120 -0
- data/lib/capistrano/nuxt2/certbot.rb +1 -0
- data/lib/capistrano/nuxt2/nginx.rb +1 -0
- data/lib/capistrano/nuxt2/nginx_helpers.rb +56 -0
- data/lib/capistrano/nuxt2/nuxt.rb +1 -0
- data/lib/capistrano/nuxt2/nuxt3.rb +1 -0
- data/lib/capistrano/nuxt2/proxy_nginx.rb +1 -0
- data/lib/capistrano/nuxt2/version.rb +5 -0
- data/lib/capistrano/nuxt2/vue.rb +1 -0
- data/lib/capistrano/nuxt2.rb +9 -0
- data/lib/capistrano/tasks/certbot.rake +256 -0
- data/lib/capistrano/tasks/nginx.rake +209 -0
- data/lib/capistrano/tasks/nuxt.rake +159 -0
- data/lib/capistrano/tasks/nuxt3.rake +332 -0
- data/lib/capistrano/tasks/proxy_nginx.rake +415 -0
- data/lib/capistrano/tasks/vue.rake +125 -0
- data/lib/generators/capistrano/nuxt2/templates/nginx/https_ssl_options.erb +29 -0
- data/lib/generators/capistrano/nuxt2/templates/nginx.conf.erb +176 -0
- data/lib/generators/capistrano/nuxt2/templates/nginx_app_conf.erb +46 -0
- data/lib/generators/capistrano/nuxt2/templates/nginx_proxy_conf.erb +137 -0
- data/lib/generators/capistrano/nuxt2/templates/nuxt3_ssr_service.erb +38 -0
- data/lib/tasks/capistrano/nuxt2_tasks.rake +4 -0
- metadata +124 -0
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
###
|
|
2
|
+
### HTTP-Config generated with capistrano-nuxt2 at: <%= Time.now.strftime("%Y-%m-%d .. %H:%M .. %Z") %>
|
|
3
|
+
###
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
<% if fetch(:nginx_use_ssl) && !fetch(:nginx_also_allow_http, false) %>
|
|
7
|
+
# Redirect HTTP to HTTPS
|
|
8
|
+
server {
|
|
9
|
+
listen 80;
|
|
10
|
+
listen [::]:80;
|
|
11
|
+
|
|
12
|
+
server_name <%= nginx_all_domains_with_www.join(joiner) %>;
|
|
13
|
+
<% if fetch(:nginx_major_domain) %>
|
|
14
|
+
return 301 https://<%= nginx_major_domain %>$request_uri;
|
|
15
|
+
<% else %>
|
|
16
|
+
return 301 https://$host$request_uri;
|
|
17
|
+
<% end %>
|
|
18
|
+
}
|
|
19
|
+
<% end %>
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
<% if fetch(:nginx_major_domain) %>
|
|
23
|
+
<% if fetch(:nginx_use_ssl) %>
|
|
24
|
+
|
|
25
|
+
<% if fetch(:nginx_also_allow_http, false) %>
|
|
26
|
+
# Redirect HTTP to HTTPS
|
|
27
|
+
server {
|
|
28
|
+
listen 80;
|
|
29
|
+
listen [::]:80;
|
|
30
|
+
|
|
31
|
+
server_name <%= nginx_all_domains_with_www.join(joiner) %>;
|
|
32
|
+
return 301 https://<%= nginx_major_domain %>$request_uri;
|
|
33
|
+
}
|
|
34
|
+
<% end %>
|
|
35
|
+
|
|
36
|
+
# Redirect old domains to major (HTTPS)
|
|
37
|
+
server {
|
|
38
|
+
listen 443 ssl http2;
|
|
39
|
+
listen [::]:443 ssl http2;
|
|
40
|
+
|
|
41
|
+
ssl_certificate <%= fetch(:nginx_other_ssl_cert) %>;
|
|
42
|
+
ssl_certificate_key <%= fetch(:nginx_other_ssl_key) %>;
|
|
43
|
+
|
|
44
|
+
<%= render2go("nginx/https_ssl_options") %>
|
|
45
|
+
|
|
46
|
+
server_name <%= nginx_domains.join(joiner) %>;
|
|
47
|
+
return 301 https://<%= nginx_major_domain %>$request_uri;
|
|
48
|
+
}
|
|
49
|
+
<% else %>
|
|
50
|
+
# Redirect old domains to major (HTTP)
|
|
51
|
+
server {
|
|
52
|
+
listen 80;
|
|
53
|
+
listen [::]:80;
|
|
54
|
+
|
|
55
|
+
server_name <%= nginx_domains.join(joiner) %>;
|
|
56
|
+
return 301 http://<%= nginx_major_domain %>$request_uri;
|
|
57
|
+
}
|
|
58
|
+
<% end %>
|
|
59
|
+
<% end %>
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
<% if fetch(:nginx_also_allow_http, false) && fetch(:nginx_use_ssl, false) %>
|
|
65
|
+
# Main HTTP Server Block
|
|
66
|
+
server {
|
|
67
|
+
listen 80;
|
|
68
|
+
listen [::]:80;
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
<% if fetch(:nginx_remove_www) %>
|
|
72
|
+
## Remove "www" from URLs
|
|
73
|
+
if ($host ~* ^www\.(?<domain>.*)) {
|
|
74
|
+
return 301 <%= fetch(:nginx_use_ssl) ? "https" : "http" %>://$domain$request_uri;
|
|
75
|
+
}
|
|
76
|
+
<% end %>
|
|
77
|
+
|
|
78
|
+
<% if fetch(:nginx_major_domain) %>
|
|
79
|
+
server_name <%= fetch(:nginx_major_domain).gsub(/^\*?\./, "") %>;
|
|
80
|
+
<% else %>
|
|
81
|
+
server_name <%= nginx_domains_with_www.join(joiner) %>;
|
|
82
|
+
<% end %>
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
gzip on;
|
|
86
|
+
gzip_types text/plain application/xml text/css application/javascript;
|
|
87
|
+
gzip_min_length 1000;
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
<% if fetch(:allow_well_known) %>
|
|
91
|
+
location ~ /.well-known {
|
|
92
|
+
allow all;
|
|
93
|
+
root <%= shared_path %>;
|
|
94
|
+
}
|
|
95
|
+
<% end %>
|
|
96
|
+
|
|
97
|
+
# Logging
|
|
98
|
+
access_log <%= shared_path %>/<%= fetch(:nginx_log_folder) %>/nginx-access.log;
|
|
99
|
+
error_log <%= shared_path %>/<%= fetch(:nginx_log_folder) %>/nginx-error.log;
|
|
100
|
+
|
|
101
|
+
# Static Files
|
|
102
|
+
root <%= shared_path %>/<%= fetch(:nginx_root_folder) %>;
|
|
103
|
+
|
|
104
|
+
# SPA-routing
|
|
105
|
+
location / {
|
|
106
|
+
try_files $uri $uri/ /<%= fetch(:nginx_app_fallback_site, "404.html") %>;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
<% end %>
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
<% if fetch(:nginx_use_ssl) %>
|
|
115
|
+
# Main SSL Server Block
|
|
116
|
+
server {
|
|
117
|
+
listen 443 ssl http2;
|
|
118
|
+
listen [::]:443 ssl http2;
|
|
119
|
+
|
|
120
|
+
ssl_certificate <%= fetch(:nginx_ssl_cert) %>;
|
|
121
|
+
ssl_certificate_key <%= fetch(:nginx_ssl_key) %>;
|
|
122
|
+
|
|
123
|
+
<%= render2go("nginx/https_ssl_options") %>
|
|
124
|
+
<% else %>
|
|
125
|
+
# Main HTTP Server Block
|
|
126
|
+
server {
|
|
127
|
+
listen 80;
|
|
128
|
+
listen [::]:80;
|
|
129
|
+
<% end %>
|
|
130
|
+
|
|
131
|
+
<% if fetch(:nginx_remove_www) %>
|
|
132
|
+
## Remove "www" from URLs
|
|
133
|
+
if ($host ~* ^www\.(?<domain>.*)) {
|
|
134
|
+
return 301 <%= fetch(:nginx_use_ssl) ? "https" : "http" %>://$domain$request_uri;
|
|
135
|
+
}
|
|
136
|
+
<% end %>
|
|
137
|
+
|
|
138
|
+
<% if fetch(:nginx_major_domain) %>
|
|
139
|
+
server_name <%= fetch(:nginx_major_domain).gsub(/^\*?\./, "") %>;
|
|
140
|
+
<% else %>
|
|
141
|
+
server_name <%= nginx_domains_with_www.join(joiner) %>;
|
|
142
|
+
<% end %>
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
gzip on;
|
|
146
|
+
gzip_types text/plain application/xml text/css application/javascript;
|
|
147
|
+
gzip_min_length 1000;
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
<% if fetch(:allow_well_known) %>
|
|
152
|
+
location ~ /.well-known {
|
|
153
|
+
allow all;
|
|
154
|
+
root <%= shared_path %>;
|
|
155
|
+
}
|
|
156
|
+
<% end %>
|
|
157
|
+
|
|
158
|
+
# Logging
|
|
159
|
+
access_log <%= shared_path %>/<%= fetch(:nginx_log_folder) %>/nginx-access.log;
|
|
160
|
+
error_log <%= shared_path %>/<%= fetch(:nginx_log_folder) %>/nginx-error.log;
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
# Static Files
|
|
164
|
+
|
|
165
|
+
# root folder: dist | www
|
|
166
|
+
root <%= shared_path %>/<%= fetch(:nginx_root_folder) %>;
|
|
167
|
+
|
|
168
|
+
# index
|
|
169
|
+
# index index.html;
|
|
170
|
+
|
|
171
|
+
# SPA-routing
|
|
172
|
+
location / {
|
|
173
|
+
try_files $uri $uri/ /<%= fetch(:nginx_app_fallback_site, "404.html") %>;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
###
|
|
2
|
+
### APP HTTP-Config generated with capistrano at: <%= Time.now.strftime("%Y-%m-%d .. %H:%M .. %Z") %>
|
|
3
|
+
### Application: <%= fetch(:application) %>, Stage: <%= fetch(:stage) %>
|
|
4
|
+
### Site Name: <%= fetch(:nginx_app_site_name) %>
|
|
5
|
+
### Listening on Port: <%= fetch(:nginx_upstream_port) %>
|
|
6
|
+
###
|
|
7
|
+
|
|
8
|
+
server {
|
|
9
|
+
listen <%= fetch(:nginx_upstream_port) %>;
|
|
10
|
+
listen [::]:<%= fetch(:nginx_upstream_port) %>;
|
|
11
|
+
|
|
12
|
+
# Lausche auf jede Domain oder interne IP, da der Proxy davor sitzt
|
|
13
|
+
server_name _; # Oder localhost, oder die interne IP des App-Servers
|
|
14
|
+
|
|
15
|
+
gzip on;
|
|
16
|
+
gzip_proxied any; # Wichtig, wenn hinter einem Proxy
|
|
17
|
+
gzip_types text/plain application/xml text/css application/javascript application/json;
|
|
18
|
+
gzip_min_length 1000;
|
|
19
|
+
gzip_comp_level 6; # Guter Kompromiss
|
|
20
|
+
|
|
21
|
+
# Logging für die App
|
|
22
|
+
# Pfade sind relativ zu shared_path, wie in deinen linked_dirs definiert
|
|
23
|
+
access_log <%= shared_path %>/<%= fetch(:nginx_log_folder) %>/nginx-access.log;
|
|
24
|
+
error_log <%= shared_path %>/<%= fetch(:nginx_log_folder) %>/nginx-error.log;
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
# .well-known Anfragen könnten auch hier landen, wenn der Proxy sie durchlässt
|
|
28
|
+
# Falls bestimmte .well-known Pfade von der App selbst bedient werden sollen
|
|
29
|
+
<% if fetch(:allow_well_known_app) %>
|
|
30
|
+
location ~ /.well-known {
|
|
31
|
+
allow all;
|
|
32
|
+
root <%= shared_path %>;
|
|
33
|
+
}
|
|
34
|
+
<% end %>
|
|
35
|
+
|
|
36
|
+
# Static Files
|
|
37
|
+
root <%= fetch(:nginx_root_folder) %>;
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
# SPA-routing
|
|
42
|
+
location / {
|
|
43
|
+
try_files $uri $uri/ /<%= fetch(:nginx_app_fallback_site, "404.html") %>;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
###
|
|
2
|
+
### PROXY HTTP-Config generated with capistrano at: <%= Time.now.strftime("%Y-%m-%d .. %H:%M .. %Z") %>
|
|
3
|
+
### Application: <%= fetch(:application) %>, Stage: <%= fetch(:stage) %>
|
|
4
|
+
### Site Name: <%= fetch(:nginx_proxy_site_name) %>
|
|
5
|
+
### Upstream App: <%= fetch(:nginx_upstream_host) %>:<%= fetch(:nginx_upstream_port) %>
|
|
6
|
+
###
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
# Upstream for the Internal App Nginx Server
|
|
10
|
+
# This is where your App Nginx (e.g., in a Docker container or on a separate VM) listens.
|
|
11
|
+
upstream app_<%= fetch(:application) %>_<%= fetch(:stage) %>_app_server {
|
|
12
|
+
server <%= fetch(:nginx_upstream_host) %>:<%= fetch(:nginx_upstream_port) %>;
|
|
13
|
+
# If you have multiple app servers, you'd list them here:
|
|
14
|
+
# server 10.0.0.6:4550;
|
|
15
|
+
# server 10.0.0.7:4550;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
<% if fetch(:nginx_use_ssl) %>
|
|
20
|
+
# Redirect HTTP to HTTPS
|
|
21
|
+
server {
|
|
22
|
+
listen 80;
|
|
23
|
+
listen [::]:80;
|
|
24
|
+
|
|
25
|
+
server_name <%= nginx_all_domains_with_www.join(joiner) %>;
|
|
26
|
+
|
|
27
|
+
<% if fetch(:allow_well_known_proxy) %>
|
|
28
|
+
# For Certbot ACME Challenge
|
|
29
|
+
location ~ /.well-known {
|
|
30
|
+
allow all;
|
|
31
|
+
root <%= fetch(:nginx_proxy_well_known_root) %>; # Pfad für Certbot auf dem Proxy
|
|
32
|
+
}
|
|
33
|
+
<% end %>
|
|
34
|
+
|
|
35
|
+
location / {
|
|
36
|
+
<% if fetch(:nginx_major_domain) %>
|
|
37
|
+
return 301 https://<%= nginx_major_domain %>$request_uri;
|
|
38
|
+
<% else %>
|
|
39
|
+
return 301 https://$host$request_uri;
|
|
40
|
+
<% end %>
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
<% end %>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<% if fetch(:nginx_major_domain) && !nginx_domains.empty? %>
|
|
47
|
+
<% if fetch(:nginx_use_ssl) %>
|
|
48
|
+
# Redirect old domains to major (HTTPS)
|
|
49
|
+
server {
|
|
50
|
+
listen 443 ssl http2;
|
|
51
|
+
listen [::]:443 ssl http2;
|
|
52
|
+
|
|
53
|
+
ssl_certificate <%= fetch(:nginx_other_ssl_cert) %>;
|
|
54
|
+
ssl_certificate_key <%= fetch(:nginx_other_ssl_key) %>;
|
|
55
|
+
|
|
56
|
+
<%= render2go("nginx/https_ssl_options") %> # Dein SSL Options Partial
|
|
57
|
+
|
|
58
|
+
server_name <%= nginx_domains.join(joiner) %>;
|
|
59
|
+
return 301 https://<%= nginx_major_domain %>$request_uri;
|
|
60
|
+
}
|
|
61
|
+
<% else %>
|
|
62
|
+
# Redirect old domains to major (HTTP)
|
|
63
|
+
server {
|
|
64
|
+
listen 80;
|
|
65
|
+
listen [::]:80;
|
|
66
|
+
|
|
67
|
+
server_name <%= nginx_domains.join(joiner) %>;
|
|
68
|
+
return 301 http://<%= nginx_major_domain %>$request_uri;
|
|
69
|
+
}
|
|
70
|
+
<% end %>
|
|
71
|
+
<% end %>
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
<% if fetch(:nginx_use_ssl) %>
|
|
75
|
+
# Main SSL Server Block for Proxy
|
|
76
|
+
server {
|
|
77
|
+
listen 443 ssl http2;
|
|
78
|
+
listen [::]:443 ssl http2;
|
|
79
|
+
|
|
80
|
+
ssl_certificate <%= fetch(:nginx_ssl_cert) %>;
|
|
81
|
+
ssl_certificate_key <%= fetch(:nginx_ssl_key) %>;
|
|
82
|
+
|
|
83
|
+
<%= render2go("nginx/https_ssl_options") %> # Dein SSL Options Partial
|
|
84
|
+
<% else %>
|
|
85
|
+
# Main HTTP Server Block for Proxy
|
|
86
|
+
server {
|
|
87
|
+
listen 80;
|
|
88
|
+
listen [::]:80;
|
|
89
|
+
<% end %>
|
|
90
|
+
|
|
91
|
+
<% if fetch(:nginx_remove_www) %>
|
|
92
|
+
## Remove "www" from URLs
|
|
93
|
+
if ($host ~* ^www\.(?<domain>.*)) {
|
|
94
|
+
return 301 <%= fetch(:nginx_use_ssl) ? "https" : "http" %>://$domain$request_uri;
|
|
95
|
+
}
|
|
96
|
+
<% end %>
|
|
97
|
+
|
|
98
|
+
<% if fetch(:nginx_major_domain) %>
|
|
99
|
+
server_name <%= fetch(:nginx_major_domain).gsub(/^\*?\./, "") %>;
|
|
100
|
+
<% else %>
|
|
101
|
+
server_name <%= nginx_domains_with_www.join(joiner) %>;
|
|
102
|
+
<% end %>
|
|
103
|
+
|
|
104
|
+
# Logging für den Proxy
|
|
105
|
+
access_log <%= fetch(:nginx_proxy_log_folder) %>/<%= fetch(:nginx_proxy_site_name) %>-access.log;
|
|
106
|
+
error_log <%= fetch(:nginx_proxy_log_folder) %>/<%= fetch(:nginx_proxy_site_name) %>-error.log;
|
|
107
|
+
|
|
108
|
+
<%# For Certbot ACME Challenge (falls direkt auf Port 443/80 ohne vorherigen Redirect) %>
|
|
109
|
+
<% if fetch(:allow_well_known_proxy) %>
|
|
110
|
+
location ~ /.well-known {
|
|
111
|
+
allow all;
|
|
112
|
+
root <%= fetch(:nginx_proxy_well_known_root) %>; # Pfad für Certbot auf dem Proxy
|
|
113
|
+
}
|
|
114
|
+
<% end %>
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
# Proxying to the App Server
|
|
119
|
+
location / {
|
|
120
|
+
proxy_set_header Host $http_host;
|
|
121
|
+
proxy_set_header X-Real-IP $remote_addr;
|
|
122
|
+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
123
|
+
proxy_set_header X-Forwarded-Proto $scheme;
|
|
124
|
+
proxy_connect_timeout 75;
|
|
125
|
+
proxy_send_timeout 3650;
|
|
126
|
+
proxy_read_timeout 3650;
|
|
127
|
+
proxy_buffers 64 512k;
|
|
128
|
+
client_body_buffer_size 512k;
|
|
129
|
+
client_max_body_size 0;
|
|
130
|
+
|
|
131
|
+
# proxy_redirect off;
|
|
132
|
+
# FIX: Ersetze in Location-Header :<%= fetch(:nginx_upstream_port) %> egal auf welchem Host
|
|
133
|
+
proxy_redirect ~^(.+):<%= fetch(:nginx_upstream_port) %>/(.*) $1/$2;
|
|
134
|
+
|
|
135
|
+
proxy_pass http://app_<%= fetch(:application) %>_<%= fetch(:stage) %>_app_server;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
[Unit]
|
|
2
|
+
Description=Nuxt 3 Nitro SSR Server for <%= fetch(:application) %>_<%= fetch(:stage) %>
|
|
3
|
+
After=network.target
|
|
4
|
+
|
|
5
|
+
[Service]
|
|
6
|
+
Type=simple
|
|
7
|
+
User=<%= fetch(:nuxt3_ssr_user) %>
|
|
8
|
+
Group=<%= fetch(:nuxt3_ssr_user) %>
|
|
9
|
+
|
|
10
|
+
WorkingDirectory=<%= shared_path %>/<%= fetch(:nuxt3_output_folder) %>
|
|
11
|
+
|
|
12
|
+
# Nitro listens on host:port; the nginx proxy passes through to it.
|
|
13
|
+
Environment=NODE_ENV=production
|
|
14
|
+
Environment=NITRO_HOST=<%= fetch(:nuxt3_ssr_host) %>
|
|
15
|
+
Environment=NITRO_PORT=<%= fetch(:nuxt3_ssr_port) %>
|
|
16
|
+
Environment=HOST=<%= fetch(:nuxt3_ssr_host) %>
|
|
17
|
+
Environment=PORT=<%= fetch(:nuxt3_ssr_port) %>
|
|
18
|
+
<%= fetch(:nuxt3_ssr_env, {}).map { |k, v| "Environment=#{k}=#{v}" }.join("\n") %>
|
|
19
|
+
|
|
20
|
+
# nvm-activated node, same bash -lc pattern as the build tasks.
|
|
21
|
+
ExecStart=/bin/bash -lc '<%= nuxt3_nvm_prefix %> && exec node <%= shared_path %>/<%= fetch(:nuxt3_output_folder) %>/server/index.mjs'
|
|
22
|
+
|
|
23
|
+
# PID-File explicit for Monit/supervision (mirrors puma_service)
|
|
24
|
+
PIDFile=<%= fetch(:nuxt3_pid_path) %>/<%= fetch(:nuxt3_ssr_service_file) %>.pid
|
|
25
|
+
ExecStartPost=/bin/bash -c 'echo $MAINPID > <%= fetch(:nuxt3_pid_path) %>/<%= fetch(:nuxt3_ssr_service_file) %>.pid'
|
|
26
|
+
ExecStopPost=/bin/bash -c 'rm -f <%= fetch(:nuxt3_pid_path) %>/<%= fetch(:nuxt3_ssr_service_file) %>.pid'
|
|
27
|
+
|
|
28
|
+
Restart=always
|
|
29
|
+
RestartSec=5
|
|
30
|
+
StartLimitBurst=3
|
|
31
|
+
StartLimitInterval=30
|
|
32
|
+
|
|
33
|
+
StandardOutput=syslog
|
|
34
|
+
StandardError=syslog
|
|
35
|
+
SyslogIdentifier=nuxt3_ssr_<%= fetch(:application) %>_<%= fetch(:stage) %>
|
|
36
|
+
|
|
37
|
+
[Install]
|
|
38
|
+
WantedBy=multi-user.target
|
metadata
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: capistrano-nuxt2
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.2.17
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Torsten Wetzel
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2026-05-26 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: capistrano
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - ">="
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '3.15'
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - ">="
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '3.15'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: ed25519
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - ">="
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '1.2'
|
|
34
|
+
- - "<"
|
|
35
|
+
- !ruby/object:Gem::Version
|
|
36
|
+
version: '2.0'
|
|
37
|
+
type: :runtime
|
|
38
|
+
prerelease: false
|
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
40
|
+
requirements:
|
|
41
|
+
- - ">="
|
|
42
|
+
- !ruby/object:Gem::Version
|
|
43
|
+
version: '1.2'
|
|
44
|
+
- - "<"
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '2.0'
|
|
47
|
+
- !ruby/object:Gem::Dependency
|
|
48
|
+
name: bcrypt_pbkdf
|
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - ">="
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '1.0'
|
|
54
|
+
- - "<"
|
|
55
|
+
- !ruby/object:Gem::Version
|
|
56
|
+
version: '2.0'
|
|
57
|
+
type: :runtime
|
|
58
|
+
prerelease: false
|
|
59
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
60
|
+
requirements:
|
|
61
|
+
- - ">="
|
|
62
|
+
- !ruby/object:Gem::Version
|
|
63
|
+
version: '1.0'
|
|
64
|
+
- - "<"
|
|
65
|
+
- !ruby/object:Gem::Version
|
|
66
|
+
version: '2.0'
|
|
67
|
+
description: Description of Capistrano::Nuxt2.
|
|
68
|
+
email:
|
|
69
|
+
- trendgegner@gmail.com
|
|
70
|
+
executables: []
|
|
71
|
+
extensions: []
|
|
72
|
+
extra_rdoc_files: []
|
|
73
|
+
files:
|
|
74
|
+
- MIT-LICENSE
|
|
75
|
+
- README.md
|
|
76
|
+
- Rakefile
|
|
77
|
+
- lib/capistrano/nuxt2.rb
|
|
78
|
+
- lib/capistrano/nuxt2/base_helpers.rb
|
|
79
|
+
- lib/capistrano/nuxt2/certbot.rb
|
|
80
|
+
- lib/capistrano/nuxt2/nginx.rb
|
|
81
|
+
- lib/capistrano/nuxt2/nginx_helpers.rb
|
|
82
|
+
- lib/capistrano/nuxt2/nuxt.rb
|
|
83
|
+
- lib/capistrano/nuxt2/nuxt3.rb
|
|
84
|
+
- lib/capistrano/nuxt2/proxy_nginx.rb
|
|
85
|
+
- lib/capistrano/nuxt2/version.rb
|
|
86
|
+
- lib/capistrano/nuxt2/vue.rb
|
|
87
|
+
- lib/capistrano/tasks/certbot.rake
|
|
88
|
+
- lib/capistrano/tasks/nginx.rake
|
|
89
|
+
- lib/capistrano/tasks/nuxt.rake
|
|
90
|
+
- lib/capistrano/tasks/nuxt3.rake
|
|
91
|
+
- lib/capistrano/tasks/proxy_nginx.rake
|
|
92
|
+
- lib/capistrano/tasks/vue.rake
|
|
93
|
+
- lib/generators/capistrano/nuxt2/templates/nginx.conf.erb
|
|
94
|
+
- lib/generators/capistrano/nuxt2/templates/nginx/https_ssl_options.erb
|
|
95
|
+
- lib/generators/capistrano/nuxt2/templates/nginx_app_conf.erb
|
|
96
|
+
- lib/generators/capistrano/nuxt2/templates/nginx_proxy_conf.erb
|
|
97
|
+
- lib/generators/capistrano/nuxt2/templates/nuxt3_ssr_service.erb
|
|
98
|
+
- lib/tasks/capistrano/nuxt2_tasks.rake
|
|
99
|
+
homepage: https://github.com/2strange/capistrano-nuxt2
|
|
100
|
+
licenses:
|
|
101
|
+
- MIT
|
|
102
|
+
metadata:
|
|
103
|
+
homepage_uri: https://github.com/2strange/capistrano-nuxt2
|
|
104
|
+
source_code_uri: https://github.com/2strange/capistrano-nuxt2
|
|
105
|
+
post_install_message:
|
|
106
|
+
rdoc_options: []
|
|
107
|
+
require_paths:
|
|
108
|
+
- lib
|
|
109
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
110
|
+
requirements:
|
|
111
|
+
- - ">="
|
|
112
|
+
- !ruby/object:Gem::Version
|
|
113
|
+
version: '0'
|
|
114
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
115
|
+
requirements:
|
|
116
|
+
- - ">="
|
|
117
|
+
- !ruby/object:Gem::Version
|
|
118
|
+
version: '0'
|
|
119
|
+
requirements: []
|
|
120
|
+
rubygems_version: 3.5.16
|
|
121
|
+
signing_key:
|
|
122
|
+
specification_version: 4
|
|
123
|
+
summary: Capistrano::Nuxt2 capistrano recipes to deploy nuxt 2 apps.
|
|
124
|
+
test_files: []
|