From 397d738b484a54d896c3183df5287b95fa479436 Mon Sep 17 00:00:00 2001 From: Denny Cave Date: Sat, 22 Jul 2023 23:30:58 -0500 Subject: [PATCH] v1 --- LICENSE.md | 201 ++++++++++++++++++ README.md | 39 ++++ buddyboss-ls.yml | 92 ++++++++ buddyboss.png | Bin 0 -> 53580 bytes buddyboss.svg | 4 + cluster.yml | 165 ++++++++++++++ images/buddyboss.svg | 1 + images/cluster.png | Bin 0 -> 6252 bytes images/cluster.svg | 1 + images/logo/cluster.png | Bin 0 -> 6252 bytes images/logo/cluster.svg | 10 + images/logo/multiregion-standalone.svg | 11 + images/logo/standalone-pro.png | Bin 0 -> 3933 bytes images/logo/standalone-pro.svg | 7 + images/logo/standalone.png | Bin 0 -> 3837 bytes images/logo/standalone.svg | 5 + images/logo/woocommerce-cluster.png | Bin 0 -> 6252 bytes images/logo/woocommerce-cluster.svg | 10 + images/logo/woocommerce-pro.png | Bin 0 -> 3933 bytes images/logo/woocommerce-pro.svg | 8 + images/logo/woocommerce.png | Bin 0 -> 3837 bytes images/logo/woocommerce.svg | 6 + images/multi-region-standalone.svg | 1 + images/standalone-pro.png | Bin 0 -> 3933 bytes images/standalone-pro.svg | 1 + images/standalone.png | Bin 0 -> 3837 bytes images/standalone.svg | 1 + images/topo/cluster-black-font.svg | 1 + images/topo/cluster.svg | 1 + .../multi-region-standalone-black-font.svg | 1 + images/topo/multi-region-standalone.svg | 1 + images/topo/standalone-black-font.svg | 1 + images/topo/standalone-pro-black-font.svg | 1 + images/topo/standalone-pro.svg | 1 + images/topo/standalone.svg | 1 + images/topo/woocommerce-cluster.svg | 1 + images/topo/woocommerce-pro.svg | 1 + images/topo/woocommerce.svg | 1 + images/woocommerce-cluster.png | Bin 0 -> 6252 bytes images/woocommerce-pro.png | Bin 0 -> 3933 bytes images/woocommerce.png | Bin 0 -> 3837 bytes images/wp-edition-mp.png | Bin 0 -> 116041 bytes scratchpad | 46 ++++ scripts/buddyboss-config.sh | 10 + scripts/onBeforeInit.js | 65 ++++++ scripts/setGlobals.js | 16 ++ standalone-pro.yml | 126 +++++++++++ standalone.yml | 121 +++++++++++ success/email/buddyboss-pro.md | 18 ++ success/email/cluster.md | 23 ++ success/email/standalone-pro.md | 18 ++ success/email/standalone.md | 13 ++ success/email/woocommerce-cluster.md | 23 ++ success/email/woocommerce.md | 13 ++ success/text/buddyboss-pro.md | 18 ++ success/text/cluster.md | 18 ++ success/text/standalone-pro.md | 18 ++ success/text/standalone.md | 13 ++ success/text/woocommerce-cluster.md | 18 ++ success/text/woocommerce.md | 13 ++ text/buddyboss-pro.md | 1 + text/cluster.md | 1 + text/standalone-pro.md | 1 + text/standalone.md | 1 + text/woocommerce-cluster.md | 1 + text/woocommerce.md | 1 + woocommerce-cluster.yml | 165 ++++++++++++++ woocommerce.yml | 112 ++++++++++ 68 files changed, 1447 insertions(+) create mode 100755 LICENSE.md create mode 100755 README.md create mode 100755 buddyboss-ls.yml create mode 100644 buddyboss.png create mode 100644 buddyboss.svg create mode 100755 cluster.yml create mode 100644 images/buddyboss.svg create mode 100755 images/cluster.png create mode 100755 images/cluster.svg create mode 100755 images/logo/cluster.png create mode 100755 images/logo/cluster.svg create mode 100755 images/logo/multiregion-standalone.svg create mode 100755 images/logo/standalone-pro.png create mode 100755 images/logo/standalone-pro.svg create mode 100755 images/logo/standalone.png create mode 100755 images/logo/standalone.svg create mode 100755 images/logo/woocommerce-cluster.png create mode 100755 images/logo/woocommerce-cluster.svg create mode 100755 images/logo/woocommerce-pro.png create mode 100755 images/logo/woocommerce-pro.svg create mode 100755 images/logo/woocommerce.png create mode 100755 images/logo/woocommerce.svg create mode 100755 images/multi-region-standalone.svg create mode 100755 images/standalone-pro.png create mode 100755 images/standalone-pro.svg create mode 100755 images/standalone.png create mode 100755 images/standalone.svg create mode 100755 images/topo/cluster-black-font.svg create mode 100755 images/topo/cluster.svg create mode 100755 images/topo/multi-region-standalone-black-font.svg create mode 100755 images/topo/multi-region-standalone.svg create mode 100755 images/topo/standalone-black-font.svg create mode 100755 images/topo/standalone-pro-black-font.svg create mode 100755 images/topo/standalone-pro.svg create mode 100755 images/topo/standalone.svg create mode 100755 images/topo/woocommerce-cluster.svg create mode 100755 images/topo/woocommerce-pro.svg create mode 100755 images/topo/woocommerce.svg create mode 100755 images/woocommerce-cluster.png create mode 100755 images/woocommerce-pro.png create mode 100755 images/woocommerce.png create mode 100755 images/wp-edition-mp.png create mode 100644 scratchpad create mode 100644 scripts/buddyboss-config.sh create mode 100755 scripts/onBeforeInit.js create mode 100755 scripts/setGlobals.js create mode 100755 standalone-pro.yml create mode 100755 standalone.yml create mode 100755 success/email/buddyboss-pro.md create mode 100755 success/email/cluster.md create mode 100755 success/email/standalone-pro.md create mode 100755 success/email/standalone.md create mode 100755 success/email/woocommerce-cluster.md create mode 100755 success/email/woocommerce.md create mode 100755 success/text/buddyboss-pro.md create mode 100755 success/text/cluster.md create mode 100755 success/text/standalone-pro.md create mode 100755 success/text/standalone.md create mode 100755 success/text/woocommerce-cluster.md create mode 100755 success/text/woocommerce.md create mode 100755 text/buddyboss-pro.md create mode 100755 text/cluster.md create mode 100755 text/standalone-pro.md create mode 100755 text/standalone.md create mode 100755 text/woocommerce-cluster.md create mode 100755 text/woocommerce.md create mode 100755 woocommerce-cluster.yml create mode 100755 woocommerce.yml diff --git a/LICENSE.md b/LICENSE.md new file mode 100755 index 0000000..8dada3e --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md new file mode 100755 index 0000000..b29c5c2 --- /dev/null +++ b/README.md @@ -0,0 +1,39 @@ +

+ +

+ +## WordPress Edition +This repository houses a collection of WordPress solutions to build websites of any flavour within [Virtuozzo Application Platform for WordPress](https://docs.jelastic.com/virtuozzo-application-platform-for-wordpress/). + +

+ +

+ +The platform is a DevOps platform dedicated to WordPress hosting specifically. It offers a number of prepackaged topologies of varying complexity (from single-container solutions to clusters and synchronized multi-region instances), which covers all the range of use cases (from small testing installation to the enterprise-level clusters). + +### Standalone +A single isolated WordPress instance deployed and pre-configured with an NGINX web server, MariaDB SQL database server and Redis as an object cache. Ideal for small and medium-sized websites and development environments that don’t need scalability or high availability. +

+ +

+ +### Standalone Pro +Same as the Standalone package, but using the commercial edition of the LiteSpeed Web Server instead of NGINX. Also includes seamless integration with the LiteSpeed WordPress Plugin for better quality, resource utilization and performance. +

+ +

+ +### WooCommerce +Same as the Standalone package, but with a pre-installed and optimized WooCommerce plugin. Ideal for smaller e-commerce businesses that don't need to serve hundreds or thousands of concurrent shopping cart users, or deal with unexpected load-spikes. + +### WooCommerce Pro +A fusion of the Standalone Pro and the WooCommerce packages. Designed for smaller e-commerce businesses, but delivering better page load times and a better user experience, via the seamless integration of WooCommerce and LiteSpeed. + +### Cluster +A WordPress cluster deployed and pre-configured with an optimized software stack, including a LiteSpeed web server, MariaDB SQL database server (SQL replication or Galera cluster), Redis as an object cache, and an NFS or GlusterFS cluster as the distributed filesystem volume. Ideal for projects that require high availability, scalability and unmatched quality and performance for a superior end-user experience. +

+ +

+ +### WooCommerce Cluster +A fusion of the Cluster and WooCommerce packages. Ideal for eCommerce businesses that need to serve hundreds or thousands of concurrent users and handle any load spike. With WooCommerce Cluster you can run campaigns without worrying about downtime or slow performance damaging your reputation and brand. diff --git a/buddyboss-ls.yml b/buddyboss-ls.yml new file mode 100755 index 0000000..4105402 --- /dev/null +++ b/buddyboss-ls.yml @@ -0,0 +1,92 @@ +type: install +jpsVersion: 7.1.1 +id: wp-buddyboss-litespeed +categories: + - wordpress +targetEditions: wordpress +name: BuddyBoss +baseUrl: https://deploy.mightybox.site/kits/buddyboss +logo: https://deploy.mightybox.site/kits/buddyboss/buddyboss.svg +description: + text: /text/buddyboss-pro.md + short: Single instance BuddyBoss powered by LiteSpeed + +onBeforeInit: /scripts/onBeforeInit.js + +settings: + fields: + + - caption: Topology + type: displayfield + name: topology + tooltip: "

Single instance BuddyBoss
powered by LiteSpeed
Web Server



" + + - type: envname + name: envName + caption: Environment + dependsOn: region + required: true + + - type: string + name: displayName + caption: Display Name + default: BuddyBoss Pro + + - caption: Region + type: regionlist + name: region + disableInactive: true + selectFirstAvailable: true + stateId: "wp" + dependsOn: ownerUid + + - type: owner + name: ownerUid + caption: Owner + +globals: + wp_jps: https://raw.githubusercontent.com/jelastic-jps/wordpress/v2.2.0 + wp_admin_pass: ${fn.password(10)} + db_user: user-${fn.random} + db_pass: ${fn.password(10)} + +onInstall: + - script: /scripts/setGlobals.js?_r=${fn.random} + + - install: + jps: https://raw.githubusercontent.com/jelastic-jps/wordpress/v2.2.0/manifest.yml?_r=${fn.random} + envName: ${settings.envName} + region: ${settings.region} + loggerName: ${settings.envName} + displayName: ${settings.displayName} + envGroups: ${globals.envGroups} + ownerUid: ${settings.ownerUid} + settings: + ls-addon: true + waf: true + wp_protect: true + le-addon: true + cdn-addon: ${settings.cdn-addon} + mu-addon: false + woocommerce: false + DB_USER: ${globals.db_user} + DB_PASS: ${globals.db_pass} + WP_ADMIN_PASS: ${globals.wp_admin_pass} + success_email: false + project: ${settings.project:default} + projectScope: ${settings.projectScope:production} + + - env.control.ApplyNodeGroupData[cp]: + envName: ${settings.envName} + data: + fixedTopologyLayers: 1 + fixedCloudlets: 16 + flexibleCloudlets: 32 + + - install: + jps: https://deploy.mightybox.site/addons/buddyboss-optimizations/manifest.yml + envName: ${settings.envName} + +success: + email: /success/email/buddyboss-pro.md?_r=${fn.random} + text: /success/text/buddyboss-pro.md?_r=${fn.random} diff --git a/buddyboss.png b/buddyboss.png new file mode 100644 index 0000000000000000000000000000000000000000..2d6602fb88b5bde85ea8e88a175ea2c8e229c7be GIT binary patch literal 53580 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 Hm#6;$fR!Zi literal 0 HcmV?d00001 diff --git a/buddyboss.svg b/buddyboss.svg new file mode 100644 index 0000000..0efcc41 --- /dev/null +++ b/buddyboss.svg @@ -0,0 +1,4 @@ + + + + diff --git a/cluster.yml b/cluster.yml new file mode 100755 index 0000000..b52112c --- /dev/null +++ b/cluster.yml @@ -0,0 +1,165 @@ +type: install +jpsVersion: 7.1.1 +id: wp-edition-cluster +categories: + - wordpress +targetEditions: wordpress +name: Cluster +baseUrl: https://raw.githubusercontent.com/jelastic-jps/wordpress-edition/master +logo: /images/logo/cluster.svg +description: + text: /text/cluster.md + short: WordPress Cluster powered by LiteSpeed + +onBeforeInit: /scripts/onBeforeInit.js + +settings: + fields: + - caption: Advanced Features + type: displayfield + name: displayfield + markup: + + - caption: WordPress Brute Force Attack Protection + type: checkbox + name: wp_protect + value: true + disabled: false + tooltip: "Secure WordPress Admin Panel with LiteSpeed Brute Force Protection that limits failed login attempts. Default action is Throttle and number of allowed attempts is 100" + + - caption: Web Application Firewall + type: checkbox + name: waf + value: true + disabled: false + tooltip: "Protect web sites with LiteSpeed built-in WAF based on Free ModSecurity Rules from Comodo" + + - caption: Install Let's Encrypt SSL with Auto-Renewal + type: checkbox + name: le-addon + value: true + disabled: false + tooltip: "Advanced integration with Let's Encrypt certificate authority that simplifies and automates the process of issuing, configuring and updating trusted custom SSL certificates." + + - caption: Install Lightning-Fast Premium CDN + type: checkbox + name: cdn-addon + value: true + disabled: false + tooltip: "Jelastic CDN is an HTTP/3 premium content delivery network of 160+ Super PoPs (points of presence) with bandwidth capacity up to 115 Tbps, advanced caching and acceleration strategies based on best-in-class IP Anycast technology." + + - caption: 'Install GlusterFS Cluster' + type: checkbox + name: glusterfs + value: false + disabled: false + tooltip: "Shared Storage auto-clustering is based on GlusterFS software that provides a fault-tolerant distributed file system with automatic data synchronization across the cluster nodes." + + - type: displayfield + hideLabel: true + hidden: true + name: bl_count + markup: + + - type: separator + + - caption: Topology + type: displayfield + name: topology + tooltip: "

Cluster powered
by LiteSpeed



" + + - type: envname + name: envName + caption: Environment + dependsOn: region + required: true + + - type: string + name: displayName + caption: Display Name + default: Cluster + + - caption: Region + type: regionlist + name: region + disableInactive: true + selectFirstAvailable: true + stateId: "wp" + dependsOn: ownerUid + + - type: owner + name: ownerUid + caption: Owner + +globals: + wp_jps: https://raw.githubusercontent.com/jelastic-jps/wordpress-cluster/v2.2.0 + wp_admin_pass: ${fn.password(10)} + ls_admin_pass: ${fn.password(10)} + db_user: user-${fn.random} + db_pass: ${fn.password(10)} + +onInstall: + - script: /scripts/setGlobals.js?_r=${fn.random} + + - install: + jps: ${globals.wp_jps}/manifest.yml?_r=${fn.random} + envName: ${settings.envName} + region: ${settings.region} + loggerName: ${settings.envName} + displayName: ${settings.displayName} + envGroups: ${globals.envGroups} + ownerUid: ${settings.ownerUid} + settings: + ls-addon: true + waf: ${settings.waf} + glusterfs: ${settings.glusterfs} + wp_protect: ${settings.wp_protect} + galera: true + le-addon: ${settings.le-addon} + cdn-addon: ${settings.cdn-addon} + mu-addon: false + woocommerce: false + DB_USER: ${globals.db_user} + DB_PASS: ${globals.db_pass} + WP_ADMIN_PASS: ${globals.wp_admin_pass} + LS_ADMIN_PASS: ${globals.ls_admin_pass} + success_email: false + project: ${settings.project:default} + projectScope: ${settings.projectScope:production} + + - initNodes: + envName: ${settings.envName} + namespace: targetNodes + + - env.control.ApplyNodeGroupData[cp]: + envName: ${settings.envName} + data: + fixedTopologyLayers: 1 + +actions: + initNodes: + envName: ${this.envName} + namespace: ${this.namespace} + script: | + let nodes = {}, resp = api.env.control.GetEnvInfo(envName, session); + if (resp.result != 0) return resp; + + resp.nodes.sort((node1, node2) => node1.id - node2.id); + + for (let node of resp.nodes) { + nodes[node.nodeGroup] = nodes[node.nodeGroup] || []; + nodes[node.nodeGroup].push(node); + + if (node.ismaster) { + nodes.master = nodes.master || {}; + nodes.master[node.nodeGroup] = node; + } + } + let globals = {}; + globals[namespace] = nodes; + + return { result: 0, onAfterReturn: { setGlobals: globals } } + +success: + email: /success/email/cluster.md?_r=${fn.random} + text: /success/text/cluster.md?_r=${fn.random} diff --git a/images/buddyboss.svg b/images/buddyboss.svg new file mode 100644 index 0000000..b84ebfc --- /dev/null +++ b/images/buddyboss.svg @@ -0,0 +1 @@ +BB_Logos \ No newline at end of file diff --git a/images/cluster.png b/images/cluster.png new file mode 100755 index 0000000000000000000000000000000000000000..7976bfefb554772b79b92a878fed043085d7966b GIT binary patch literal 6252 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 W?bSoo*L!^c0000RedisObject CacheMariaDB Galera ClusterLiteSpeedWeb ServerGlusterFS ClusterLiteSpeedWeb ADCWebApp FirewallLet’s Encrypt SSL \ No newline at end of file diff --git a/images/logo/cluster.png b/images/logo/cluster.png new file mode 100755 index 0000000000000000000000000000000000000000..7976bfefb554772b79b92a878fed043085d7966b GIT binary patch literal 6252 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 W?bSoo*L!^c0000 + + + + + + + + + diff --git a/images/logo/multiregion-standalone.svg b/images/logo/multiregion-standalone.svg new file mode 100755 index 0000000..70e769d --- /dev/null +++ b/images/logo/multiregion-standalone.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/images/logo/standalone-pro.png b/images/logo/standalone-pro.png new file mode 100755 index 0000000000000000000000000000000000000000..4bf71ce008d1d61b643296a16fe81c3aea7b22b0 GIT binary patch literal 3933 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 + + + + + + diff --git a/images/logo/standalone.png b/images/logo/standalone.png new file mode 100755 index 0000000000000000000000000000000000000000..20466802d76bde233680486b878a302c00d266bd GIT binary patch literal 3837 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 + + + + diff --git a/images/logo/woocommerce-cluster.png b/images/logo/woocommerce-cluster.png new file mode 100755 index 0000000000000000000000000000000000000000..7976bfefb554772b79b92a878fed043085d7966b GIT binary patch literal 6252 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 W?bSoo*L!^c0000 + + + + + + + + + diff --git a/images/logo/woocommerce-pro.png b/images/logo/woocommerce-pro.png new file mode 100755 index 0000000000000000000000000000000000000000..4bf71ce008d1d61b643296a16fe81c3aea7b22b0 GIT binary patch literal 3933 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 + + + + + + + diff --git a/images/logo/woocommerce.png b/images/logo/woocommerce.png new file mode 100755 index 0000000000000000000000000000000000000000..20466802d76bde233680486b878a302c00d266bd GIT binary patch literal 3837 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 + + + + + diff --git a/images/multi-region-standalone.svg b/images/multi-region-standalone.svg new file mode 100755 index 0000000..49f6e68 --- /dev/null +++ b/images/multi-region-standalone.svg @@ -0,0 +1 @@ +CONTAINERLet’s Encrypt SSLWeb App FirewallLiteSpeed Web ServerRedis Object CacheMariaDB (Primary)CONTAINERLet’s Encrypt SSLWeb App FirewallLiteSpeed Web ServerRedis Object CacheMariaDB (Primary)Sync \ No newline at end of file diff --git a/images/standalone-pro.png b/images/standalone-pro.png new file mode 100755 index 0000000000000000000000000000000000000000..4bf71ce008d1d61b643296a16fe81c3aea7b22b0 GIT binary patch literal 3933 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’s Encrypt SSLWeb App FirewallLiteSpeed Web ServerRedis Object CacheMariaDB \ No newline at end of file diff --git a/images/standalone.png b/images/standalone.png new file mode 100755 index 0000000000000000000000000000000000000000..20466802d76bde233680486b878a302c00d266bd GIT binary patch literal 3837 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’s Encrypt SSLNGINX Web ServerRedis Object CacheMariaDB (Primary) \ No newline at end of file diff --git a/images/topo/cluster-black-font.svg b/images/topo/cluster-black-font.svg new file mode 100755 index 0000000..0935747 --- /dev/null +++ b/images/topo/cluster-black-font.svg @@ -0,0 +1 @@ +RedisObject CacheMariaDB Galera ClusterLiteSpeedWeb ServerGlusterFS ClusterLiteSpeedWeb ADCWebApp FirewallLets Encrypt SSL \ No newline at end of file diff --git a/images/topo/cluster.svg b/images/topo/cluster.svg new file mode 100755 index 0000000..4d111ad --- /dev/null +++ b/images/topo/cluster.svg @@ -0,0 +1 @@ +RedisObject CacheMariaDB Galera ClusterLiteSpeedWeb ServerGlusterFS ClusterLiteSpeedWeb ADCWebApp FirewallLets Encrypt SSL \ No newline at end of file diff --git a/images/topo/multi-region-standalone-black-font.svg b/images/topo/multi-region-standalone-black-font.svg new file mode 100755 index 0000000..4a28cdf --- /dev/null +++ b/images/topo/multi-region-standalone-black-font.svg @@ -0,0 +1 @@ +CONTAINERLets Encrypt SSLWeb App FirewallLiteSpeed Web ServerRedis Object CacheMariaDB (Primary)CONTAINERLets Encrypt SSLWeb App FirewallLiteSpeed Web ServerRedis Object CacheMariaDB (Primary)Sync \ No newline at end of file diff --git a/images/topo/multi-region-standalone.svg b/images/topo/multi-region-standalone.svg new file mode 100755 index 0000000..31984a0 --- /dev/null +++ b/images/topo/multi-region-standalone.svg @@ -0,0 +1 @@ +CONTAINERLets Encrypt SSLWeb App FirewallLiteSpeed Web ServerRedis Object CacheMariaDB (Primary)CONTAINERLets Encrypt SSLWeb App FirewallLiteSpeed Web ServerRedis Object CacheMariaDB (Primary)Sync \ No newline at end of file diff --git a/images/topo/standalone-black-font.svg b/images/topo/standalone-black-font.svg new file mode 100755 index 0000000..62f8395 --- /dev/null +++ b/images/topo/standalone-black-font.svg @@ -0,0 +1 @@ +CONTAINERLets Encrypt SSLRedis Object CacheMariaDBNGINX Web Server \ No newline at end of file diff --git a/images/topo/standalone-pro-black-font.svg b/images/topo/standalone-pro-black-font.svg new file mode 100755 index 0000000..96a0b6f --- /dev/null +++ b/images/topo/standalone-pro-black-font.svg @@ -0,0 +1 @@ +CONTAINERLets Encrypt SSLWeb App FirewallLiteSpeed Web ServerRedis Object CacheMariaDB \ No newline at end of file diff --git a/images/topo/standalone-pro.svg b/images/topo/standalone-pro.svg new file mode 100755 index 0000000..0ee8668 --- /dev/null +++ b/images/topo/standalone-pro.svg @@ -0,0 +1 @@ +CONTAINERLets Encrypt SSLWeb App FirewallLiteSpeed Web ServerRedis Object CacheMariaDB \ No newline at end of file diff --git a/images/topo/standalone.svg b/images/topo/standalone.svg new file mode 100755 index 0000000..fbca0f3 --- /dev/null +++ b/images/topo/standalone.svg @@ -0,0 +1 @@ +CONTAINERLets Encrypt SSLRedis Object CacheMariaDBNGINX Web Server \ No newline at end of file diff --git a/images/topo/woocommerce-cluster.svg b/images/topo/woocommerce-cluster.svg new file mode 100755 index 0000000..4d111ad --- /dev/null +++ b/images/topo/woocommerce-cluster.svg @@ -0,0 +1 @@ +RedisObject CacheMariaDB Galera ClusterLiteSpeedWeb ServerGlusterFS ClusterLiteSpeedWeb ADCWebApp FirewallLets Encrypt SSL \ No newline at end of file diff --git a/images/topo/woocommerce-pro.svg b/images/topo/woocommerce-pro.svg new file mode 100755 index 0000000..0ee8668 --- /dev/null +++ b/images/topo/woocommerce-pro.svg @@ -0,0 +1 @@ +CONTAINERLets Encrypt SSLWeb App FirewallLiteSpeed Web ServerRedis Object CacheMariaDB \ No newline at end of file diff --git a/images/topo/woocommerce.svg b/images/topo/woocommerce.svg new file mode 100755 index 0000000..fbca0f3 --- /dev/null +++ b/images/topo/woocommerce.svg @@ -0,0 +1 @@ +CONTAINERLets Encrypt SSLRedis Object CacheMariaDBNGINX Web Server \ No newline at end of file diff --git a/images/woocommerce-cluster.png b/images/woocommerce-cluster.png new file mode 100755 index 0000000000000000000000000000000000000000..7976bfefb554772b79b92a878fed043085d7966b GIT binary patch literal 6252 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�T2Es^9e9r3+`7&^7 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 literal 0 HcmV?d00001 diff --git a/scratchpad b/scratchpad new file mode 100644 index 0000000..7d85bb7 --- /dev/null +++ b/scratchpad @@ -0,0 +1,46 @@ +# Overview + +PHP memory: 256MB +Opcache: 512MB +Interned Strings: 64MB +ffmpeg: ✔ +imagemagick: ✔ + +#updates opcache settings + +sed -i 's,^memory_limit.*$,memory_limit=256M,' /usr/local/lsws/lsphp/etc/php.ini + +cd /usr/local/lsws/lsphp/etc/php.d +sed -i 's,^opcache.enable.*$,opcache.enable=1,' 10-opcache.ini +sed -i 's,^opcache.memory_consumption.*$,opcache.memory_consumption=512,' 10-opcache.ini +sed -i 's,^opcache.interned_strings_buffer.*$,opcache.interned_strings_buffer=64,' 10-opcache.ini + + +#install ffmpeg +sudo yum -y install epel-release +sudo yum -y localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm -yes +sudo yum -y install ffmpeg ffmpeg-devel + +#install imagemagick +# already appears to work by default in new packages +# https://stackoverflow.com/questions/4208253/verify-imagemagick-installation +# https://bobcares.com/blog/install-imagemagick-on-centos/ + + +#nginx conf rules +#https://www.buddyboss.com/resources/docs/components/media/media-permissions/#nginx + +#litespeed htaccess rules +# should automatically apply per https://www.buddyboss.com/resources/docs/components/media/media-permissions/#openlitespeed since we automatically load htaccess files + + + +## TODO +disable options: + lets encrypt + brute force + webapp firewall + +Remove firewall rule that screws up BB app + +Check against other performance optimization best practices (Ben's old doc) \ No newline at end of file diff --git a/scripts/buddyboss-config.sh b/scripts/buddyboss-config.sh new file mode 100644 index 0000000..1e06802 --- /dev/null +++ b/scripts/buddyboss-config.sh @@ -0,0 +1,10 @@ +#!/bin/bash -e + +sed -i 's,^memory_limit.*$,memory_limit=256M,' /usr/local/lsws/lsphp/etc/php.ini +cd /usr/local/lsws/lsphp/etc/php.d +sed -i 's,^opcache.enable.*$,opcache.enable=1,' 10-opcache.ini +sed -i 's,^opcache.memory_consumption.*$,opcache.memory_consumption=512,' 10-opcache.ini +sed -i 's,^opcache.interned_strings_buffer.*$,opcache.interned_strings_buffer=64,' 10-opcache.ini +sudo yum -y install epel-release +sudo yum -y localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm +sudo yum -y install ffmpeg ffmpeg-devel \ No newline at end of file diff --git a/scripts/onBeforeInit.js b/scripts/onBeforeInit.js new file mode 100755 index 0000000..83664c4 --- /dev/null +++ b/scripts/onBeforeInit.js @@ -0,0 +1,65 @@ +import com.hivext.api.Response; + +var cdnAppid = "c05ffa5b45628a2a0c95467ebca8a0b4", + lsAppid = "9e6afcf310004ac84060f90ff41a5aba", + fields = {}, + field, + resp, + LS = "ls-addon", + CDN = "cdn-addon"; + +function defineAppFields(appid, name) { + resp = jelastic.dev.apps.GetApp(appid); + + if (resp.result == 0 || resp.result == Response.PERMISSION_DENIED) { + fields[name].hidden = false; + fields[name].value = true; + } else { + fields[name].hidden = true; + fields[name].value = false; + } +} + +jps.settings = jps.settings || {}; +jps.settings.fields = jps.settings.fields || []; + +if (jps.settings.fields.length) { + for (var i = 0, n = jps.settings.fields.length; i < n; i++) { + field = jps.settings.fields[i]; + fields[field.name] = field; + } + + if (fields[CDN]) defineAppFields(cdnAppid, CDN); + if (fields[LS]) defineAppFields(lsAppid, LS); + +} + +resp = api.environment.control.GetEnvs(); +if (resp.result != 0) return resp; + +if (parseInt("${quota.environment.maxcount:0}", 10) <= resp.infos.length) { + jps.settings.fields.push({ + type: "displayfield", + cls: "warning", + height: 30, + hideLabel: true, + hidden: false, + markup: "The number of environments is limited to ${quota.environment.maxcount} per account. Please contact support to get extended possibilities." + }); + jps.settings.fields.push({ + "type": "compositefield", + "height": 0, + "hideLabel": true, + "width": 0, + "items": [{ + "height": 0, + "type": "string", + "required": true, + }] + }); +} + +return { + result: 0, + settings: jps.settings +}; diff --git a/scripts/setGlobals.js b/scripts/setGlobals.js new file mode 100755 index 0000000..a3ce1c2 --- /dev/null +++ b/scripts/setGlobals.js @@ -0,0 +1,16 @@ +var envGroups = eval('(' + MANIFEST + ')').envGroups, + onAfterReturn = { setGlobals: {} }, + glbs = onAfterReturn.setGlobals, + resp; +resp = jelastic.env.control.GetRegionsInner(appid, session, '${account.group}', true); +if (resp.result != 0) return resp; +resp = resp.array; +glbs["domain"] = resp[0].domain; +for (var i = 0, n = resp.length; i < n; i++) { + for (var k = 0, l = resp[i].hardNodeGroups.length; k < l; k++) { + if (resp[i].hardNodeGroups[k].uniqueName == '${settings.region}') + glbs["domain"] = resp[i].domain; + } +} +glbs["envGroups"] = envGroups; +return { result: 0, onAfterReturn: onAfterReturn }; diff --git a/standalone-pro.yml b/standalone-pro.yml new file mode 100755 index 0000000..ea56180 --- /dev/null +++ b/standalone-pro.yml @@ -0,0 +1,126 @@ +type: install +jpsVersion: 7.1.1 +id: wp-edition-standalone-pro +categories: + - wordpress +targetEditions: wordpress +name: Standalone Pro +baseUrl: https://raw.githubusercontent.com/jelastic-jps/wordpress-edition/master +logo: /images/logo/standalone-pro.svg +description: + text: /text/standalone-pro.md + short: Single instance powered by LiteSpeed + +onBeforeInit: /scripts/onBeforeInit.js + +settings: + fields: + - caption: Advanced Features + type: displayfield + name: displayfield + markup: + + - caption: WordPress Brute Force Attack Protection + type: checkbox + name: wp_protect + value: true + disabled: false + tooltip: "Secure WordPress Admin Panel with LiteSpeed Brute Force Protection that limits failed login attempts. Default action is Throttle and number of allowed attempts is 100" + + - caption: Web Application Firewall + type: checkbox + name: waf + value: true + disabled: false + tooltip: "Protect web sites with LiteSpeed built-in WAF based on Free ModSecurity Rules from Comodo" + + - caption: Install Let's Encrypt SSL with Auto-Renewal + type: checkbox + name: le-addon + value: true + disabled: false + tooltip: "Advanced integration with Let's Encrypt certificate authority that simplifies and automates the process of issuing, configuring and updating trusted custom SSL certificates." + + - caption: Install Lightning-Fast Premium CDN + type: checkbox + name: cdn-addon + value: true + disabled: false + tooltip: "Jelastic CDN is an HTTP/3 premium content delivery network of 160+ Super PoPs (points of presence) with bandwidth capacity up to 115 Tbps, advanced caching and acceleration strategies based on best-in-class IP Anycast technology." + + - type: displayfield + hideLabel: true + hidden: true + name: bl_count + markup: + + - type: separator + + - caption: Topology + type: displayfield + name: topology + tooltip: "

Single instance powered by
LiteSpeed Web Server



" + + - type: envname + name: envName + caption: Environment + dependsOn: region + required: true + + - type: string + name: displayName + caption: Display Name + default: Standalone Pro + + - caption: Region + type: regionlist + name: region + disableInactive: true + selectFirstAvailable: true + stateId: "wp" + dependsOn: ownerUid + + - type: owner + name: ownerUid + caption: Owner + +globals: + wp_jps: https://raw.githubusercontent.com/jelastic-jps/wordpress/v2.2.0 + wp_admin_pass: ${fn.password(10)} + db_user: user-${fn.random} + db_pass: ${fn.password(10)} + +onInstall: + - script: /scripts/setGlobals.js?_r=${fn.random} + + - install: + jps: https://raw.githubusercontent.com/jelastic-jps/wordpress/v2.2.0/manifest.yml?_r=${fn.random} + envName: ${settings.envName} + region: ${settings.region} + loggerName: ${settings.envName} + displayName: ${settings.displayName} + envGroups: ${globals.envGroups} + ownerUid: ${settings.ownerUid} + settings: + ls-addon: true + waf: ${settings.waf} + wp_protect: ${settings.wp_protect} + le-addon: ${settings.le-addon} + cdn-addon: ${settings.cdn-addon} + mu-addon: false + woocommerce: false + DB_USER: ${globals.db_user} + DB_PASS: ${globals.db_pass} + WP_ADMIN_PASS: ${globals.wp_admin_pass} + success_email: false + project: ${settings.project:default} + projectScope: ${settings.projectScope:production} + + - env.control.ApplyNodeGroupData[cp]: + envName: ${settings.envName} + data: + fixedTopologyLayers: 1 + +success: + email: /success/email/standalone-pro.md?_r=${fn.random} + text: /success/text/standalone-pro.md?_r=${fn.random} diff --git a/standalone.yml b/standalone.yml new file mode 100755 index 0000000..62c021f --- /dev/null +++ b/standalone.yml @@ -0,0 +1,121 @@ +type: install +jpsVersion: 7.1.1 +id: wp-edition-standalone +categories: + - wordpress +targetEditions: wordpress +name: Standalone +baseUrl: https://raw.githubusercontent.com/jelastic-jps/wordpress-edition/master +logo: /images/logo/standalone.svg +description: + text: /text/standalone.md + short: Single instance powered by NGINX Web Server + +onBeforeInit: /scripts/onBeforeInit.js + +settings: + fields: + - caption: Advanced Features + type: displayfield + name: displayfield + markup: + + - caption: Install Let's Encrypt SSL with Auto-Renewal + type: checkbox + name: le-addon + value: true + disabled: false + tooltip: "Advanced integration with Let's Encrypt certificate authority that simplifies and automates the process of issuing, configuring and updating trusted custom SSL certificates." + + - caption: Install Lightning-Fast Premium CDN + type: checkbox + name: cdn-addon + value: true + disabled: false + tooltip: "Jelastic CDN is an HTTP/3 premium content delivery network of 160+ Super PoPs (points of presence) with bandwidth capacity up to 115 Tbps, advanced caching and acceleration strategies based on best-in-class IP Anycast technology." + + - type: displayfield + hideLabel: true + hidden: true + name: bl_count + markup: + + - type: separator + + - caption: Topology + type: displayfield + name: topology + tooltip: "

Single instance powered by
NGINX Web Server



" + + - type: envname + name: envName + caption: Environment + dependsOn: region + required: true + + - type: string + name: displayName + caption: Display Name + default: Standalone + + - caption: Region + type: regionlist + name: region + disableInactive: true + selectFirstAvailable: true + stateId: "wp" + dependsOn: ownerUid + + - type: owner + name: ownerUid + caption: Owner + +globals: + wp_jps: https://raw.githubusercontent.com/jelastic-jps/wordpress/v2.2.0 + wp_admin_pass: ${fn.password(10)} + db_user: user-${fn.random} + db_pass: ${fn.password(10)} + PROTOCOL: http + +onInstall: + - script: /scripts/setGlobals.js?_r=${fn.random} + + - install: + jps: ${globals.wp_jps}/manifest.yml?_r=${fn.random} + envName: ${settings.envName} + region: ${settings.region} + loggerName: ${settings.envName} + displayName: ${settings.displayName} + envGroups: ${globals.envGroups} + ownerUid: ${settings.ownerUid} + settings: + ls-addon: false + waf: false + wp_protect: false + le-addon: ${settings.le-addon} + cdn-addon: ${settings.cdn-addon} + mu-addon: false + woocommerce: false + DB_USER: ${globals.db_user} + DB_PASS: ${globals.db_pass} + WP_ADMIN_PASS: ${globals.wp_admin_pass} + success_email: false + project: ${settings.project:default} + projectScope: ${settings.projectScope:production} + + - env.control.ApplyNodeGroupData[cp]: + envName: ${settings.envName} + data: + fixedTopologyLayers: 1 + + - setProtocol + +actions: + setProtocol: + if (${quota.environment.jelasticssl.enabled} || "${settings.le-addon:false}"): + setGlobals: + PROTOCOL: https + +success: + email: /success/email/standalone.md?_r=${fn.random} + text: /success/text/standalone.md?_r=${fn.random} diff --git a/success/email/buddyboss-pro.md b/success/email/buddyboss-pro.md new file mode 100755 index 0000000..0df3871 --- /dev/null +++ b/success/email/buddyboss-pro.md @@ -0,0 +1,18 @@ +**WordPress URL**: [https://${settings.envName}.${globals.domain}/](https://${settings.envName}.${globals.domain}/) + +Please use the following data to access the admin panels: + +WordPress Admin Panel: +**URL**: [https://${settings.envName}.${globals.domain}/wp-admin/](https://${settings.envName}.${globals.domain}/wp-admin/) +**Login**: ${user.email} +**Password**: ${globals.wp_admin_pass} + +LiteSpeed Admin Panel: +**URL**: [https://${settings.envName}.${globals.domain}:4848/](https://${settings.envName}.${globals.domain}:4848/) +**Login**: admin +**Password**: ${globals.db_pass} + +phpMyAdmin Panel: +**URL**: [https://${settings.envName}.${globals.domain}:8443/](https://${settings.envName}.${globals.domain}:8443/) +**Username**: ${globals.db_user} +**Password**: ${globals.db_pass} diff --git a/success/email/cluster.md b/success/email/cluster.md new file mode 100755 index 0000000..154ab7a --- /dev/null +++ b/success/email/cluster.md @@ -0,0 +1,23 @@ +**WordPress URL**: [https://${settings.envName}.${globals.domain}/](https://${settings.envName}.${globals.domain}/) + +Please use the following data to access the admin panels: + +WordPress Admin Panel: +**URL**: [https://${settings.envName}.${globals.domain}/wp-admin/](https://${settings.envName}.${globals.domain}/wp-admin/) +**Login**: ${user.email} +**Password**: ${globals.wp_admin_pass} + +LiteSpeed ADC admin Panel: +**URL**: [https://node${nodes.bl.master.id:[globals.targetNodes.master.bl.id]}-${settings.envName}.${globals.domain}:4848](https://node${nodes.bl.master.id:[globals.targetNodes.master.bl.id]}-${settings.envName}.${globals.domain}:4848) +**Login**: admin +**Password**: ${globals.ls_admin_pass} + +LiteSpeed WEB Server admin Panel: +**URL**: [https://node${nodes.cp.master.id:[globals.targetNodes.master.cp.id]}-${settings.envName}.${globals.domain}:4848](https://node${nodes.bl.master.id:[globals.targetNodes.master.cp.id]}-${settings.envName}.${globals.domain}:4848) +**Login**: admin +**Password**: ${globals.ls_admin_pass} + +phpMyAdmin Panel: +**URL**: [https://node${nodes.sqldb.master.id:[globals.targetNodes.master.sqldb.id]}-${settings.envName}.${globals.domain}/](https://node${nodes.sqldb.master.id:[globals.targetNodes.master.sqldb.id]}-${settings.envName}.${globals.domain}/) +**Username**: ${globals.db_user} +**Password**: ${globals.db_pass} diff --git a/success/email/standalone-pro.md b/success/email/standalone-pro.md new file mode 100755 index 0000000..0df3871 --- /dev/null +++ b/success/email/standalone-pro.md @@ -0,0 +1,18 @@ +**WordPress URL**: [https://${settings.envName}.${globals.domain}/](https://${settings.envName}.${globals.domain}/) + +Please use the following data to access the admin panels: + +WordPress Admin Panel: +**URL**: [https://${settings.envName}.${globals.domain}/wp-admin/](https://${settings.envName}.${globals.domain}/wp-admin/) +**Login**: ${user.email} +**Password**: ${globals.wp_admin_pass} + +LiteSpeed Admin Panel: +**URL**: [https://${settings.envName}.${globals.domain}:4848/](https://${settings.envName}.${globals.domain}:4848/) +**Login**: admin +**Password**: ${globals.db_pass} + +phpMyAdmin Panel: +**URL**: [https://${settings.envName}.${globals.domain}:8443/](https://${settings.envName}.${globals.domain}:8443/) +**Username**: ${globals.db_user} +**Password**: ${globals.db_pass} diff --git a/success/email/standalone.md b/success/email/standalone.md new file mode 100755 index 0000000..042a24c --- /dev/null +++ b/success/email/standalone.md @@ -0,0 +1,13 @@ +**WordPress URL**: [${globals.PROTOCOL}://${settings.envName}.${globals.domain}/](${globals.PROTOCOL}://${settings.envName}.${globals.domain}/) + +Please use the following data to access the admin panels: + +WordPress Admin Panel: +**URL**: [${globals.PROTOCOL}://${settings.envName}.${globals.domain}/wp-admin/](${globals.PROTOCOL}://${settings.envName}.${globals.domain}/wp-admin/) +**Login**: ${user.email} +**Password**: ${globals.wp_admin_pass} + +phpMyAdmin Panel: +**URL**: [https://${settings.envName}.${globals.domain}:8443/](https://${settings.envName}.${globals.domain}:8443/) +**Username**: ${globals.db_user} +**Password**: ${globals.db_pass} diff --git a/success/email/woocommerce-cluster.md b/success/email/woocommerce-cluster.md new file mode 100755 index 0000000..154ab7a --- /dev/null +++ b/success/email/woocommerce-cluster.md @@ -0,0 +1,23 @@ +**WordPress URL**: [https://${settings.envName}.${globals.domain}/](https://${settings.envName}.${globals.domain}/) + +Please use the following data to access the admin panels: + +WordPress Admin Panel: +**URL**: [https://${settings.envName}.${globals.domain}/wp-admin/](https://${settings.envName}.${globals.domain}/wp-admin/) +**Login**: ${user.email} +**Password**: ${globals.wp_admin_pass} + +LiteSpeed ADC admin Panel: +**URL**: [https://node${nodes.bl.master.id:[globals.targetNodes.master.bl.id]}-${settings.envName}.${globals.domain}:4848](https://node${nodes.bl.master.id:[globals.targetNodes.master.bl.id]}-${settings.envName}.${globals.domain}:4848) +**Login**: admin +**Password**: ${globals.ls_admin_pass} + +LiteSpeed WEB Server admin Panel: +**URL**: [https://node${nodes.cp.master.id:[globals.targetNodes.master.cp.id]}-${settings.envName}.${globals.domain}:4848](https://node${nodes.bl.master.id:[globals.targetNodes.master.cp.id]}-${settings.envName}.${globals.domain}:4848) +**Login**: admin +**Password**: ${globals.ls_admin_pass} + +phpMyAdmin Panel: +**URL**: [https://node${nodes.sqldb.master.id:[globals.targetNodes.master.sqldb.id]}-${settings.envName}.${globals.domain}/](https://node${nodes.sqldb.master.id:[globals.targetNodes.master.sqldb.id]}-${settings.envName}.${globals.domain}/) +**Username**: ${globals.db_user} +**Password**: ${globals.db_pass} diff --git a/success/email/woocommerce.md b/success/email/woocommerce.md new file mode 100755 index 0000000..8bb96f5 --- /dev/null +++ b/success/email/woocommerce.md @@ -0,0 +1,13 @@ +**WordPress URL**: [https://${settings.envName}.${globals.domain}/](https://${settings.envName}.${globals.domain}/) + +Please use the following data to access the admin panels: + +WordPress Admin Panel: +**URL**: [https://${settings.envName}.${globals.domain}/wp-admin/](https://${settings.envName}.${globals.domain}/wp-admin/) +**Login**: ${user.email} +**Password**: ${globals.wp_admin_pass} + +phpMyAdmin Panel: +**URL**: [https://${settings.envName}.${globals.domain}:8443/](https://${settings.envName}.${globals.domain}:8443/) +**Username**: ${globals.db_user} +**Password**: ${globals.db_pass} diff --git a/success/text/buddyboss-pro.md b/success/text/buddyboss-pro.md new file mode 100755 index 0000000..1e7faf5 --- /dev/null +++ b/success/text/buddyboss-pro.md @@ -0,0 +1,18 @@ +**WordPress URL**: [https://${settings.envName}.${globals.domain}/](https://${settings.envName}.${globals.domain}/) + +Please use the following data to access the admin panels: + +WordPress Admin Panel: +**URL**: [https://${settings.envName}.${globals.domain}/wp-admin/](https://${settings.envName}.${globals.domain}/wp-admin/) +**Login**: ${user.email} +**Password**: ${globals.wp_admin_pass} + +LiteSpeed Admin Panel: +**URL**: [https://${settings.envName}.${globals.domain}:4848/](https://${settings.envName}.${globals.domain}:4848/) +**Login**: admin +**Password**: ${globals.db_pass} + +PhpMyAdmin Admin Panel: +**URL**: [https://${settings.envName}.${globals.domain}:8443/](https://${settings.envName}.${globals.domain}:8443/) +**Username**: ${globals.db_user} +**Password**: ${globals.db_pass} diff --git a/success/text/cluster.md b/success/text/cluster.md new file mode 100755 index 0000000..47a254e --- /dev/null +++ b/success/text/cluster.md @@ -0,0 +1,18 @@ +**WordPress URL**: [https://${settings.envName}.${globals.domain}/](https://${settings.envName}.${globals.domain}/) + +Please use the following data to access the admin panels: + +WordPress Admin Panel: +**URL**: [https://${settings.envName}.${globals.domain}/wp-admin/](https://${settings.envName}.${globals.domain}/wp-admin/) +**Login**: ${user.email} +**Password**: ${globals.wp_admin_pass} + +The instructions below can help you with further managing your WordPress: + +* [Bind custom domain](https://docs.jelastic.com/custom-domain-via-cname) +* [Share access to the environment](http://docs.jelastic.com/share-environment) +* [Adjust automatic vertical scaling settings](http://docs.jelastic.com/automatic-vertical-scaling) +* [Configure automatic horizontal scaling](http://docs.jelastic.com/automatic-horizontal-scaling) +* [Monitor the statistics](http://docs.jelastic.com/view-app-statistics) & [view log files](https://docs.jelastic.com/view-log-files) +* [Attach Public IP](https://docs.jelastic.com/public-ip) +* [Access environment via SSH](https://docs.jelastic.com/ssh-access) diff --git a/success/text/standalone-pro.md b/success/text/standalone-pro.md new file mode 100755 index 0000000..1e7faf5 --- /dev/null +++ b/success/text/standalone-pro.md @@ -0,0 +1,18 @@ +**WordPress URL**: [https://${settings.envName}.${globals.domain}/](https://${settings.envName}.${globals.domain}/) + +Please use the following data to access the admin panels: + +WordPress Admin Panel: +**URL**: [https://${settings.envName}.${globals.domain}/wp-admin/](https://${settings.envName}.${globals.domain}/wp-admin/) +**Login**: ${user.email} +**Password**: ${globals.wp_admin_pass} + +LiteSpeed Admin Panel: +**URL**: [https://${settings.envName}.${globals.domain}:4848/](https://${settings.envName}.${globals.domain}:4848/) +**Login**: admin +**Password**: ${globals.db_pass} + +PhpMyAdmin Admin Panel: +**URL**: [https://${settings.envName}.${globals.domain}:8443/](https://${settings.envName}.${globals.domain}:8443/) +**Username**: ${globals.db_user} +**Password**: ${globals.db_pass} diff --git a/success/text/standalone.md b/success/text/standalone.md new file mode 100755 index 0000000..d717868 --- /dev/null +++ b/success/text/standalone.md @@ -0,0 +1,13 @@ +**WordPress URL**: [${globals.PROTOCOL}://${settings.envName}.${globals.domain}/](${globals.PROTOCOL}://${settings.envName}.${globals.domain}/) + +Please use the following data to access the admin panels: + +WordPress Admin Panel: +**URL**: [${globals.PROTOCOL}://${settings.envName}.${globals.domain}/wp-admin/](${globals.PROTOCOL}://${settings.envName}.${globals.domain}/wp-admin/) +**Login**: ${user.email} +**Password**: ${globals.wp_admin_pass} + +PhpMyAdmin Admin Panel: +**URL**: [https://${settings.envName}.${globals.domain}:8443/](https://${settings.envName}.${globals.domain}:8443/) +**Username**: ${globals.db_user} +**Password**: ${globals.db_pass} diff --git a/success/text/woocommerce-cluster.md b/success/text/woocommerce-cluster.md new file mode 100755 index 0000000..47a254e --- /dev/null +++ b/success/text/woocommerce-cluster.md @@ -0,0 +1,18 @@ +**WordPress URL**: [https://${settings.envName}.${globals.domain}/](https://${settings.envName}.${globals.domain}/) + +Please use the following data to access the admin panels: + +WordPress Admin Panel: +**URL**: [https://${settings.envName}.${globals.domain}/wp-admin/](https://${settings.envName}.${globals.domain}/wp-admin/) +**Login**: ${user.email} +**Password**: ${globals.wp_admin_pass} + +The instructions below can help you with further managing your WordPress: + +* [Bind custom domain](https://docs.jelastic.com/custom-domain-via-cname) +* [Share access to the environment](http://docs.jelastic.com/share-environment) +* [Adjust automatic vertical scaling settings](http://docs.jelastic.com/automatic-vertical-scaling) +* [Configure automatic horizontal scaling](http://docs.jelastic.com/automatic-horizontal-scaling) +* [Monitor the statistics](http://docs.jelastic.com/view-app-statistics) & [view log files](https://docs.jelastic.com/view-log-files) +* [Attach Public IP](https://docs.jelastic.com/public-ip) +* [Access environment via SSH](https://docs.jelastic.com/ssh-access) diff --git a/success/text/woocommerce.md b/success/text/woocommerce.md new file mode 100755 index 0000000..56addc5 --- /dev/null +++ b/success/text/woocommerce.md @@ -0,0 +1,13 @@ +**WordPress URL**: [https://${settings.envName}.${globals.domain}/](https://${settings.envName}.${globals.domain}/) + +Please use the following data to access the admin panels: + +WordPress Admin Panel: +**URL**: [https://${settings.envName}.${globals.domain}/wp-admin/](https://${settings.envName}.${globals.domain}/wp-admin/) +**Login**: ${user.email} +**Password**: ${globals.wp_admin_pass} + +PhpMyAdmin Admin Panel: +**URL**: [https://${settings.envName}.${globals.domain}:8443/](https://${settings.envName}.${globals.domain}:8443/) +**Username**: ${globals.db_user} +**Password**: ${globals.db_pass} diff --git a/text/buddyboss-pro.md b/text/buddyboss-pro.md new file mode 100755 index 0000000..f0b1402 --- /dev/null +++ b/text/buddyboss-pro.md @@ -0,0 +1 @@ +A single-node Litespeed-powered WordPress environment specifically optimized for BuddyBoss via increased memory limits, Opcache optimization, and BuddyBoss-specific object cache configurations. diff --git a/text/cluster.md b/text/cluster.md new file mode 100755 index 0000000..27c3aaf --- /dev/null +++ b/text/cluster.md @@ -0,0 +1 @@ +A WordPress cluster deployed and pre-configured with an optimized software stack, including a LiteSpeed web server, MariaDB SQL database server (SQL replication or Galera cluster), Redis as an object cache, and an NFS or GlusterFS cluster as the distributed filesystem volume. Ideal for projects that require high availability, scalability and unmatched quality and performance for a superior end-user experience. diff --git a/text/standalone-pro.md b/text/standalone-pro.md new file mode 100755 index 0000000..b39458b --- /dev/null +++ b/text/standalone-pro.md @@ -0,0 +1 @@ +Same as the Standalone package, but using the commercial edition of the LiteSpeed Web Server instead of NGINX. Also includes seamless integration with the LiteSpeed WordPress Plugin for better quality, resource utilization and performance. diff --git a/text/standalone.md b/text/standalone.md new file mode 100755 index 0000000..57c5cc8 --- /dev/null +++ b/text/standalone.md @@ -0,0 +1 @@ +A single isolated WordPress instance deployed and pre-configured with an NGINX web server, MariaDB SQL database server and Redis as an object cache. Ideal for small and medium-sized websites and development environments that don’t need scalability or high availability. diff --git a/text/woocommerce-cluster.md b/text/woocommerce-cluster.md new file mode 100755 index 0000000..1f33dd6 --- /dev/null +++ b/text/woocommerce-cluster.md @@ -0,0 +1 @@ +A fusion of the Cluster and WooCommerce packages. Ideal for eCommerce businesses that need to serve hundreds or thousands of concurrent users and handle any load spike. With WooCommerce Cluster you can run campaigns without worrying about downtime or slow performance damaging your reputation and brand. diff --git a/text/woocommerce.md b/text/woocommerce.md new file mode 100755 index 0000000..f1adee8 --- /dev/null +++ b/text/woocommerce.md @@ -0,0 +1 @@ +Same as the Standalone package, but with a pre-installed and optimized WooCommerce plugin. Ideal for smaller e-commerce businesses that don't need to serve hundreds or thousands of concurrent shopping cart users, or deal with unexpected load-spikes. diff --git a/woocommerce-cluster.yml b/woocommerce-cluster.yml new file mode 100755 index 0000000..4af2393 --- /dev/null +++ b/woocommerce-cluster.yml @@ -0,0 +1,165 @@ +type: install +jpsVersion: 7.1.1 +id: wp-edition-woocommerce-cluster +categories: + - wordpress +targetEditions: wordpress +name: WooCommerce Cluster +baseUrl: https://raw.githubusercontent.com/jelastic-jps/wordpress-edition/master +logo: /images/logo/woocommerce-cluster.svg +description: + text: /text/woocommerce-cluster.md + short: WooCommerce Cluster powered by LiteSpeed + +onBeforeInit: /scripts/onBeforeInit.js + +settings: + fields: + - caption: Advanced Features + type: displayfield + name: displayfield + markup: + + - caption: WordPress Brute Force Attack Protection + type: checkbox + name: wp_protect + value: true + disabled: false + tooltip: "Secure WordPress Admin Panel with LiteSpeed Brute Force Protection that limits failed login attempts. Default action is Throttle and number of allowed attempts is 100" + + - caption: Web Application Firewall + type: checkbox + name: waf + value: true + disabled: false + tooltip: "Protect web sites with LiteSpeed built-in WAF based on Free ModSecurity Rules from Comodo" + + - caption: Install Let's Encrypt SSL with Auto-Renewal + type: checkbox + name: le-addon + value: true + disabled: false + tooltip: "Advanced integration with Let's Encrypt certificate authority that simplifies and automates the process of issuing, configuring and updating trusted custom SSL certificates." + + - caption: Install Lightning-Fast Premium CDN + type: checkbox + name: cdn-addon + value: true + disabled: false + tooltip: "Jelastic CDN is an HTTP/3 premium content delivery network of 160+ Super PoPs (points of presence) with bandwidth capacity up to 115 Tbps, advanced caching and acceleration strategies based on best-in-class IP Anycast technology." + + - caption: 'Install GlusterFS Cluster' + type: checkbox + name: glusterfs + value: false + disabled: false + tooltip: "Shared Storage auto-clustering is based on GlusterFS software that provides a fault-tolerant distributed file system with automatic data synchronization across the cluster nodes." + + - type: displayfield + hideLabel: true + hidden: true + name: bl_count + markup: + + - type: separator + + - caption: Topology + type: displayfield + name: topology + tooltip: "

WooCommerce Cluster powered
by LiteSpeed



" + + - type: envname + name: envName + caption: Environment + dependsOn: region + required: true + + - type: string + name: displayName + caption: Display Name + default: WooCommerce Cluster + + - caption: Region + type: regionlist + name: region + disableInactive: true + selectFirstAvailable: true + stateId: "wp" + dependsOn: ownerUid + + - type: owner + name: ownerUid + caption: Owner + +globals: + wp_jps: https://raw.githubusercontent.com/jelastic-jps/wordpress-cluster/v2.2.0 + wp_admin_pass: ${fn.password(10)} + ls_admin_pass: ${fn.password(10)} + db_user: user-${fn.random} + db_pass: ${fn.password(10)} + +onInstall: + - script: /scripts/setGlobals.js?_r=${fn.random} + + - install: + jps: ${globals.wp_jps}/manifest.yml?_r=${fn.random} + envName: ${settings.envName} + region: ${settings.region} + loggerName: ${settings.envName} + displayName: ${settings.displayName} + envGroups: ${globals.envGroups} + ownerUid: ${settings.ownerUid} + settings: + ls-addon: true + waf: ${settings.waf} + glusterfs: ${settings.glusterfs} + wp_protect: ${settings.wp_protect} + galera: true + le-addon: ${settings.le-addon} + cdn-addon: ${settings.cdn-addon} + mu-addon: false + woocommerce: true + DB_USER: ${globals.db_user} + DB_PASS: ${globals.db_pass} + WP_ADMIN_PASS: ${globals.wp_admin_pass} + LS_ADMIN_PASS: ${globals.ls_admin_pass} + success_email: false + project: ${settings.project:default} + projectScope: ${settings.projectScope:production} + + - initNodes: + envName: ${settings.envName} + namespace: targetNodes + + - env.control.ApplyNodeGroupData[cp]: + envName: ${settings.envName} + data: + fixedTopologyLayers: 1 + +actions: + initNodes: + envName: ${this.envName} + namespace: ${this.namespace} + script: | + let nodes = {}, resp = api.env.control.GetEnvInfo(envName, session); + if (resp.result != 0) return resp; + + resp.nodes.sort((node1, node2) => node1.id - node2.id); + + for (let node of resp.nodes) { + nodes[node.nodeGroup] = nodes[node.nodeGroup] || []; + nodes[node.nodeGroup].push(node); + + if (node.ismaster) { + nodes.master = nodes.master || {}; + nodes.master[node.nodeGroup] = node; + } + } + let globals = {}; + globals[namespace] = nodes; + + return { result: 0, onAfterReturn: { setGlobals: globals } } + +success: + email: /success/email/woocommerce-cluster.md?_r=${fn.random} + text: /success/text/woocommerce-cluster.md?_r=${fn.random} diff --git a/woocommerce.yml b/woocommerce.yml new file mode 100755 index 0000000..c6f912a --- /dev/null +++ b/woocommerce.yml @@ -0,0 +1,112 @@ +type: install +jpsVersion: 7.1.1 +id: wp-edition-woocommerce +categories: + - wordpress +targetEditions: wordpress +name: WooCommerce +baseUrl: https://raw.githubusercontent.com/jelastic-jps/wordpress-edition/master +logo: /images/logo/woocommerce.svg +description: + text: /text/woocommerce.md + short: Single instance WooCommerce powered by NGINX + +onBeforeInit: /scripts/onBeforeInit.js + +settings: + fields: + - caption: Advanced Features + type: displayfield + name: displayfield + markup: + + - caption: Install Let's Encrypt SSL with Auto-Renewal + type: checkbox + name: le-addon + value: true + disabled: false + tooltip: "Advanced integration with Let's Encrypt certificate authority that simplifies and automates the process of issuing, configuring and updating trusted custom SSL certificates." + + - caption: Install Lightning-Fast Premium CDN + type: checkbox + name: cdn-addon + value: true + disabled: false + tooltip: "Jelastic CDN is an HTTP/3 premium content delivery network of 160+ Super PoPs (points of presence) with bandwidth capacity up to 115 Tbps, advanced caching and acceleration strategies based on best-in-class IP Anycast technology." + + - type: displayfield + hideLabel: true + hidden: true + name: bl_count + markup: + + - type: separator + + - caption: Topology + type: displayfield + name: topology + tooltip: "

