@scandipwa/magento-scripts 1.14.1-alpha.1 → 1.14.1-alpha.12

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.
Files changed (179) hide show
  1. package/index.js +13 -0
  2. package/lib/commands/cli.js +28 -1
  3. package/lib/commands/execute.js +2 -1
  4. package/lib/commands/logs.js +1 -0
  5. package/lib/commands/start.js +18 -5
  6. package/lib/config/cma-config.js +16 -0
  7. package/lib/config/dependencies-for-platforms.js +15 -3
  8. package/lib/config/docker.js +89 -15
  9. package/lib/config/get-port-config.js +9 -3
  10. package/lib/config/index.js +2 -1
  11. package/lib/config/php/extensions/libsodium.js +2 -1
  12. package/lib/config/port-config.js +3 -1
  13. package/lib/config/scandipwa-versions.js +2 -1
  14. package/lib/config/ssl-terminator/index.js +10 -0
  15. package/lib/config/system-config.js +34 -5
  16. package/lib/config/templates/magentorc.template +3 -5
  17. package/lib/config/templates/nginx.template.conf +0 -14
  18. package/lib/config/templates/php.template.ini +6 -4
  19. package/lib/config/templates/ssl-terminator.template.conf +27 -0
  20. package/lib/config/templates/varnish.template.vcl +255 -0
  21. package/lib/config/varnish/varnish-6-0.js +11 -0
  22. package/lib/config/varnish/varnish-6-6.js +11 -0
  23. package/lib/config/varnish/varnish-7-0.js +11 -0
  24. package/lib/config/versions/magento-2.3.0.js +9 -1
  25. package/lib/config/versions/magento-2.3.1.js +9 -1
  26. package/lib/config/versions/magento-2.3.2-p2.js +9 -1
  27. package/lib/config/versions/magento-2.3.2.js +9 -1
  28. package/lib/config/versions/magento-2.3.3-p1.js +9 -1
  29. package/lib/config/versions/magento-2.3.3.js +9 -1
  30. package/lib/config/versions/magento-2.3.4-p2.js +9 -1
  31. package/lib/config/versions/magento-2.3.4.js +9 -1
  32. package/lib/config/versions/magento-2.3.5-p1.js +9 -1
  33. package/lib/config/versions/magento-2.3.5-p2.js +9 -1
  34. package/lib/config/versions/magento-2.3.5.js +9 -1
  35. package/lib/config/versions/magento-2.3.6-p1.js +9 -1
  36. package/lib/config/versions/magento-2.3.6.js +9 -1
  37. package/lib/config/versions/magento-2.3.7-p1.js +9 -1
  38. package/lib/config/versions/magento-2.3.7-p2.js +9 -1
  39. package/lib/config/versions/magento-2.3.7-p3.js +9 -1
  40. package/lib/config/versions/magento-2.3.7.js +9 -1
  41. package/lib/config/versions/magento-2.4.0-p1.js +9 -1
  42. package/lib/config/versions/magento-2.4.0.js +9 -1
  43. package/lib/config/versions/magento-2.4.1-p1.js +9 -1
  44. package/lib/config/versions/magento-2.4.1.js +9 -1
  45. package/lib/config/versions/magento-2.4.2-p1.js +9 -1
  46. package/lib/config/versions/magento-2.4.2-p2.js +9 -1
  47. package/lib/config/versions/magento-2.4.2.js +9 -1
  48. package/lib/config/versions/magento-2.4.3-p1.js +9 -1
  49. package/lib/config/versions/magento-2.4.3-p2.js +9 -1
  50. package/lib/config/versions/magento-2.4.3.js +9 -1
  51. package/lib/config/versions/magento-2.4.4.js +9 -1
  52. package/lib/config/xml-parser.js +5 -3
  53. package/lib/errors/known-error.js +15 -0
  54. package/lib/errors/unknown-error.js +15 -0
  55. package/lib/tasks/cli/create-bashrc-config.js +7 -3
  56. package/lib/tasks/composer/index.js +5 -3
  57. package/lib/tasks/composer/local-auth-json.js +4 -2
  58. package/lib/tasks/docker/containers.js +13 -8
  59. package/lib/tasks/docker/network.js +2 -1
  60. package/lib/tasks/docker/volumes.js +4 -4
  61. package/lib/tasks/file-system/create-nginx-config.js +9 -40
  62. package/lib/tasks/file-system/create-php-config.js +2 -1
  63. package/lib/tasks/file-system/create-php-fpm-config.js +2 -1
  64. package/lib/tasks/file-system/create-phpstorm-config/database-config.js +5 -4
  65. package/lib/tasks/file-system/create-phpstorm-config/eslint-config.js +12 -10
  66. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/coding-standard-config.js +0 -3
  67. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/custom-ruleset-path-config.js +0 -3
  68. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/default-properties-config.js +1 -1
  69. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/magento-coding-standard-config.js +0 -3
  70. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/mess-detector-validation-inspection-config.js +0 -3
  71. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/php-cs-validation-inspection-config.js +1 -4
  72. package/lib/tasks/file-system/create-phpstorm-config/php-config/mess-detector-config.js +1 -4
  73. package/lib/tasks/file-system/create-phpstorm-config/php-config/php-code-sniffer-config.js +1 -11
  74. package/lib/tasks/file-system/create-phpstorm-config/php-config/php-cs-fixer-config.js +1 -6
  75. package/lib/tasks/file-system/create-phpstorm-config/php-config/php-project-shared-configuration-config.js +1 -11
  76. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/composer-settings-config.js +2 -3
  77. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/php-server-config.js +1 -4
  78. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/properties-component-config.js +2 -4
  79. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/run-manager-config.js +1 -11
  80. package/lib/tasks/file-system/create-ssl-terminator-config.js +96 -0
  81. package/lib/tasks/file-system/create-varnish-config.js +53 -0
  82. package/lib/tasks/file-system/create-vscode-config.js +3 -2
  83. package/lib/tasks/file-system/index.js +5 -1
  84. package/lib/tasks/magento/enable-magento-composer-plugins.js +3 -2
  85. package/lib/tasks/magento/install-magento.js +7 -5
  86. package/lib/tasks/magento/setup-magento/adjust-full-page-cache.js +26 -0
  87. package/lib/tasks/magento/setup-magento/configure-elasticsearch.js +1 -1
  88. package/lib/tasks/magento/setup-magento/delete-admin-users.js +1 -1
  89. package/lib/tasks/magento/setup-magento/delete-customers.js +7 -4
  90. package/lib/tasks/magento/setup-magento/delete-orders.js +6 -4
  91. package/lib/tasks/magento/setup-magento/disable-2fa.js +4 -12
  92. package/lib/tasks/magento/setup-magento/flush-redis-config.js +2 -1
  93. package/lib/tasks/magento/setup-magento/increase-admin-session-lifetime.js +14 -16
  94. package/lib/tasks/magento/setup-magento/index.js +3 -1
  95. package/lib/tasks/magento/setup-magento/install-magento.js +2 -1
  96. package/lib/tasks/magento/setup-magento/migrate-database.js +24 -11
  97. package/lib/tasks/magento/setup-magento/set-base-url.js +7 -2
  98. package/lib/tasks/magento/setup-magento/upgrade-magento.js +27 -3
  99. package/lib/tasks/magento/setup-magento/varnish-config.js +69 -0
  100. package/lib/tasks/magento/setup-magento/waiting-for-varnish.js +41 -0
  101. package/lib/tasks/mysql/connect-to-mysql.js +2 -1
  102. package/lib/tasks/mysql/fix-db.js +2 -2
  103. package/lib/tasks/mysql/import-dump-to-mysql.js +13 -2
  104. package/lib/tasks/mysql/import-remote-db/index.js +2 -1
  105. package/lib/tasks/mysql/import-remote-db/ssh/index.js +2 -1
  106. package/lib/tasks/mysql/import-remote-db/ssh/regular-server.js +2 -1
  107. package/lib/tasks/php/bundled-extensions.js +28 -0
  108. package/lib/tasks/php/compile-options.js +27 -54
  109. package/lib/tasks/php/compile.js +6 -4
  110. package/lib/tasks/php/configure.js +7 -66
  111. package/lib/tasks/php/extensions/disable.js +2 -1
  112. package/lib/tasks/php/extensions/enable.js +2 -1
  113. package/lib/tasks/php/extensions/index.js +74 -0
  114. package/lib/tasks/php/extensions/install.js +3 -3
  115. package/lib/tasks/php/index.js +8 -7
  116. package/lib/tasks/php/install-sodium.js +93 -0
  117. package/lib/tasks/php/update-env-php.js +16 -1
  118. package/lib/tasks/php/update-env.php +56 -12
  119. package/lib/tasks/php/update-phpbrew.js +7 -3
  120. package/lib/tasks/php/validate-php.js +67 -0
  121. package/lib/tasks/php-fpm/start-php-fpm.js +4 -2
  122. package/lib/tasks/requirements/composer.js +7 -5
  123. package/lib/tasks/requirements/dependency/arch.js +2 -1
  124. package/lib/tasks/requirements/dependency/centos.js +2 -1
  125. package/lib/tasks/requirements/dependency/fedora.js +2 -1
  126. package/lib/tasks/requirements/dependency/mac.js +18 -3
  127. package/lib/tasks/requirements/docker/index.js +96 -40
  128. package/lib/tasks/requirements/docker/install-on-mac.js +29 -0
  129. package/lib/tasks/requirements/docker/install.js +13 -12
  130. package/lib/tasks/requirements/docker/running-status.js +138 -0
  131. package/lib/tasks/requirements/docker/version.js +3 -0
  132. package/lib/tasks/requirements/index.js +8 -5
  133. package/lib/tasks/requirements/node-version.js +2 -1
  134. package/lib/tasks/requirements/php-version.js +29 -25
  135. package/lib/tasks/requirements/phpbrew/index.js +2 -1
  136. package/lib/tasks/requirements/phpbrew/install.js +14 -2
  137. package/lib/tasks/requirements/phpbrew/version.js +2 -1
  138. package/lib/tasks/requirements/platform.js +5 -3
  139. package/lib/tasks/requirements/rosetta.js +32 -0
  140. package/lib/tasks/start.js +8 -9
  141. package/lib/tasks/status/index.js +25 -9
  142. package/lib/tasks/theme/build-theme.js +27 -8
  143. package/lib/tasks/theme/install-theme.js +18 -5
  144. package/lib/tasks/theme/link-theme.js +2 -2
  145. package/lib/tasks/theme/retrieve-theme-data.js +2 -1
  146. package/lib/tasks/theme/setup-persisted-query.js +5 -4
  147. package/lib/tasks/theme/setup-themes.js +11 -3
  148. package/lib/tasks/theme/symlink-theme.js +26 -4
  149. package/lib/util/CSA-theme.js +4 -0
  150. package/lib/util/analytics.js +337 -0
  151. package/lib/util/arch.js +1 -1
  152. package/lib/util/config-file-validator.js +14 -2
  153. package/lib/util/config-php-json.js +20 -0
  154. package/lib/util/env-php-json.js +3 -2
  155. package/lib/util/exec-async-command.d.ts +2 -0
  156. package/lib/util/exec-async-command.js +31 -15
  157. package/lib/util/exec-async.js +9 -0
  158. package/lib/util/get-brew-bin-path.js +64 -0
  159. package/lib/util/get-installed-magento-version.js +3 -2
  160. package/lib/util/get-jsonfile-data.js +2 -1
  161. package/lib/util/install-dependencies-task.js +15 -5
  162. package/lib/util/instance-metadata.js +4 -3
  163. package/lib/util/ip.js +45 -1
  164. package/lib/util/is-running-root.js +3 -0
  165. package/lib/util/magento-task.js +20 -9
  166. package/lib/util/match-filesystem.js +2 -1
  167. package/lib/util/php-task.js +7 -3
  168. package/lib/util/request.js +0 -0
  169. package/lib/util/resolve-configuration-with-overrides.js +2 -1
  170. package/lib/util/run-composer.js +5 -3
  171. package/lib/util/run-magento.js +3 -2
  172. package/lib/util/run-php.js +14 -3
  173. package/lib/util/systemctl.js +46 -0
  174. package/lib/util/wait-for-it.js +3 -2
  175. package/package.json +4 -3
  176. package/typings/context.d.ts +6 -1
  177. package/typings/index.d.ts +32 -1
  178. package/lib/tasks/magento/setup-magento/adjust-magento-configuration.js +0 -27
  179. package/lib/tasks/magento/setup-magento/disable-page-cache.js +0 -11
