From 003bc09580f7ab13a4841e6d8948e7b52bbba918 Mon Sep 17 00:00:00 2001 From: Anthony Date: Fri, 20 Sep 2024 22:24:24 +0800 Subject: [PATCH] Updates --- configs/vers.yaml | 5 +- manifest-OLD.jps | 170 -------------------------------------- manifest.jps | 167 ++++++++----------------------------- scripts/beforeInit-OLD.js | 19 ----- scripts/beforeInit.js | 10 +-- scripts/beforeInstall.js | 26 +++--- scripts/common.yml | 59 ++++++++++--- scripts/idna.js | 2 +- scripts/installWP.jps | 70 ++++++---------- 9 files changed, 123 insertions(+), 405 deletions(-) delete mode 100644 manifest-OLD.jps delete mode 100644 scripts/beforeInit-OLD.js diff --git a/configs/vers.yaml b/configs/vers.yaml index 8fbfed5..e3e0baf 100644 --- a/configs/vers.yaml +++ b/configs/vers.yaml @@ -1,4 +1,3 @@ globals: - version_lscache: 6.5.0.2 - version_wordpress: 6.6.2 - \ No newline at end of file + version_lscache: 5.6.4 + version_wordpress: 6.3.1 \ No newline at end of file diff --git a/manifest-OLD.jps b/manifest-OLD.jps deleted file mode 100644 index 43b6515..0000000 --- a/manifest-OLD.jps +++ /dev/null @@ -1,170 +0,0 @@ -jpsType: install -jpsVersion: '1.7.2' -id: wordpress -name: MightyBox WordPress Kit -categories: - - apps/blogs - - apps/content-management - - apps/wordpress -logo: https://raw.githubusercontent.com/jelastic-jps/wordpress/master/images/wp-standalone.png -homepage: http://wordpress.org/ -description: - text: MightyBox standalone WordPress kit with built-in tools for optimizing application servers and advanced features for running websites efficiently. The lightweight WordPress CMS is deployed in its own container with minimal resources to keep costs low. - short: MightyBox WordPress Standalone with built-in kit for choosing optimal application servers and a set of advanced features for running websites and blogs - -baseUrl: https://deploy.mightybox.io/kits/wp-mb-kit/raw/branch/main - -onBeforeInit: /scripts/beforeInit.js?_r=${fn.random} -onBeforeInstall: /scripts/beforeInstall.js?_r=${fn.random} -nodes: definedInOnBeforeInstall - -skipNodeEmails: true - -mixins: - - https://deploy.mightybox.io/kits/wp-mb-kit/raw/branch/main/configs/vers.yaml - -globals: - isSingleDeploy: true - ls-addon: true - wp_protect: true - waf: true - le-addon: true - cdn-addon: false - mu-addon: false - woocommerce: false - BASE_URL: https://deploy.mightybox.io/kits/wp-mb-kit/raw/branch/main - WP_CLUSTER_PATH: https://raw.githubusercontent.com/jelastic-jps/wordpress-cluster/v2.2.0 - DB_USER: user-${fn.random} - DB_PASS: ${fn.password(10)} - DB_HOST: 127.0.0.1 - PROTOCOL: http - WP_ADMIN_PASS: ${fn.password(10)} - SUCCESS: default - flexibleCloudlets: 16 - fixedCloudlets: 1 - storage_flexibleCloudlets: 6 - storage_fixedCloudlets: 1 - project: default - projectScope: production - success_email: false - -onInstall: - - limits - - initLEsettings - - setupNode: - nodeId: cp - - if (${globals.isSingleDeploy}): - - setProtocol - - setDomain - - createUserDB - - installWordpress - - if (${globals.le-addon}): - - installLEaddon - - setupLEdomain - - installMBaddons - - install: - - jps: /scripts/events.jps?_r=${fn.random} - - jps: ${globals.BASE_URL}/scripts/addons.jps?_r=${fn.random} - - if (${globals.success_email} != 'false'): - - return: - type: success - message: /success/text/success-${globals.SUCCESS}.md?_r=${fn.random} - email: /success/email/success-${nodes.cp.master.nodeType}-${globals.SUCCESS}.md?_r=${fn.random} - -actions: - limits: - - env.control.ApplyNodeGroupData[cp]: - data: - project: ${globals.project} - projectScope: ${globals.projectScope} - validation : - maxCount: 1 - - setProtocol: - - script: | - return { - result: 0, - ssl: jelastic.billing.account.GetQuotas('environment.jelasticssl.enabled').array[0].value - } - - if (${response.ssl} || ${globals.le-addon}): - setGlobals: - PROTOCOL: https - - setDomain: - - script: ${globals.BASE_URL}/scripts/idna.js - domains: ${env.domain} - - setGlobals: - DOMAIN: ${response.domains} - - installLEaddon: - - install: https://github.com/jelastic-jps/lets-encrypt/blob/master/manifest.jps?_r=${fn.random} - nodeGroup: cp - skipEmail: true - settings: - test: false - fallbackToX1: true - withExtIp: ${globals.isExtIP} - - initLEsettings: - - script: | - return { - result: 0, - extIP: Boolean(jelastic.billing.account.GetQuotas('environment.externalip.enabled').array[0].value) - } - - setGlobals: - isExtIP: ${response.extIP} - - - cmd[cp]: |- - [ ! -d /var/lib/jelastic/keys/letsencrypt ] && mkdir -p /var/lib/jelastic/keys/letsencrypt; - echo "webroot=true" > /var/lib/jelastic/keys/letsencrypt/settings-custom; - echo "webrootPath=/var/www/webroot/ROOT" >> /var/lib/jelastic/keys/letsencrypt/settings-custom; - echo "test=false" >> /var/lib/jelastic/keys/letsencrypt/settings-custom; - echo "withExtIp=${globals.isExtIP}" >> /var/lib/jelastic/keys/letsencrypt/settings-custom; - user: root - - setupLEdomain: - - cmd[cp]: |- - source /opt/letsencrypt/settings; - bash ~/bin/setupWP.sh --url https://${DOMAIN}; - - installWordpress: - - install: ${globals.BASE_URL}/scripts/installWP.jps - settings: - db_host: ${globals.DB_HOST} - db_user: ${globals.DB_USER} - db_pass: ${globals.DB_PASS} - redis_host: /var/run/redis/redis.sock - redis_port: 0 - wp_admin_pass: ${globals.WP_ADMIN_PASS} - wp_title: "Hello World" - wp_url: ${globals.PROTOCOL}://${globals.DOMAIN}/ - cluster: false - - installMBaddons: - - install: https://deploy.mightybox.io/addons/mb-backup-manager/raw/branch/main/manifest.jps - nodeGroup: cp - - - install: https://deploy.mightybox.io/addons/instant-login/raw/branch/main/manifest.jps - nodeGroup: cp - - - install: https://deploy.mightybox.io/tony/mb-admin/raw/branch/main/mbadmin.jps - nodeGroup: cp - - setupNode: - - log: OPTIMIZATION - - install: https://raw.githubusercontent.com/jelastic/templates/master/config_v2.jps?_r=${fn.random} - settings: - targetGroup: cp - targetNodes: ${this.nodeId} - optimization: wordpress - - createUserDB: - - log: Create user for DataBase - - cmd[cp]: |- - wget https://raw.githubusercontent.com/jelastic-jps/wordpress-cluster/master/configs/sqldb/wordpress.cnf -O /etc/mysql/conf.d/wordpress.cnf &>> /var/log/run.log; - wget ${globals.BASE_URL}/scripts/setupUser.sh -O ~/setupUser.sh &>> /var/log/run.log; - bash ~/setupUser.sh ${globals.DB_USER} ${globals.DB_PASS} &>> /var/log/run.log; - jem passwd set -p ${globals.DB_PASS} &>> /var/log/run.log; - user: root - -startPage: ${env.url} diff --git a/manifest.jps b/manifest.jps index 07ace73..5a48ad9 100644 --- a/manifest.jps +++ b/manifest.jps @@ -1,5 +1,5 @@ jpsType: install -jpsVersion: '1.1' +jpsVersion: '1.7.2' id: wordpress name: MightyBox WordPress Kit categories: @@ -20,134 +20,27 @@ nodes: definedInOnBeforeInstall skipNodeEmails: true -settings: - fields: - - caption: PHP version - type: list - name: php_engine - default: php8.3 - required: true - width: 225 - values: - - value: php8.3 - caption: PHP 8.3 - - value: php8.2 - caption: PHP 8.2 - - value: php8.1 - caption: PHP 8.1 - - value: php8.0 - caption: PHP 8.0 - - - caption: Advanced Features - type: displayfield - name: displayfield - markup: - - - caption: Install LiteSpeed High-Performance Web Server - type: checkbox - name: ls-addon - value: true - disabled: false - tooltip: "If this option is disabled, the cluster will be installed using NGINX load balancer and application servers" - showIf: - true: - - 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" - - false: - - caption: WordPress Brute Force Attack Protection - type: checkbox - name: wp_protect - value: false - disabled: true - 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: false - disabled: true - 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 WordPress Multisite Network - type: checkbox - name: mu-addon - value: false - disabled: false - tooltip: "Multisite is a type of WordPress installation that allows you to create and manage a network of multiple websites from a single WordPress dashboard. This lets you easily make changes and keep all of your websites updated from one place." - - - caption: Install WooCommerce - type: checkbox - name: woocommerce - value: false - disabled: false - tooltip: "WooCommerce is a free open-source e-commerce plugin designed specifically for WordPress. This is a great platform for a store of any size." - - - type: displayfield - hideLabel: true - hidden: true - name: bl_count - markup: - mixins: - https://deploy.mightybox.io/kits/wp-mb-kit/raw/branch/main/configs/vers.yaml - /scripts/common.yml globals: isSingleDeploy: true - ls-addon: true - wp_protect: true - waf: true - le-addon: true - cdn-addon: false - mu-addon: false - woocommerce: false BASE_URL: https://deploy.mightybox.io/kits/wp-mb-kit/raw/branch/main - WP_CLUSTER_PATH: https://raw.githubusercontent.com/jelastic-jps/wordpress-cluster/v2.2.0 DB_USER: user-${fn.random} DB_PASS: ${fn.password(10)} DB_HOST: 127.0.0.1 PROTOCOL: http WP_ADMIN_PASS: ${fn.password(10)} SUCCESS: default - flexibleCloudlets: 16 - fixedCloudlets: 1 - storage_flexibleCloudlets: 6 - storage_fixedCloudlets: 1 - project: default - projectScope: production - success_email: false + le-addon: true + DOMAIN: ${env.domain} onInstall: - - limits + - addLimits + - addMetadata - initLEsettings - - setupNode: - nodeId: cp + - setupNode - if (${globals.isSingleDeploy}): - setProtocol - setDomain @@ -156,31 +49,37 @@ onInstall: - if (${globals.le-addon}): - installLEaddon - setupLEdomain - - installMBaddons + - installMBaddons - install: - jps: /scripts/events.jps?_r=${fn.random} - jps: ${globals.BASE_URL}/scripts/addons.jps?_r=${fn.random} - - if (${globals.success_email} != 'false'): + - if ('${settings.success_email}' != 'false'): - return: type: success message: /success/text/success-${globals.SUCCESS}.md?_r=${fn.random} email: /success/email/success-${nodes.cp.master.nodeType}-${globals.SUCCESS}.md?_r=${fn.random} actions: - limits: + addLimits: - env.control.ApplyNodeGroupData[cp]: data: - project: ${globals.project} - projectScope: ${globals.projectScope} validation : maxCount: 1 + addMetadata: + script: | + var metadata = { project: "${settings.project:default}", projectScope: "${settings.projectScope:production}" }; + return api.env.control.ApplyEnvProperty ? + api.env.control.ApplyEnvProperty('${env.envName}', session, metadata) : + api.env.control.ApplyNodeGroupData('${env.envName}', session, 'cp', metadata); + setProtocol: - script: | + var resp = jelastic.billing.account.GetQuotas('environment.jelasticssl.enabled'); return { - result: 0, - ssl: jelastic.billing.account.GetQuotas('environment.jelasticssl.enabled').array[0].value - } + result: resp.result, + ssl: resp.array[0] ? resp.array[0].value : false + }; - if (${response.ssl} || ${globals.le-addon}): setGlobals: PROTOCOL: https @@ -189,23 +88,25 @@ actions: - script: ${globals.BASE_URL}/scripts/idna.js domains: ${env.domain} - setGlobals: - DOMAIN: ${response.domains} + DOMAIN: ${response.domains} installLEaddon: - - install: https://github.com/jelastic-jps/lets-encrypt/blob/master/manifest.jps?_r=${fn.random} + - install: https://raw.githubusercontent.com/jelastic-jps/lets-encrypt/master/manifest.jps?_r=${fn.random} nodeGroup: cp skipEmail: true settings: test: false + skipEmail: true fallbackToX1: true withExtIp: ${globals.isExtIP} initLEsettings: - script: | + var resp = jelastic.billing.account.GetQuotas('environment.externalip.enabled'); return { - result: 0, - extIP: Boolean(jelastic.billing.account.GetQuotas('environment.externalip.enabled').array[0].value) - } + result: resp.result, + extIP: resp.array[0] ? Boolean(resp.array[0].value) : false + }; - setGlobals: isExtIP: ${response.extIP} @@ -220,7 +121,8 @@ actions: setupLEdomain: - cmd[cp]: |- source /opt/letsencrypt/settings; - bash ~/bin/setupWP.sh --url https://${DOMAIN}; + bash ~/bin/setupWP.sh --url https://${globals.DOMAIN}; + user: root installWordpress: - install: ${globals.BASE_URL}/scripts/installWP.jps @@ -242,24 +144,21 @@ actions: - install: https://deploy.mightybox.io/addons/instant-login/raw/branch/main/manifest.jps nodeGroup: cp - - install: https://deploy.mightybox.io/tony/mb-admin/raw/branch/main/mbadmin.jps - nodeGroup: cp - setupNode: - log: OPTIMIZATION - install: https://raw.githubusercontent.com/jelastic/templates/master/config_v2.jps?_r=${fn.random} settings: targetGroup: cp - targetNodes: ${this.nodeId} + targetNodes: ${nodes.cp.id} optimization: wordpress createUserDB: - log: Create user for DataBase - cmd[cp]: |- - wget https://raw.githubusercontent.com/jelastic-jps/wordpress-cluster/master/configs/sqldb/wordpress.cnf -O /etc/mysql/conf.d/wordpress.cnf &>> /var/log/run.log; + wget ${globals.BASE_URL}/configs/sqldb/wordpress.cnf -O /etc/mysql/conf.d/wordpress.cnf &>> /var/log/run.log; wget ${globals.BASE_URL}/scripts/setupUser.sh -O ~/setupUser.sh &>> /var/log/run.log; bash ~/setupUser.sh ${globals.DB_USER} ${globals.DB_PASS} &>> /var/log/run.log; jem passwd set -p ${globals.DB_PASS} &>> /var/log/run.log; user: root - -startPage: ${env.url} + +startPage: ${env.url} \ No newline at end of file diff --git a/scripts/beforeInit-OLD.js b/scripts/beforeInit-OLD.js deleted file mode 100644 index 27bdab0..0000000 --- a/scripts/beforeInit-OLD.js +++ /dev/null @@ -1,19 +0,0 @@ -import com.hivext.api.Response; -import org.yaml.snakeyaml.Yaml; -import com.hivext.api.core.utils.Transport; - -var lsAppid = "9e6afcf310004ac84060f90ff41a5aba"; -var isLS = jelastic.dev.apps.GetApp(lsAppid); - -// Define settings statically as form fields are removed -var settings = { - "php_version": "php8.3", // PHP version is always set to PHP 8.3 - "ls-addon": { "hidden": false, "value": true }, // Always enabled - "waf-addon": { "hidden": false, "value": true }, // Always enabled - "wp_protect-addon": { "hidden": false, "value": true } // Always enabled -}; - -return { - result: 0, - settings: settings -}; \ No newline at end of file diff --git a/scripts/beforeInit.js b/scripts/beforeInit.js index 27bdab0..9faa98f 100644 --- a/scripts/beforeInit.js +++ b/scripts/beforeInit.js @@ -1,16 +1,12 @@ -import com.hivext.api.Response; -import org.yaml.snakeyaml.Yaml; -import com.hivext.api.core.utils.Transport; - var lsAppid = "9e6afcf310004ac84060f90ff41a5aba"; var isLS = jelastic.dev.apps.GetApp(lsAppid); // Define settings statically as form fields are removed var settings = { "php_version": "php8.3", // PHP version is always set to PHP 8.3 - "ls-addon": { "hidden": false, "value": true }, // Always enabled - "waf-addon": { "hidden": false, "value": true }, // Always enabled - "wp_protect-addon": { "hidden": false, "value": true } // Always enabled + "ls-addon": true, // Always enabled + "waf-addon": true, // Always enabled + "wp_protect-addon": true // Always enabled }; return { diff --git a/scripts/beforeInstall.js b/scripts/beforeInstall.js index 48b43ca..dde8399 100644 --- a/scripts/beforeInstall.js +++ b/scripts/beforeInstall.js @@ -1,4 +1,4 @@ -var wpbfp = '${settings.wp_protect}' == 'true' ? "THROTTLE" : "OFF"; +var wpbfp = '${settings.wpProtectAddon}' == 'true' ? "THROTTLE" : "OFF"; var resp = { result: 0, @@ -7,21 +7,21 @@ var resp = { } resp.nodes.push({ - nodeType: "llsmp", - engine: "${settings.php_engine:php8.3}", - count: 1, - cloudlets: "${settings.cloudlets:16}", - diskLimit: "${settings.diskspace:[quota.disk.limitation]}", - nodeGroup: "cp", - skipNodeEmails: "true", - displayName: "AppServer", - env: { + nodeType: "llsmp", + engine: "${settings.phpVersion}", + count: 1, + cloudlets: 16, // Use a default value or define in settings + diskLimit: 10, // Use a default value or define in settings + nodeGroup: "cp", + skipNodeEmails: true, + displayName: "AppServer", + env: { SERVER_WEBROOT: "/var/www/webroot/ROOT", REDIS_ENABLED: "true", - WAF: "${settings.waf}", + WAF: '${settings.wafAddon}', WP_PROTECT: wpbfp, WP_PROTECT_LIMIT: 100 - } - }) + } +}) return resp; \ No newline at end of file diff --git a/scripts/common.yml b/scripts/common.yml index 496baf7..dcb8bfc 100644 --- a/scripts/common.yml +++ b/scripts/common.yml @@ -2,18 +2,53 @@ actions: applyEnvSettings: script: | var envs = '${this.targetAppid}'.split(','); - for (var i=0, n = envs.length; i < n; i++) { - let targetAppid = envs[i]; - let resp = jelastic.env.control.GetEnvInfo(targetAppid, session); - if (resp.result != 0) return resp; - let node = resp.nodes[0]; - if (String(node.flexibleCloudlets) != '${this.cloudlets}') { - resp = jelastic.env.control.SetCloudletsCountByGroup({ appid: targetAppid, session: session, nodeGroup: node.nodeGroup, fixedCloudlets: node.fixedCloudlets, flexibleCloudlets: '${this.cloudlets}'}); - if (resp.result != 0) return resp; + var desiredCloudlets = parseInt('${this.cloudlets}'); + var desiredDiskSpace = parseInt('${this.diskspace}'); + + for (var i = 0, n = envs.length; i < n; i++) { + var targetAppid = envs[i]; + var resp = jelastic.env.control.GetEnvInfo(targetAppid, session); + if (resp.result != 0) { + return { + result: resp.result, + error: 'Failed to get environment info for ' + targetAppid + ': ' + resp.error, + }; } - if (String(node.diskLimit) != '${this.diskspace}') { - resp = jelastic.env.control.SetDiskLimitByGroup({ appid: targetAppid, session: session, nodeGroup: node.nodeGroup, limit: '${this.diskspace}' }); - if (resp.result != 0) return resp; + if (!resp.nodes || resp.nodes.length === 0) { + return { + result: 1, + error: 'No nodes found in environment ' + targetAppid, + }; + } + var node = resp.nodes[0]; + if (parseInt(node.flexibleCloudlets) !== desiredCloudlets) { + resp = jelastic.env.control.SetCloudletsCountByGroup({ + envName: targetAppid, + session: session, + nodeGroup: node.nodeGroup, + fixedCloudlets: parseInt(node.fixedCloudlets), + flexibleCloudlets: desiredCloudlets, + }); + if (resp.result != 0) { + return { + result: resp.result, + error: 'Failed to set cloudlets for ' + targetAppid + ': ' + resp.error, + }; + } + } + if (parseInt(node.diskLimit) !== desiredDiskSpace) { + resp = jelastic.env.control.SetDiskLimitByGroup({ + envName: targetAppid, + session: session, + nodeGroup: node.nodeGroup, + limit: desiredDiskSpace, + }); + if (resp.result != 0) { + return { + result: resp.result, + error: 'Failed to set disk space for ' + targetAppid + ': ' + resp.error, + }; + } } } - return { result: 0 }; \ No newline at end of file + return { result: 0 }; diff --git a/scripts/idna.js b/scripts/idna.js index a27bb31..9b0ca67 100644 --- a/scripts/idna.js +++ b/scripts/idna.js @@ -326,7 +326,7 @@ var punycode = new function Punycode() { domains = domains.split(','); for (var i = 0, n = domains.length; i < n; i++) { - parsed.push(punycode.ToASCII(String(java.lang.String(domains[i]).trim()))); + parsed.push(punycode.ToASCII(domains[i].trim())); } return { result: 0, domains: parsed } \ No newline at end of file diff --git a/scripts/installWP.jps b/scripts/installWP.jps index e892192..8a025ad 100644 --- a/scripts/installWP.jps +++ b/scripts/installWP.jps @@ -4,11 +4,13 @@ name: WordPress Core Installation description: WordPress Core Installation mixins: - - https://raw.githubusercontent.com/jelastic-jps/wordpress/master/configs/vers.yaml + - ${globals.BASE_URL}/configs/vers.yaml globals: WP_ADMIN_PASS: ${settings.wp_admin_pass} WP_TITLE: ${settings.wp_title} + WP_ADMIN_USER: ${settings.wp_admin_user:admin} + WP_ADMIN_EMAIL: ${settings.wp_admin_email:admin@example.com} DB_HOST: ${settings.db_host} DB_NAME: wp_${fn.random} DB_USER: ${settings.db_user} @@ -18,12 +20,12 @@ globals: REDIS_USER: ${settings.redis_user:} REDIS_PSWD: ${settings.redis_pswd:} WP_URL: ${settings.wp_url} - CLUSTER: ${settings.cluster:true} + BASE_URL: ${globals.BASE_URL} onInstall: - deployWordPress - installScripts - - installWordPress + - installWordpress - setupWordPress - installPlugins - setupPlugins @@ -34,37 +36,27 @@ actions: wget -qO /tmp/wordpress.tar.gz 'https://wordpress.org/wordpress-${globals.version_wordpress}.tar.gz'; [ -d /tmp/wordpress/ ] && rm -rf /tmp/wordpress; tar -xzf /tmp/wordpress.tar.gz -C /tmp/; - rsync -a /tmp/wordpress/* /var/www/webroot/ROOT/; - rsync -a --checksum /tmp/wordpress/* /var/www/webroot/ROOT/; + rsync -a /tmp/wordpress/ /var/www/webroot/ROOT/; - addContext [cp]: name: ROOT fileName: WordPress type: ARCHIVE - installWordPress: - - if ('${globals.CLUSTER}' == 'true'): - cmd[${nodes.cp.master.id}]: |- - mysql -u${globals.DB_USER} -p${globals.DB_PASS} -h ${nodes.sqldb.master.intIP} -e "CREATE DATABASE IF NOT EXISTS ${globals.DB_NAME};" - cd /var/www/webroot/ROOT && wp core config --dbhost=${nodes.sqldb.master.intIP} --dbname=${globals.DB_NAME} --dbuser=${globals.DB_USER} --dbpass=${globals.DB_PASS} --path=/var/www/webroot/ROOT; - cd /var/www/webroot/ROOT && wp core install --title="${globals.WP_TITLE}" --admin_user=${user.email} --admin_password=${globals.WP_ADMIN_PASS} --url=${globals.WP_URL} --admin_email=${user.email} --skip-email --path=/var/www/webroot/ROOT; - mv /var/www/webroot/ROOT/wp-config.php /tmp; sed -i "s/${nodes.sqldb.master.intIP}/${globals.DB_HOST}/g" /tmp/wp-config.php; mv /tmp/wp-config.php /var/www/webroot/ROOT; - wget https://raw.githubusercontent.com/jelastic-jps/wordpress/v2.2.0/images/favicon.ico /var/www/webroot/ROOT/favicon.ico; - - else: - cmd[${nodes.cp.master.id}]: |- - mysql -u${globals.DB_USER} -p${globals.DB_PASS} -h ${globals.DB_HOST} -e "CREATE DATABASE IF NOT EXISTS ${globals.DB_NAME};" - cd /var/www/webroot/ROOT && wp core config --dbhost=${globals.DB_HOST} --dbname=${globals.DB_NAME} --dbuser=${globals.DB_USER} --dbpass=${globals.DB_PASS} --path=/var/www/webroot/ROOT; - cd /var/www/webroot/ROOT && wp core install --title="${globals.WP_TITLE}" --admin_user=${user.email} --admin_password=${globals.WP_ADMIN_PASS} --url=${globals.WP_URL} --admin_email=${user.email} --skip-email --path=/var/www/webroot/ROOT; - wget https://raw.githubusercontent.com/jelastic-jps/wordpress/v2.2.0/images/favicon.ico -O /var/www/webroot/ROOT/favicon.ico; + installWordpress: + - cmd[${nodes.cp.master.id}]: |- + mysql -u${globals.DB_USER} -p${globals.DB_PASS} -h ${globals.DB_HOST} -e "CREATE DATABASE IF NOT EXISTS ${globals.DB_NAME};" + cd /var/www/webroot/ROOT && wp core config --dbhost=${globals.DB_HOST} --dbname=${globals.DB_NAME} --dbuser=${globals.DB_USER} --dbpass=${globals.DB_PASS}; + cd /var/www/webroot/ROOT && wp core install --title="${globals.WP_TITLE}" --admin_user=${globals.WP_ADMIN_USER} --admin_password=${globals.WP_ADMIN_PASS} --url=${globals.WP_URL} --admin_email=${globals.WP_ADMIN_EMAIL} --skip-email; + wget ${globals.BASE_URL}/images/favicon.ico -O /var/www/webroot/ROOT/favicon.ico; installScripts: - cmd[cp]: |- [ ! -d $HOME/bin ] && mkdir $HOME/bin; curl -o $HOME/bin/wp https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar && chmod +x $HOME/bin/wp; - echo "apache_modules:" > ~/bin/wp-cli.yml; - echo " - mod_rewrite" >> ~/bin/wp-cli.yml; - echo "export PATH=$PATH:$HOME/bin/" >> $HOME/.bash_profile; - wget https://deploy-proxy.mightybox.io/kits/wp-mb-kit/raw/branch/main/scripts/setupWP.sh?_r=${fn.random} -O ~/bin/setupWP.sh &>> /var/log/run.log; - echo $HOME/bin; + echo "apache_modules:" > $HOME/bin/wp-cli.yml; + echo " - mod_rewrite" >> $HOME/bin/wp-cli.yml; + echo "export PATH=\$PATH:\$HOME/bin/" >> $HOME/.bash_profile; + wget ${globals.BASE_URL}/scripts/setupWP.sh?_r=${fn.random} -O $HOME/bin/setupWP.sh &>> /var/log/run.log; - cmd[cp]: echo ${response.out} >> /etc/jelastic/redeploy.conf; yum install jq -y &>> /var/log/run.log; @@ -73,28 +65,14 @@ actions: setupWordPress: - cmd[${nodes.cp.master.id}]: |- grep -qE "(WP_AUTO_UPDATE_CORE)" /var/www/webroot/ROOT/wp-config.php || sed -i "/^\$table_prefix.*/a define( 'WP_AUTO_UPDATE_CORE', false );" /var/www/webroot/ROOT/wp-config.php; - cd ~/bin/ && wp option update permalink_structure '/%postname%/' --path=/var/www/webroot/ROOT; - cd ~/bin/ && wp rewrite structure '/%postname%/' --hard --path=/var/www/webroot/ROOT; - + wp option update permalink_structure '/%postname%/' --path=/var/www/webroot/ROOT; + wp rewrite structure '/%postname%/' --hard --path=/var/www/webroot/ROOT; + installPlugins: - - if (/lemp/.test("${nodes.cp.nodeType}") || /nginxphp/.test("${nodes.cp.nodeType}")): - cmd[${nodes.cp.master.id}]: |- - wget ${baseUrl}../configs/wordpress/wp-jelastic.php -O /var/www/webroot/ROOT/wp-jelastic.php - mv /var/www/webroot/ROOT/wp-config.php /tmp; sed -i "s/.*'wp-settings.php';.*/require_once ABSPATH . 'wp-jelastic.php';\n&/" /tmp/wp-config.php; mv /tmp/wp-config.php /var/www/webroot/ROOT; - wp plugin install w3-total-cache --version=${globals.version_w3total} --activate --path=/var/www/webroot/ROOT &>> /var/log/run.log; - wp cache flush --path=/var/www/webroot/ROOT &>> /var/log/run.log; - wp plugin install nginx-cache --activate --path=/var/www/webroot/ROOT &>> /var/log/run.log; - wp cache flush --path=/var/www/webroot/ROOT &>> /var/log/run.log; - wp db query "INSERT INTO wp_options(option_name,option_value,autoload) VALUES('nginx_cache_path','/var/www/webroot/ROOT/.cache','yes');" --path=/var/www/webroot/ROOT &>> /var/log/run.log; - wp db query "INSERT INTO wp_options(option_name,option_value,autoload) VALUES('nginx_auto_purge',1,'yes');" --path=/var/www/webroot/ROOT &>> /var/log/run.log; - wp cache flush --path=/var/www/webroot/ROOT &>> /var/log/run.log; - - - if (/llsmp/.test("${nodes.cp.nodeType}") || /litespeed/.test("${nodes.cp.nodeType}")): - cmd[${nodes.cp.master.id}]: |- - wp plugin install litespeed-cache --version=${globals.version_lscache} --activate --path=/var/www/webroot/ROOT &>> /var/log/run.log; - wp cache flush --path=/var/www/webroot/ROOT &>> /var/log/run.log; - + - cmd[${nodes.cp.master.id}]: |- + wp plugin install litespeed-cache --version=${globals.version_lscache} --activate --path=/var/www/webroot/ROOT &>> /var/log/run.log; + wp cache flush --path=/var/www/webroot/ROOT &>> /var/log/run.log; + setupPlugins: - cmd[${nodes.cp.master.id}]: |- - bash ~/bin/setupWP.sh --pgcache true --objectcache true --REDIS_HOST ${globals.REDIS_HOST} --REDIS_PORT ${globals.REDIS_PORT} --REDIS_USER ${globals.REDIS_USER} --REDIS_PSWD ${globals.REDIS_PSWD}; - \ No newline at end of file + bash $HOME/bin/setupWP.sh --pgcache true --objectcache true --REDIS_HOST ${globals.REDIS_HOST} --REDIS_PORT ${globals.REDIS_PORT} --REDIS_USER ${globals.REDIS_USER} --REDIS_PSWD ${globals.REDIS_PSWD};