2024-04-26 15:30:52 +00:00
jpsType: install
2024-09-20 14:24:24 +00:00
jpsVersion: '1.7.2'
2024-04-26 15:30:52 +00:00
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
2024-04-29 19:12:45 +00:00
baseUrl: https://deploy.mightybox.io/kits/wp-mb-kit/raw/branch/main
2024-04-26 15:30:52 +00:00
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
2024-09-19 16:08:50 +00:00
- /scripts/common.yml
2024-04-26 15:30:52 +00:00
globals:
2024-09-19 16:08:04 +00:00
isSingleDeploy: true
2024-04-26 15:30:52 +00:00
BASE_URL: https://deploy.mightybox.io/kits/wp-mb-kit/raw/branch/main
2024-09-19 16:08:04 +00:00
DB_USER: user-${fn.random}
DB_PASS: ${fn.password(10)}
2024-04-26 15:30:52 +00:00
DB_HOST: 127.0.0.1
PROTOCOL: http
2024-09-19 16:08:04 +00:00
WP_ADMIN_PASS: ${fn.password(10)}
2024-04-26 15:30:52 +00:00
SUCCESS: default
2024-09-20 14:24:24 +00:00
le-addon: true
DOMAIN: ${env.domain}
2024-09-20 14:47:04 +00:00
WP_ADMIN_PASS: ${fn.password(10)}
WP_TITLE: ${env.domain}
WP_URL: ${globals.PROTOCOL}://${globals.DOMAIN}/
2024-04-26 15:30:52 +00:00
onInstall:
2024-09-20 14:24:24 +00:00
- addLimits
- addMetadata
2024-04-26 15:30:52 +00:00
- initLEsettings
2024-09-20 14:24:24 +00:00
- setupNode
2024-04-26 15:30:52 +00:00
- if (${globals.isSingleDeploy}):
- setProtocol
- setDomain
- createUserDB
- installWordpress
2024-09-19 16:08:04 +00:00
- if (${globals.le-addon}):
- installLEaddon
- setupLEdomain
2024-09-20 14:24:24 +00:00
- installMBaddons
2024-04-26 15:30:52 +00:00
- install:
2024-09-19 16:08:04 +00:00
- jps: /scripts/events.jps?_r=${fn.random}
- jps: ${globals.BASE_URL}/scripts/addons.jps?_r=${fn.random}
2024-09-20 14:24:24 +00:00
- if ('${settings.success_email}' != 'false'):
2024-09-19 16:08:04 +00:00
- 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}
2024-04-26 15:30:52 +00:00
actions:
2024-09-20 14:24:24 +00:00
addLimits:
2024-04-26 15:30:52 +00:00
- env.control.ApplyNodeGroupData[cp]:
data:
validation :
maxCount: 1
2024-09-20 14:24:24 +00:00
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);
2024-04-26 15:30:52 +00:00
setProtocol:
- script: |
2024-09-20 14:24:24 +00:00
var resp = jelastic.billing.account.GetQuotas('environment.jelasticssl.enabled');
2024-04-26 15:30:52 +00:00
return {
2024-09-20 14:24:24 +00:00
result: resp.result,
ssl: resp.array[0] ? resp.array[0].value : false
};
2024-09-19 16:08:04 +00:00
- if (${response.ssl} || ${globals.le-addon}):
2024-04-26 15:30:52 +00:00
setGlobals:
PROTOCOL: https
setDomain:
- script: ${globals.BASE_URL}/scripts/idna.js
domains: ${env.domain}
- setGlobals:
2024-09-20 14:24:24 +00:00
DOMAIN: ${response.domains}
2024-04-26 15:30:52 +00:00
installLEaddon:
2024-09-20 14:24:24 +00:00
- install: https://raw.githubusercontent.com/jelastic-jps/lets-encrypt/master/manifest.jps?_r=${fn.random}
2024-04-26 15:30:52 +00:00
nodeGroup: cp
skipEmail: true
settings:
test: false
2024-09-20 14:24:24 +00:00
skipEmail: true
2024-04-26 15:30:52 +00:00
fallbackToX1: true
withExtIp: ${globals.isExtIP}
initLEsettings:
- script: |
2024-09-20 14:24:24 +00:00
var resp = jelastic.billing.account.GetQuotas('environment.externalip.enabled');
2024-04-26 15:30:52 +00:00
return {
2024-09-20 14:24:24 +00:00
result: resp.result,
extIP: resp.array[0] ? Boolean(resp.array[0].value) : false
};
2024-04-26 15:30:52 +00:00
- 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;
2024-09-20 14:24:24 +00:00
bash ~/bin/setupWP.sh --url https://${globals.DOMAIN};
user: root
2024-04-26 15:30:52 +00:00
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}
2024-09-20 15:00:24 +00:00
wp_title: ${globals.WP_TITLE}
2024-04-26 15:30:52 +00:00
wp_url: ${globals.PROTOCOL}://${globals.DOMAIN}/
cluster: false
2024-05-01 10:37:16 +00:00
installMBaddons:
2024-09-20 15:11:39 +00:00
- log: INSTALLING MightyBox Add-Ons
2024-05-01 10:22:36 +00:00
- install: https://deploy.mightybox.io/addons/mb-backup-manager/raw/branch/main/manifest.jps
2024-05-01 11:03:49 +00:00
nodeGroup: cp
2024-05-01 10:22:36 +00:00
- install: https://deploy.mightybox.io/addons/instant-login/raw/branch/main/manifest.jps
2024-05-01 11:03:49 +00:00
nodeGroup: cp
2024-05-01 10:22:36 +00:00
2024-04-26 15:30:52 +00:00
setupNode:
- log: OPTIMIZATION
- install: https://raw.githubusercontent.com/jelastic/templates/master/config_v2.jps?_r=${fn.random}
settings:
targetGroup: cp
2024-09-20 14:24:24 +00:00
targetNodes: ${nodes.cp.id}
2024-04-26 15:30:52 +00:00
optimization: wordpress
createUserDB:
- log: Create user for DataBase
2024-09-19 16:08:04 +00:00
- cmd[cp]: |-
2024-09-20 14:24:24 +00:00
wget ${globals.BASE_URL}/configs/sqldb/wordpress.cnf -O /etc/mysql/conf.d/wordpress.cnf &>> /var/log/run.log;
2024-09-19 16:08:04 +00:00
wget ${globals.BASE_URL}/scripts/setupUser.sh -O ~/setupUser.sh &>> /var/log/run.log;
2024-04-26 15:30:52 +00:00
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
2024-09-20 14:24:24 +00:00
startPage: ${env.url}