@@ -0,0 +1,27 @@
1
+ real_ip_header X-Forwarded-For;
2
+ set_real_ip_from 10.0.0.0/8;
3
+ set_real_ip_from 172.0.0.0/8;
4
+ real_ip_recursive on;
5
+
6
+ server {
7
+ listen <%= it.hostPort %>;
8
+ <% if (it.config.ssl.enabled) { %> listen 443 ssl;
9
+ server_name <%= it.networkToBindTo %>;
10
+
11
+ ssl_certificate /etc/nginx/conf.d/ssl_certificate.pem;
12
+ ssl_certificate_key /etc/nginx/conf.d/ssl_certificate-key.pem;
13
+ ssl_protocols TLSv1.2;<% } %>
14
+
15
+ server_name <% if (it.config.host) { %><%= it.config.host %><% } else { %>_<% } %>;
16
+
17
+ location / {
18
+ proxy_buffer_size 128k;
19
+ proxy_buffers 4 256k;
20
+ proxy_busy_buffers_size 256k;
21
+ proxy_set_header X-Real-IP $remote_addr;
22
+ proxy_set_header X-Forwarded-For $remote_addr;
23
+ proxy_set_header Host $http_host;
24
+
25
+ proxy_pass http://<%= it.hostMachine %>:<% if (it.config.configuration.varnish.enabled) { %><%= it.ports.varnish %><% } else { %><%= it.ports.app %><% } %>;
26
+ }
27
+ }
@@ -0,0 +1,255 @@
1
+ # VCL version 5.0 is not supported so it should be 4.0 even though actually used Varnish version is 6
2
+ vcl 4.0;
3
+
4
+ import std;
5
+ # The minimal Varnish version is 6.0
6
+ # For SSL offloading, pass the following header in your proxy server or load balancer: 'X-Forwarded-Proto: https'
7
+
8
+ backend default {
9
+ .host = "<%= it.hostMachine %>";
10
+ .host_header = "Host: localhost";
11
+ .port = "<%= it.nginxPort %>";
12
+ .first_byte_timeout = 600s;
13
+ .probe = {
14
+ # .url = "/health_check.php";
15
+ .request =
16
+ "GET /health_check.php HTTP/1.1"
17
+ "Host: localhost"
18
+ "Connection: close"
19
+ "User-Agent: Varnish Health Probe";
20
+ .interval = 10s;
21
+ .timeout = 5s;
22
+ .window = 5;
23
+ .threshold = 3;
24
+ }
25
+ }
26
+
27
+ acl purge {
28
+ "<%= it.hostMachine %>";
29
+ "localhost";
30
+ "172.0.0.0"/8;
31
+ "192.168.0.0"/16;
32
+ }
33
+
34
+ sub vcl_recv {
35
+ if (req.restarts > 0) {
36
+ set req.hash_always_miss = true;
37
+ }
38
+
39
+ if (req.method == "PURGE") {
40
+ if (client.ip !~ purge) {
41
+ return (synth(405, "Method not allowed"));
42
+ }
43
+ # To use the X-Pool header for purging varnish during automated deployments, make sure the X-Pool header
44
+ # has been added to the response in your backend server config. This is used, for example, by the
45
+ # capistrano-magento2 gem for purging old content from varnish during it's deploy routine.
46
+ if (!req.http.X-Magento-Tags-Pattern && !req.http.X-Pool) {
47
+ return (synth(400, "X-Magento-Tags-Pattern or X-Pool header required"));
48
+ }
49
+ if (req.http.X-Magento-Tags-Pattern) {
50
+ ban("obj.http.X-Magento-Tags ~ " + req.http.X-Magento-Tags-Pattern);
51
+ }
52
+ if (req.http.X-Pool) {
53
+ ban("obj.http.X-Pool ~ " + req.http.X-Pool);
54
+ }
55
+ return (synth(200, "Purged"));
56
+ }
57
+
58
+ if (req.method != "GET" &&
59
+ req.method != "HEAD" &&
60
+ req.method != "PUT" &&
61
+ req.method != "POST" &&
62
+ req.method != "TRACE" &&
63
+ req.method != "OPTIONS" &&
64
+ req.method != "DELETE") {
65
+ /* Non-RFC2616 or CONNECT which is weird. */
66
+ return (pipe);
67
+ }
68
+
69
+ # We only deal with GET and HEAD by default
70
+ if (req.method != "GET" && req.method != "HEAD") {
71
+ return (pass);
72
+ }
73
+
74
+ # Bypass customer, shopping cart, checkout
75
+ if (req.url ~ "/customer" || req.url ~ "/checkout") {
76
+ return (pass);
77
+ }
78
+
79
+ # Bypass health check requests
80
+ if (req.url ~ "^/(pub/)?(health_check.php)$") {
81
+ return (pass);
82
+ }
83
+
84
+ # Bypass frontend static file caching
85
+ if (req.url ~ "^/static/frontend") {
86
+ return (pass);
87
+ }
88
+
89
+ # Set initial grace period usage status
90
+ set req.http.grace = "none";
91
+
92
+ # normalize url in case of leading HTTP scheme and domain
93
+ set req.url = regsub(req.url, "^http[s]?://", "");
94
+
95
+ # collect all cookies
96
+ std.collect(req.http.Cookie);
97
+
98
+ # Compression filter. See https://www.varnish-cache.org/trac/wiki/FAQ/Compression
99
+ if (req.http.Accept-Encoding) {
100
+ if (req.url ~ "\.(jpg|jpeg|png|gif|gz|tgz|bz2|tbz|mp3|ogg|swf|flv)$") {
101
+ # No point in compressing these
102
+ unset req.http.Accept-Encoding;
103
+ } elsif (req.http.Accept-Encoding ~ "gzip") {
104
+ set req.http.Accept-Encoding = "gzip";
105
+ } elsif (req.http.Accept-Encoding ~ "deflate" && req.http.user-agent !~ "MSIE") {
106
+ set req.http.Accept-Encoding = "deflate";
107
+ } else {
108
+ # unknown algorithm
109
+ unset req.http.Accept-Encoding;
110
+ }
111
+ }
112
+
113
+ # Remove all marketing get parameters to minimize the cache objects
114
+ if (req.url ~ "(\?|&)(gclid|cx|ie|cof|siteurl|zanpid|origin|fbclid|mc_[a-z]+|utm_[a-z]+|_bta_[a-z]+)=") {
115
+ set req.url = regsuball(req.url, "(gclid|cx|ie|cof|siteurl|zanpid|origin|fbclid|mc_[a-z]+|utm_[a-z]+|_bta_[a-z]+)=[-_A-z0-9+()%.]+&?", "");
116
+ set req.url = regsub(req.url, "[?|&]+$", "");
117
+ }
118
+
119
+ # Static files caching
120
+ if (req.url ~ "^/(pub/)?(media|static)/") {
121
+ # Static files should not be cached by default
122
+ # return (pass);
123
+
124
+ # But if you use a few locales and don't use CDN you can enable caching static files by commenting previous line (#return (pass);) and uncommenting next 3 lines
125
+ unset req.http.Https;
126
+ unset req.http.X-Forwarded-Proto;
127
+ unset req.http.Cookie;
128
+ }
129
+
130
+ # Authenticated GraphQL requests should not be cached by default
131
+ if (req.url ~ "/graphql" && req.http.Authorization ~ "^Bearer") {
132
+ return (pass);
133
+ }
134
+
135
+ return (hash);
136
+ }
137
+
138
+ sub vcl_hash {
139
+ if (req.http.cookie ~ "X-Magento-Vary=") {
140
+ hash_data(regsub(req.http.cookie, "^.*?X-Magento-Vary=([^;]+);*.*$", "\1"));
141
+ }
142
+
143
+ # To make sure http users don't see ssl warning
144
+ if (req.http.X-Forwarded-Proto) {
145
+ hash_data(req.http.X-Forwarded-Proto);
146
+ }
147
+
148
+ if (req.url ~ "/graphql") {
149
+ call process_graphql_headers;
150
+ }
151
+ }
152
+
153
+ sub process_graphql_headers {
154
+ if (req.http.Store) {
155
+ hash_data(req.http.Store);
156
+ }
157
+ if (req.http.Content-Currency) {
158
+ hash_data(req.http.Content-Currency);
159
+ }
160
+ }
161
+
162
+ sub vcl_backend_response {
163
+
164
+ set beresp.grace = 3d;
165
+
166
+ if (beresp.http.content-type ~ "text") {
167
+ set beresp.do_esi = true;
168
+ }
169
+
170
+ if (bereq.url ~ "\.js$" || beresp.http.content-type ~ "text") {
171
+ set beresp.do_gzip = true;
172
+ }
173
+
174
+ if (beresp.http.X-Magento-Debug) {
175
+ set beresp.http.X-Magento-Cache-Control = beresp.http.Cache-Control;
176
+ }
177
+
178
+ # cache only successfully responses and 404s
179
+ if (beresp.status != 200 && beresp.status != 404) {
180
+ set beresp.ttl = 0s;
181
+ set beresp.uncacheable = true;
182
+ return (deliver);
183
+ } elsif (beresp.http.Cache-Control ~ "private") {
184
+ set beresp.uncacheable = true;
185
+ set beresp.ttl = 86400s;
186
+ return (deliver);
187
+ }
188
+
189
+ # validate if we need to cache it and prevent from setting cookie
190
+ if (beresp.ttl > 0s && (bereq.method == "GET" || bereq.method == "HEAD")) {
191
+ unset beresp.http.set-cookie;
192
+ }
193
+
194
+ # If page is not cacheable then bypass varnish for 2 minutes as Hit-For-Pass
195
+ if (beresp.ttl <= 0s ||
196
+ beresp.http.Surrogate-control ~ "no-store" ||
197
+ (!beresp.http.Surrogate-Control &&
198
+ beresp.http.Cache-Control ~ "no-cache|no-store") ||
199
+ beresp.http.Vary == "*") {
200
+ # Mark as Hit-For-Pass for the next 2 minutes
201
+ set beresp.ttl = 120s;
202
+ set beresp.uncacheable = true;
203
+ }
204
+
205
+ return (deliver);
206
+ }
207
+
208
+ sub vcl_deliver {
209
+ if (resp.http.X-Magento-Debug) {
210
+ if (resp.http.x-varnish ~ " ") {
211
+ set resp.http.X-Magento-Cache-Debug = "HIT";
212
+ set resp.http.Grace = req.http.grace;
213
+ } else {
214
+ set resp.http.X-Magento-Cache-Debug = "MISS";
215
+ }
216
+ } else {
217
+ unset resp.http.Age;
218
+ }
219
+
220
+ # Not letting browser to cache non-static files.
221
+ if (resp.http.Cache-Control !~ "private" && req.url !~ "^/(pub/)?(media|static)/") {
222
+ set resp.http.Pragma = "no-cache";
223
+ set resp.http.Expires = "-1";
224
+ set resp.http.Cache-Control = "no-store, no-cache, must-revalidate, max-age=0";
225
+ }
226
+
227
+ unset resp.http.X-Magento-Debug;
228
+ unset resp.http.X-Magento-Tags;
229
+ unset resp.http.X-Powered-By;
230
+ unset resp.http.Server;
231
+ unset resp.http.X-Varnish;
232
+ unset resp.http.Via;
233
+ unset resp.http.Link;
234
+ }
235
+
236
+ sub vcl_hit {
237
+ if (obj.ttl >= 0s) {
238
+ # Hit within TTL period
239
+ return (deliver);
240
+ }
241
+ if (std.healthy(req.backend_hint)) {
242
+ if (obj.ttl + 300s > 0s) {
243
+ # Hit after TTL expiration, but within grace period
244
+ set req.http.grace = "normal (healthy server)";
245
+ return (deliver);
246
+ } else {
247
+ # Hit after TTL and grace expiration
248
+ return (restart);
249
+ }
250
+ } else {
251
+ # server is not healthy, retrieve from cache
252
+ set req.http.grace = "unlimited (unhealthy server)";
253
+ return (deliver);
254
+ }
255
+ }
@@ -0,0 +1,11 @@
1
+ const path = require('path');
2
+
3
+ const varnish60 = ({ templateDir }) => ({
4
+ enabled: true,
5
+ version: '6.0',
6
+ configTemplate: path.join(templateDir || '', 'varnish.template.vcl')
7
+ });
8
+
9
+ module.exports = {
10
+ varnish60
11
+ };
@@ -0,0 +1,11 @@
1
+ const path = require('path');
2
+
3
+ const varnish66 = ({ templateDir }) => ({
4
+ enabled: true,
5
+ version: '6.6',
6
+ configTemplate: path.join(templateDir || '', 'varnish.template.vcl')
7
+ });
8
+
9
+ module.exports = {
10
+ varnish66
11
+ };
@@ -0,0 +1,11 @@
1
+ const path = require('path');
2
+
3
+ const varnish70 = ({ templateDir }) => ({
4
+ enabled: true,
5
+ version: '7.0',
6
+ configTemplate: path.join(templateDir || '', 'varnish.template.vcl')
7
+ });
8
+
9
+ module.exports = {
10
+ varnish70
11
+ };
@@ -1,5 +1,7 @@
1
1
  const path = require('path');
2
2
  const { defaultMagentoConfig } = require('../magento-config');
3
+ const { sslTerminator } = require('../ssl-terminator');
4
+ const { varnish66 } = require('../varnish/varnish-6-6');
3
5
 
4
6
  module.exports = ({ templateDir } = {}) => ({
5
7
  magentoVersion: '2.3.0',
@@ -18,6 +20,10 @@ module.exports = ({ templateDir } = {}) => ({
18
20
  SimpleXML: {},
19
21
  xdebug: {
20
22
  version: '3.1.2'
23
+ },
24
+ apcu: {},
25
+ opcache: {
26
+ extensionName: 'Zend OPcache'
21
27
  }
22
28
  }
23
29
  },
@@ -39,7 +45,9 @@ module.exports = ({ templateDir } = {}) => ({
39
45
  },
40
46
  composer: {
41
47
  version: '1'
42
- }
48
+ },
49
+ varnish: varnish66({ templateDir }),
50
+ sslTerminator: sslTerminator({ templateDir })
43
51
  },
44
52
  magento: defaultMagentoConfig,
45
53
  host: 'localhost',
@@ -1,5 +1,7 @@
1
1
  const path = require('path');
2
2
  const { defaultMagentoConfig } = require('../magento-config');
3
+ const { sslTerminator } = require('../ssl-terminator');
4
+ const { varnish66 } = require('../varnish/varnish-6-6');
3
5
 
4
6
  module.exports = ({ templateDir } = {}) => ({
5
7
  magentoVersion: '2.3.1',
@@ -18,6 +20,10 @@ module.exports = ({ templateDir } = {}) => ({
18
20
  SimpleXML: {},
19
21
  xdebug: {
20
22
  version: '3.1.2'
23
+ },
24
+ apcu: {},
25
+ opcache: {
26
+ extensionName: 'Zend OPcache'
21
27
  }
22
28
  }
23
29
  },
@@ -39,7 +45,9 @@ module.exports = ({ templateDir } = {}) => ({
39
45
  },
40
46
  composer: {
41
47
  version: '1'
42
- }
48
+ },
49
+ varnish: varnish66({ templateDir }),
50
+ sslTerminator: sslTerminator({ templateDir })
43
51
  },
44
52
  magento: defaultMagentoConfig,
45
53
  host: 'localhost',
@@ -1,5 +1,7 @@
1
1
  const path = require('path');
2
2
  const { defaultMagentoConfig } = require('../magento-config');
3
+ const { sslTerminator } = require('../ssl-terminator');
4
+ const { varnish66 } = require('../varnish/varnish-6-6');
3
5
 
4
6
  module.exports = ({ templateDir } = {}) => ({
5
7
  magentoVersion: '2.3.2-p2',
@@ -18,6 +20,10 @@ module.exports = ({ templateDir } = {}) => ({
18
20
  SimpleXML: {},
19
21
  xdebug: {
20
22
  version: '3.1.2'
23
+ },
24
+ apcu: {},
25
+ opcache: {
26
+ extensionName: 'Zend OPcache'
21
27
  }
22
28
  }
23
29
  },
@@ -39,7 +45,9 @@ module.exports = ({ templateDir } = {}) => ({
39
45
  },
40
46
  composer: {
41
47
  version: '1'
42
- }
48
+ },
49
+ varnish: varnish66({ templateDir }),
50
+ sslTerminator: sslTerminator({ templateDir })
43
51
  },
44
52
  magento: defaultMagentoConfig,
45
53
  host: 'localhost',
@@ -1,5 +1,7 @@
1
1
  const path = require('path');
2
2
  const { defaultMagentoConfig } = require('../magento-config');
3
+ const { sslTerminator } = require('../ssl-terminator');
4
+ const { varnish66 } = require('../varnish/varnish-6-6');
3
5
 
4
6
  module.exports = ({ templateDir } = {}) => ({
5
7
  magentoVersion: '2.3.2',
@@ -18,6 +20,10 @@ module.exports = ({ templateDir } = {}) => ({
18
20
  SimpleXML: {},
19
21
  xdebug: {
20
22
  version: '3.1.2'
23
+ },
24
+ apcu: {},
25
+ opcache: {
26
+ extensionName: 'Zend OPcache'
21
27
  }
22
28
  }
23
29
  },
@@ -39,7 +45,9 @@ module.exports = ({ templateDir } = {}) => ({
39
45
  },
40
46
  composer: {
41
47
  version: '1'
42
- }
48
+ },
49
+ varnish: varnish66({ templateDir }),
50
+ sslTerminator: sslTerminator({ templateDir })
43
51
  },
44
52
  magento: defaultMagentoConfig,
45
53
  host: 'localhost',
@@ -1,5 +1,7 @@
1
1
  const path = require('path');
2
2
  const { defaultMagentoConfig } = require('../magento-config');
3
+ const { sslTerminator } = require('../ssl-terminator');
4
+ const { varnish66 } = require('../varnish/varnish-6-6');
3
5
 
4
6
  module.exports = ({ templateDir } = {}) => ({
5
7
  magentoVersion: '2.3.3-p1',
@@ -18,6 +20,10 @@ module.exports = ({ templateDir } = {}) => ({
18
20
  SimpleXML: {},
19
21
  xdebug: {
20
22
  version: '3.1.2'
23
+ },
24
+ apcu: {},
25
+ opcache: {
26
+ extensionName: 'Zend OPcache'
21
27
  }
22
28
  }
23
29
  },
@@ -39,7 +45,9 @@ module.exports = ({ templateDir } = {}) => ({
39
45
  },
40
46
  composer: {
41
47
  version: '1'
42
- }
48
+ },
49
+ varnish: varnish66({ templateDir }),
50
+ sslTerminator: sslTerminator({ templateDir })
43
51
  },
44
52
  magento: defaultMagentoConfig,
45
53
  host: 'localhost',
@@ -1,5 +1,7 @@
1
1
  const path = require('path');
2
2
  const { defaultMagentoConfig } = require('../magento-config');
3
+ const { sslTerminator } = require('../ssl-terminator');
4
+ const { varnish66 } = require('../varnish/varnish-6-6');
3
5
 
4
6
  module.exports = ({ templateDir } = {}) => ({
5
7
  magentoVersion: '2.3.3',
@@ -18,6 +20,10 @@ module.exports = ({ templateDir } = {}) => ({
18
20
  SimpleXML: {},
19
21
  xdebug: {
20
22
  version: '3.1.2'
23
+ },
24
+ apcu: {},
25
+ opcache: {
26
+ extensionName: 'Zend OPcache'
21
27
  }
22
28
  }
23
29
  },
@@ -39,7 +45,9 @@ module.exports = ({ templateDir } = {}) => ({
39
45
  },
40
46
  composer: {
41
47
  version: '1'
42
- }
48
+ },
49
+ varnish: varnish66({ templateDir }),
50
+ sslTerminator: sslTerminator({ templateDir })
43
51
  },
44
52
  magento: defaultMagentoConfig,
45
53
  host: 'localhost',
@@ -1,5 +1,7 @@
1
1
  const path = require('path');
2
2
  const { defaultMagentoConfig } = require('../magento-config');
3
+ const { sslTerminator } = require('../ssl-terminator');
4
+ const { varnish66 } = require('../varnish/varnish-6-6');
3
5
 
4
6
  module.exports = ({ templateDir } = {}) => ({
5
7
  magentoVersion: '2.3.4-p2',
@@ -18,6 +20,10 @@ module.exports = ({ templateDir } = {}) => ({
18
20
  SimpleXML: {},
19
21
  xdebug: {
20
22
  version: '3.1.2'
23
+ },
24
+ apcu: {},
25
+ opcache: {
26
+ extensionName: 'Zend OPcache'
21
27
  }
22
28
  }
23
29
  },
@@ -39,7 +45,9 @@ module.exports = ({ templateDir } = {}) => ({
39
45
  },
40
46
  composer: {
41
47
  version: '1'
42
- }
48
+ },
49
+ varnish: varnish66({ templateDir }),
50
+ sslTerminator: sslTerminator({ templateDir })
43
51
  },
44
52
  magento: defaultMagentoConfig,
45
53
  host: 'localhost',
@@ -1,5 +1,7 @@
1
1
  const path = require('path');
2
2
  const { defaultMagentoConfig } = require('../magento-config');
3
+ const { sslTerminator } = require('../ssl-terminator');
4
+ const { varnish66 } = require('../varnish/varnish-6-6');
3
5
 
4
6
  module.exports = ({ templateDir } = {}) => ({
5
7
  magentoVersion: '2.3.4',
@@ -18,6 +20,10 @@ module.exports = ({ templateDir } = {}) => ({
18
20
  SimpleXML: {},
19
21
  xdebug: {
20
22
  version: '3.1.2'
23
+ },
24
+ apcu: {},
25
+ opcache: {
26
+ extensionName: 'Zend OPcache'
21
27
  }
22
28
  }
23
29
  },
@@ -39,7 +45,9 @@ module.exports = ({ templateDir } = {}) => ({
39
45
  },
40
46
  composer: {
41
47
  version: '1'
42
- }
48
+ },
49
+ varnish: varnish66({ templateDir }),
50
+ sslTerminator: sslTerminator({ templateDir })
43
51
  },
44
52
  magento: defaultMagentoConfig,
45
53
  host: 'localhost',
@@ -1,5 +1,7 @@
1
1
  const path = require('path');
2
2
  const { defaultMagentoConfig } = require('../magento-config');
3
+ const { sslTerminator } = require('../ssl-terminator');
4
+ const { varnish66 } = require('../varnish/varnish-6-6');
3
5
 
4
6
  module.exports = ({ templateDir } = {}) => ({
5
7
  magentoVersion: '2.3.5-p1',
@@ -18,6 +20,10 @@ module.exports = ({ templateDir } = {}) => ({
18
20
  SimpleXML: {},
19
21
  xdebug: {
20
22
  version: '3.1.2'
23
+ },
24
+ apcu: {},
25
+ opcache: {
26
+ extensionName: 'Zend OPcache'
21
27
  }
22
28
  }
23
29
  },
@@ -39,7 +45,9 @@ module.exports = ({ templateDir } = {}) => ({
39
45
  },
40
46
  composer: {
41
47
  version: '1'
42
- }
48
+ },
49
+ varnish: varnish66({ templateDir }),
50
+ sslTerminator: sslTerminator({ templateDir })
43
51
  },
44
52
  magento: defaultMagentoConfig,
45
53
  host: 'localhost',
@@ -1,5 +1,7 @@
1
1
  const path = require('path');
2
2
  const { defaultMagentoConfig } = require('../magento-config');
3
+ const { sslTerminator } = require('../ssl-terminator');
4
+ const { varnish66 } = require('../varnish/varnish-6-6');
3
5
 
4
6
  module.exports = ({ templateDir } = {}) => ({
5
7
  magentoVersion: '2.3.5-p2',
@@ -18,6 +20,10 @@ module.exports = ({ templateDir } = {}) => ({
18
20
  SimpleXML: {},
19
21
  xdebug: {
20
22
  version: '3.1.2'
23
+ },
24
+ apcu: {},
25
+ opcache: {
26
+ extensionName: 'Zend OPcache'
21
27
  }
22
28
  }
23
29
  },
@@ -39,7 +45,9 @@ module.exports = ({ templateDir } = {}) => ({
39
45
  },
40
46
  composer: {
41
47
  version: '1'
42
- }
48
+ },
49
+ varnish: varnish66({ templateDir }),
50
+ sslTerminator: sslTerminator({ templateDir })
43
51
  },
44
52
  magento: defaultMagentoConfig,
45
53
  host: 'localhost',
@@ -1,5 +1,7 @@
1
1
  const path = require('path');
2
2
  const { defaultMagentoConfig } = require('../magento-config');
3
+ const { sslTerminator } = require('../ssl-terminator');
4
+ const { varnish66 } = require('../varnish/varnish-6-6');
3
5
 
4
6
  module.exports = ({ templateDir } = {}) => ({
5
7
  magentoVersion: '2.3.5',
@@ -18,6 +20,10 @@ module.exports = ({ templateDir } = {}) => ({
18
20
  SimpleXML: {},
19
21
  xdebug: {
20
22
  version: '3.1.2'
23
+ },
24
+ apcu: {},
25
+ opcache: {
26
+ extensionName: 'Zend OPcache'
21
27
  }
22
28
  }
23
29
  },
@@ -39,7 +45,9 @@ module.exports = ({ templateDir } = {}) => ({
39
45
  },
40
46
  composer: {
41
47
  version: '1'
42
- }
48
+ },
49
+ varnish: varnish66({ templateDir }),
50
+ sslTerminator: sslTerminator({ templateDir })
43
51
  },
44
52
  magento: defaultMagentoConfig,
45
53
  host: 'localhost',
@@ -1,5 +1,7 @@
1
1
  const path = require('path');
2
2
  const { defaultMagentoConfig } = require('../magento-config');
3
+ const { sslTerminator } = require('../ssl-terminator');
4
+ const { varnish66 } = require('../varnish/varnish-6-6');
3
5
 
4
6
  module.exports = ({ templateDir } = {}) => ({
5
7
  magentoVersion: '2.3.6-p1',
@@ -18,6 +20,10 @@ module.exports = ({ templateDir } = {}) => ({
18
20
  SimpleXML: {},
19
21
  xdebug: {
20
22
  version: '3.1.2'
23
+ },
24
+ apcu: {},
25
+ opcache: {
26
+ extensionName: 'Zend OPcache'
21
27
  }
22
28
  }
23
29
  },
@@ -39,7 +45,9 @@ module.exports = ({ templateDir } = {}) => ({
39
45
  },
40
46
  composer: {
41
47
  version: '1'
42
- }
48
+ },
49
+ varnish: varnish66({ templateDir }),
50
+ sslTerminator: sslTerminator({ templateDir })
43
51
  },
44
52
  magento: defaultMagentoConfig,
45
53
  host: 'localhost',