Single instance WooCommerce
powered by NGINX



" + + - type: envname + name: envName + caption: Environment + dependsOn: region + required: true + + - type: string + name: displayName + caption: Display Name + default: WooCommerce + + - caption: Region + type: regionlist + name: region + disableInactive: true + selectFirstAvailable: true + stateId: "wp" + dependsOn: ownerUid + + - type: owner + name: ownerUid + caption: Owner + +globals: + wp_jps: https://raw.githubusercontent.com/jelastic-jps/wordpress/v2.2.0 + wp_admin_pass: ${fn.password(10)} + db_user: user-${fn.random} + db_pass: ${fn.password(10)} + +onInstall: + - script: /scripts/setGlobals.js?_r=${fn.random} + + - install: + jps: ${globals.wp_jps}/manifest.yml?_r=${fn.random} + envName: ${settings.envName} + region: ${settings.region} + loggerName: ${settings.envName} + displayName: ${settings.displayName} + envGroups: ${globals.envGroups} + ownerUid: ${settings.ownerUid} + settings: + ls-addon: false + waf: false + wp_protect: false + le-addon: ${settings.le-addon} + cdn-addon: ${settings.cdn-addon} + mu-addon: false + woocommerce: true + DB_USER: ${globals.db_user} + DB_PASS: ${globals.db_pass} + WP_ADMIN_PASS: ${globals.wp_admin_pass} + success_email: false + project: ${settings.project:default} + projectScope: ${settings.projectScope:production} + + - env.control.ApplyNodeGroupData[cp]: + envName: ${settings.envName} + data: + fixedTopologyLayers: 1 + +success: + email: /success/email/woocommerce.md?_r=${fn.random} + text: /success/text/woocommerce.md?_r=${fn.random}