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};