Updates
parent
bbff2df123
commit
003bc09580
|
@ -1,4 +1,3 @@
|
||||||
globals:
|
globals:
|
||||||
version_lscache: 6.5.0.2
|
version_lscache: 5.6.4
|
||||||
version_wordpress: 6.6.2
|
version_wordpress: 6.3.1
|
||||||
|
|
170
manifest-OLD.jps
170
manifest-OLD.jps
|
@ -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}
|
|
159
manifest.jps
159
manifest.jps
|
@ -1,5 +1,5 @@
|
||||||
jpsType: install
|
jpsType: install
|
||||||
jpsVersion: '1.1'
|
jpsVersion: '1.7.2'
|
||||||
id: wordpress
|
id: wordpress
|
||||||
name: MightyBox WordPress Kit
|
name: MightyBox WordPress Kit
|
||||||
categories:
|
categories:
|
||||||
|
@ -20,134 +20,27 @@ nodes: definedInOnBeforeInstall
|
||||||
|
|
||||||
skipNodeEmails: true
|
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 <a href='https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:config:wordpress-protection' target='_blank'>LiteSpeed Brute Force Protection</a> that limits failed login attempts. Default action is <b>Throttle</b> and number of allowed attempts is <b>100</b>"
|
|
||||||
|
|
||||||
- caption: Web Application Firewall
|
|
||||||
type: checkbox
|
|
||||||
name: waf
|
|
||||||
value: true
|
|
||||||
disabled: false
|
|
||||||
tooltip: "Protect web sites with <a href='https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:waf' target='_blank'>LiteSpeed built-in WAF</a> 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 <a href='https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:config:wordpress-protection' target='_blank'>LiteSpeed Brute Force Protection</a> that limits failed login attempts. Default action is <b>Throttle</b> and number of allowed attempts is <b>100</b>"
|
|
||||||
|
|
||||||
- caption: Web Application Firewall
|
|
||||||
type: checkbox
|
|
||||||
name: waf
|
|
||||||
value: false
|
|
||||||
disabled: true
|
|
||||||
tooltip: "Protect web sites with <a href='https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:waf' target='_blank'>LiteSpeed built-in WAF</a> 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:
|
mixins:
|
||||||
- https://deploy.mightybox.io/kits/wp-mb-kit/raw/branch/main/configs/vers.yaml
|
- https://deploy.mightybox.io/kits/wp-mb-kit/raw/branch/main/configs/vers.yaml
|
||||||
- /scripts/common.yml
|
- /scripts/common.yml
|
||||||
|
|
||||||
globals:
|
globals:
|
||||||
isSingleDeploy: true
|
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
|
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_USER: user-${fn.random}
|
||||||
DB_PASS: ${fn.password(10)}
|
DB_PASS: ${fn.password(10)}
|
||||||
DB_HOST: 127.0.0.1
|
DB_HOST: 127.0.0.1
|
||||||
PROTOCOL: http
|
PROTOCOL: http
|
||||||
WP_ADMIN_PASS: ${fn.password(10)}
|
WP_ADMIN_PASS: ${fn.password(10)}
|
||||||
SUCCESS: default
|
SUCCESS: default
|
||||||
flexibleCloudlets: 16
|
le-addon: true
|
||||||
fixedCloudlets: 1
|
DOMAIN: ${env.domain}
|
||||||
storage_flexibleCloudlets: 6
|
|
||||||
storage_fixedCloudlets: 1
|
|
||||||
project: default
|
|
||||||
projectScope: production
|
|
||||||
success_email: false
|
|
||||||
|
|
||||||
onInstall:
|
onInstall:
|
||||||
- limits
|
- addLimits
|
||||||
|
- addMetadata
|
||||||
- initLEsettings
|
- initLEsettings
|
||||||
- setupNode:
|
- setupNode
|
||||||
nodeId: cp
|
|
||||||
- if (${globals.isSingleDeploy}):
|
- if (${globals.isSingleDeploy}):
|
||||||
- setProtocol
|
- setProtocol
|
||||||
- setDomain
|
- setDomain
|
||||||
|
@ -160,27 +53,33 @@ onInstall:
|
||||||
- install:
|
- install:
|
||||||
- jps: /scripts/events.jps?_r=${fn.random}
|
- jps: /scripts/events.jps?_r=${fn.random}
|
||||||
- jps: ${globals.BASE_URL}/scripts/addons.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:
|
- return:
|
||||||
type: success
|
type: success
|
||||||
message: /success/text/success-${globals.SUCCESS}.md?_r=${fn.random}
|
message: /success/text/success-${globals.SUCCESS}.md?_r=${fn.random}
|
||||||
email: /success/email/success-${nodes.cp.master.nodeType}-${globals.SUCCESS}.md?_r=${fn.random}
|
email: /success/email/success-${nodes.cp.master.nodeType}-${globals.SUCCESS}.md?_r=${fn.random}
|
||||||
|
|
||||||
actions:
|
actions:
|
||||||
limits:
|
addLimits:
|
||||||
- env.control.ApplyNodeGroupData[cp]:
|
- env.control.ApplyNodeGroupData[cp]:
|
||||||
data:
|
data:
|
||||||
project: ${globals.project}
|
|
||||||
projectScope: ${globals.projectScope}
|
|
||||||
validation :
|
validation :
|
||||||
maxCount: 1
|
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:
|
setProtocol:
|
||||||
- script: |
|
- script: |
|
||||||
|
var resp = jelastic.billing.account.GetQuotas('environment.jelasticssl.enabled');
|
||||||
return {
|
return {
|
||||||
result: 0,
|
result: resp.result,
|
||||||
ssl: jelastic.billing.account.GetQuotas('environment.jelasticssl.enabled').array[0].value
|
ssl: resp.array[0] ? resp.array[0].value : false
|
||||||
}
|
};
|
||||||
- if (${response.ssl} || ${globals.le-addon}):
|
- if (${response.ssl} || ${globals.le-addon}):
|
||||||
setGlobals:
|
setGlobals:
|
||||||
PROTOCOL: https
|
PROTOCOL: https
|
||||||
|
@ -192,20 +91,22 @@ actions:
|
||||||
DOMAIN: ${response.domains}
|
DOMAIN: ${response.domains}
|
||||||
|
|
||||||
installLEaddon:
|
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
|
nodeGroup: cp
|
||||||
skipEmail: true
|
skipEmail: true
|
||||||
settings:
|
settings:
|
||||||
test: false
|
test: false
|
||||||
|
skipEmail: true
|
||||||
fallbackToX1: true
|
fallbackToX1: true
|
||||||
withExtIp: ${globals.isExtIP}
|
withExtIp: ${globals.isExtIP}
|
||||||
|
|
||||||
initLEsettings:
|
initLEsettings:
|
||||||
- script: |
|
- script: |
|
||||||
|
var resp = jelastic.billing.account.GetQuotas('environment.externalip.enabled');
|
||||||
return {
|
return {
|
||||||
result: 0,
|
result: resp.result,
|
||||||
extIP: Boolean(jelastic.billing.account.GetQuotas('environment.externalip.enabled').array[0].value)
|
extIP: resp.array[0] ? Boolean(resp.array[0].value) : false
|
||||||
}
|
};
|
||||||
- setGlobals:
|
- setGlobals:
|
||||||
isExtIP: ${response.extIP}
|
isExtIP: ${response.extIP}
|
||||||
|
|
||||||
|
@ -220,7 +121,8 @@ actions:
|
||||||
setupLEdomain:
|
setupLEdomain:
|
||||||
- cmd[cp]: |-
|
- cmd[cp]: |-
|
||||||
source /opt/letsencrypt/settings;
|
source /opt/letsencrypt/settings;
|
||||||
bash ~/bin/setupWP.sh --url https://${DOMAIN};
|
bash ~/bin/setupWP.sh --url https://${globals.DOMAIN};
|
||||||
|
user: root
|
||||||
|
|
||||||
installWordpress:
|
installWordpress:
|
||||||
- install: ${globals.BASE_URL}/scripts/installWP.jps
|
- install: ${globals.BASE_URL}/scripts/installWP.jps
|
||||||
|
@ -242,21 +144,18 @@ actions:
|
||||||
- install: https://deploy.mightybox.io/addons/instant-login/raw/branch/main/manifest.jps
|
- install: https://deploy.mightybox.io/addons/instant-login/raw/branch/main/manifest.jps
|
||||||
nodeGroup: cp
|
nodeGroup: cp
|
||||||
|
|
||||||
- install: https://deploy.mightybox.io/tony/mb-admin/raw/branch/main/mbadmin.jps
|
|
||||||
nodeGroup: cp
|
|
||||||
|
|
||||||
setupNode:
|
setupNode:
|
||||||
- log: OPTIMIZATION
|
- log: OPTIMIZATION
|
||||||
- install: https://raw.githubusercontent.com/jelastic/templates/master/config_v2.jps?_r=${fn.random}
|
- install: https://raw.githubusercontent.com/jelastic/templates/master/config_v2.jps?_r=${fn.random}
|
||||||
settings:
|
settings:
|
||||||
targetGroup: cp
|
targetGroup: cp
|
||||||
targetNodes: ${this.nodeId}
|
targetNodes: ${nodes.cp.id}
|
||||||
optimization: wordpress
|
optimization: wordpress
|
||||||
|
|
||||||
createUserDB:
|
createUserDB:
|
||||||
- log: Create user for DataBase
|
- log: Create user for DataBase
|
||||||
- cmd[cp]: |-
|
- 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;
|
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;
|
bash ~/setupUser.sh ${globals.DB_USER} ${globals.DB_PASS} &>> /var/log/run.log;
|
||||||
jem passwd set -p ${globals.DB_PASS} &>> /var/log/run.log;
|
jem passwd set -p ${globals.DB_PASS} &>> /var/log/run.log;
|
||||||
|
|
|
@ -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
|
|
||||||
};
|
|
|
@ -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 lsAppid = "9e6afcf310004ac84060f90ff41a5aba";
|
||||||
var isLS = jelastic.dev.apps.GetApp(lsAppid);
|
var isLS = jelastic.dev.apps.GetApp(lsAppid);
|
||||||
|
|
||||||
// Define settings statically as form fields are removed
|
// Define settings statically as form fields are removed
|
||||||
var settings = {
|
var settings = {
|
||||||
"php_version": "php8.3", // PHP version is always set to PHP 8.3
|
"php_version": "php8.3", // PHP version is always set to PHP 8.3
|
||||||
"ls-addon": { "hidden": false, "value": true }, // Always enabled
|
"ls-addon": true, // Always enabled
|
||||||
"waf-addon": { "hidden": false, "value": true }, // Always enabled
|
"waf-addon": true, // Always enabled
|
||||||
"wp_protect-addon": { "hidden": false, "value": true } // Always enabled
|
"wp_protect-addon": true // Always enabled
|
||||||
};
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
var wpbfp = '${settings.wp_protect}' == 'true' ? "THROTTLE" : "OFF";
|
var wpbfp = '${settings.wpProtectAddon}' == 'true' ? "THROTTLE" : "OFF";
|
||||||
|
|
||||||
var resp = {
|
var resp = {
|
||||||
result: 0,
|
result: 0,
|
||||||
|
@ -8,17 +8,17 @@ var resp = {
|
||||||
|
|
||||||
resp.nodes.push({
|
resp.nodes.push({
|
||||||
nodeType: "llsmp",
|
nodeType: "llsmp",
|
||||||
engine: "${settings.php_engine:php8.3}",
|
engine: "${settings.phpVersion}",
|
||||||
count: 1,
|
count: 1,
|
||||||
cloudlets: "${settings.cloudlets:16}",
|
cloudlets: 16, // Use a default value or define in settings
|
||||||
diskLimit: "${settings.diskspace:[quota.disk.limitation]}",
|
diskLimit: 10, // Use a default value or define in settings
|
||||||
nodeGroup: "cp",
|
nodeGroup: "cp",
|
||||||
skipNodeEmails: "true",
|
skipNodeEmails: true,
|
||||||
displayName: "AppServer",
|
displayName: "AppServer",
|
||||||
env: {
|
env: {
|
||||||
SERVER_WEBROOT: "/var/www/webroot/ROOT",
|
SERVER_WEBROOT: "/var/www/webroot/ROOT",
|
||||||
REDIS_ENABLED: "true",
|
REDIS_ENABLED: "true",
|
||||||
WAF: "${settings.waf}",
|
WAF: '${settings.wafAddon}',
|
||||||
WP_PROTECT: wpbfp,
|
WP_PROTECT: wpbfp,
|
||||||
WP_PROTECT_LIMIT: 100
|
WP_PROTECT_LIMIT: 100
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,18 +2,53 @@ actions:
|
||||||
applyEnvSettings:
|
applyEnvSettings:
|
||||||
script: |
|
script: |
|
||||||
var envs = '${this.targetAppid}'.split(',');
|
var envs = '${this.targetAppid}'.split(',');
|
||||||
|
var desiredCloudlets = parseInt('${this.cloudlets}');
|
||||||
|
var desiredDiskSpace = parseInt('${this.diskspace}');
|
||||||
|
|
||||||
for (var i = 0, n = envs.length; i < n; i++) {
|
for (var i = 0, n = envs.length; i < n; i++) {
|
||||||
let targetAppid = envs[i];
|
var targetAppid = envs[i];
|
||||||
let resp = jelastic.env.control.GetEnvInfo(targetAppid, session);
|
var resp = jelastic.env.control.GetEnvInfo(targetAppid, session);
|
||||||
if (resp.result != 0) return resp;
|
if (resp.result != 0) {
|
||||||
let node = resp.nodes[0];
|
return {
|
||||||
if (String(node.flexibleCloudlets) != '${this.cloudlets}') {
|
result: resp.result,
|
||||||
resp = jelastic.env.control.SetCloudletsCountByGroup({ appid: targetAppid, session: session, nodeGroup: node.nodeGroup, fixedCloudlets: node.fixedCloudlets, flexibleCloudlets: '${this.cloudlets}'});
|
error: 'Failed to get environment info for ' + targetAppid + ': ' + resp.error,
|
||||||
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,
|
||||||
|
};
|
||||||
}
|
}
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return { result: 0 };
|
return { result: 0 };
|
|
@ -326,7 +326,7 @@ var punycode = new function Punycode() {
|
||||||
domains = domains.split(',');
|
domains = domains.split(',');
|
||||||
|
|
||||||
for (var i = 0, n = domains.length; i < n; i++) {
|
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 }
|
return { result: 0, domains: parsed }
|
|
@ -4,11 +4,13 @@ name: WordPress Core Installation
|
||||||
description: WordPress Core Installation
|
description: WordPress Core Installation
|
||||||
|
|
||||||
mixins:
|
mixins:
|
||||||
- https://raw.githubusercontent.com/jelastic-jps/wordpress/master/configs/vers.yaml
|
- ${globals.BASE_URL}/configs/vers.yaml
|
||||||
|
|
||||||
globals:
|
globals:
|
||||||
WP_ADMIN_PASS: ${settings.wp_admin_pass}
|
WP_ADMIN_PASS: ${settings.wp_admin_pass}
|
||||||
WP_TITLE: ${settings.wp_title}
|
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_HOST: ${settings.db_host}
|
||||||
DB_NAME: wp_${fn.random}
|
DB_NAME: wp_${fn.random}
|
||||||
DB_USER: ${settings.db_user}
|
DB_USER: ${settings.db_user}
|
||||||
|
@ -18,12 +20,12 @@ globals:
|
||||||
REDIS_USER: ${settings.redis_user:}
|
REDIS_USER: ${settings.redis_user:}
|
||||||
REDIS_PSWD: ${settings.redis_pswd:}
|
REDIS_PSWD: ${settings.redis_pswd:}
|
||||||
WP_URL: ${settings.wp_url}
|
WP_URL: ${settings.wp_url}
|
||||||
CLUSTER: ${settings.cluster:true}
|
BASE_URL: ${globals.BASE_URL}
|
||||||
|
|
||||||
onInstall:
|
onInstall:
|
||||||
- deployWordPress
|
- deployWordPress
|
||||||
- installScripts
|
- installScripts
|
||||||
- installWordPress
|
- installWordpress
|
||||||
- setupWordPress
|
- setupWordPress
|
||||||
- installPlugins
|
- installPlugins
|
||||||
- setupPlugins
|
- setupPlugins
|
||||||
|
@ -34,37 +36,27 @@ actions:
|
||||||
wget -qO /tmp/wordpress.tar.gz 'https://wordpress.org/wordpress-${globals.version_wordpress}.tar.gz';
|
wget -qO /tmp/wordpress.tar.gz 'https://wordpress.org/wordpress-${globals.version_wordpress}.tar.gz';
|
||||||
[ -d /tmp/wordpress/ ] && rm -rf /tmp/wordpress;
|
[ -d /tmp/wordpress/ ] && rm -rf /tmp/wordpress;
|
||||||
tar -xzf /tmp/wordpress.tar.gz -C /tmp/;
|
tar -xzf /tmp/wordpress.tar.gz -C /tmp/;
|
||||||
rsync -a /tmp/wordpress/* /var/www/webroot/ROOT/;
|
rsync -a /tmp/wordpress/ /var/www/webroot/ROOT/;
|
||||||
rsync -a --checksum /tmp/wordpress/* /var/www/webroot/ROOT/;
|
|
||||||
- addContext [cp]:
|
- addContext [cp]:
|
||||||
name: ROOT
|
name: ROOT
|
||||||
fileName: WordPress
|
fileName: WordPress
|
||||||
type: ARCHIVE
|
type: ARCHIVE
|
||||||
|
|
||||||
installWordPress:
|
installWordpress:
|
||||||
- if ('${globals.CLUSTER}' == 'true'):
|
- cmd[${nodes.cp.master.id}]: |-
|
||||||
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};"
|
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 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=${user.email} --admin_password=${globals.WP_ADMIN_PASS} --url=${globals.WP_URL} --admin_email=${user.email} --skip-email --path=/var/www/webroot/ROOT;
|
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 https://raw.githubusercontent.com/jelastic-jps/wordpress/v2.2.0/images/favicon.ico -O /var/www/webroot/ROOT/favicon.ico;
|
wget ${globals.BASE_URL}/images/favicon.ico -O /var/www/webroot/ROOT/favicon.ico;
|
||||||
|
|
||||||
installScripts:
|
installScripts:
|
||||||
- cmd[cp]: |-
|
- cmd[cp]: |-
|
||||||
[ ! -d $HOME/bin ] && mkdir $HOME/bin;
|
[ ! -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;
|
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 "apache_modules:" > $HOME/bin/wp-cli.yml;
|
||||||
echo " - mod_rewrite" >> ~/bin/wp-cli.yml;
|
echo " - mod_rewrite" >> $HOME/bin/wp-cli.yml;
|
||||||
echo "export PATH=$PATH:$HOME/bin/" >> $HOME/.bash_profile;
|
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;
|
wget ${globals.BASE_URL}/scripts/setupWP.sh?_r=${fn.random} -O $HOME/bin/setupWP.sh &>> /var/log/run.log;
|
||||||
echo $HOME/bin;
|
|
||||||
- cmd[cp]:
|
- cmd[cp]:
|
||||||
echo ${response.out} >> /etc/jelastic/redeploy.conf;
|
echo ${response.out} >> /etc/jelastic/redeploy.conf;
|
||||||
yum install jq -y &>> /var/log/run.log;
|
yum install jq -y &>> /var/log/run.log;
|
||||||
|
@ -73,28 +65,14 @@ actions:
|
||||||
setupWordPress:
|
setupWordPress:
|
||||||
- cmd[${nodes.cp.master.id}]: |-
|
- 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;
|
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;
|
wp option update permalink_structure '/%postname%/' --path=/var/www/webroot/ROOT;
|
||||||
cd ~/bin/ && wp rewrite structure '/%postname%/' --hard --path=/var/www/webroot/ROOT;
|
wp rewrite structure '/%postname%/' --hard --path=/var/www/webroot/ROOT;
|
||||||
|
|
||||||
installPlugins:
|
installPlugins:
|
||||||
- if (/lemp/.test("${nodes.cp.nodeType}") || /nginxphp/.test("${nodes.cp.nodeType}")):
|
- cmd[${nodes.cp.master.id}]: |-
|
||||||
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 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;
|
wp cache flush --path=/var/www/webroot/ROOT &>> /var/log/run.log;
|
||||||
|
|
||||||
setupPlugins:
|
setupPlugins:
|
||||||
- cmd[${nodes.cp.master.id}]: |-
|
- 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};
|
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};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue