Merge pull request #119 from WordOps/updating-configuration
Updating configuration
This commit is contained in:
@@ -5,5 +5,5 @@ indent_style = space
|
|||||||
indent_size = 4
|
indent_size = 4
|
||||||
end_of_line = lf
|
end_of_line = lf
|
||||||
charset = utf-8
|
charset = utf-8
|
||||||
trim_trailing_whitespace = false
|
trim_trailing_whitespace = true
|
||||||
insert_final_newline = false
|
insert_final_newline = false
|
||||||
@@ -8,6 +8,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|||||||
|
|
||||||
### v3.9.x - [Unreleased]
|
### v3.9.x - [Unreleased]
|
||||||
|
|
||||||
|
### v3.9.8.1 - 2019-08-18
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
|
||||||
|
- WordOps backend is automatically secured by the first Let's Encrypt SSL certificate issued
|
||||||
|
|
||||||
#### Changed
|
#### Changed
|
||||||
|
|
||||||
- Extra Nginx directives moved from nginx.conf to conf.d/tweaks.conf
|
- Extra Nginx directives moved from nginx.conf to conf.d/tweaks.conf
|
||||||
@@ -17,6 +23,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|||||||
- MySQLTuner installation
|
- MySQLTuner installation
|
||||||
- `wo stack remove/purge --all`
|
- `wo stack remove/purge --all`
|
||||||
- variable substitution in install script
|
- variable substitution in install script
|
||||||
|
- `wo stack upgrade --phpmyadmin/--dashboard`
|
||||||
|
- phpmyadmin blowfish_secret key length
|
||||||
|
- Cement App not exiting on close in case of error
|
||||||
|
|
||||||
### v3.9.8 - 2019-08-16
|
### v3.9.8 - 2019-08-16
|
||||||
|
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ _wo_complete()
|
|||||||
;;
|
;;
|
||||||
"upgrade" )
|
"upgrade" )
|
||||||
COMPREPLY=( $(compgen \
|
COMPREPLY=( $(compgen \
|
||||||
-W "--web --nginx --php --php73 --mysql --all --netdata --composer --phpmyadmin --no-prompt --wpcli" \
|
-W "--web --nginx --php --php73 --mysql --all --netdata --composer --phpmyadmin --dashboard --no-prompt --wpcli" \
|
||||||
-- $cur) )
|
-- $cur) )
|
||||||
;;
|
;;
|
||||||
"start" | "stop" | "reload" | "restart" | "status")
|
"start" | "stop" | "reload" | "restart" | "status")
|
||||||
@@ -159,13 +159,13 @@ _wo_complete()
|
|||||||
|
|
||||||
"create")
|
"create")
|
||||||
COMPREPLY=( $(compgen \
|
COMPREPLY=( $(compgen \
|
||||||
-W "--user --pass --email --html --php --php73 --mysql --wp --wpsubdir --wpsubdomain --wpfc --wpsc --proxy= --wpredis --wprocket --letsencrypt --letsencrypt=subdomain --letsencrypt=wildcard -le -le=subdomain -le=wildcard --dns --dns=dns_cf --dns=dns_do" \
|
-W "--user --pass --email --html --php --php73 --mysql --wp --wpsubdir --wpsubdomain --wpfc --wpsc --proxy= --wpredis --wprocket --wpce --letsencrypt --letsencrypt=subdomain --letsencrypt=wildcard -le -le=subdomain -le=wildcard --dns --dns=dns_cf --dns=dns_do" \
|
||||||
-- $cur) )
|
-- $cur) )
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"update")
|
"update")
|
||||||
COMPREPLY=( $(compgen \
|
COMPREPLY=( $(compgen \
|
||||||
-W "--password --php --php73 --mysql --wp --wpsubdir --wpsubdomain --wpfc --wpsc --wpredis --wprocket --letsencrypt --letsencrypt=subdomain --letsencrypt=off --letsencrypt=renew --letsencrypt=clean -le -le=subdomain -le=wildcard --dns --dns=dns_cf --dns=dns_do" \
|
-W "--password --php --php73 --mysql --wp --wpsubdir --wpsubdomain --wpfc --wpsc --wpredis --wprocket --wpce --letsencrypt --letsencrypt=subdomain --letsencrypt=off --letsencrypt=renew --letsencrypt=clean -le -le=subdomain -le=wildcard --dns --dns=dns_cf --dns=dns_do" \
|
||||||
-- $cur) )
|
-- $cur) )
|
||||||
;;
|
;;
|
||||||
"delete")
|
"delete")
|
||||||
@@ -211,9 +211,9 @@ _wo_complete()
|
|||||||
"--wp")
|
"--wp")
|
||||||
if [ ${COMP_WORDS[1]} != "debug" ]; then
|
if [ ${COMP_WORDS[1]} != "debug" ]; then
|
||||||
if [ ${COMP_WORDS[2]} == "create" ]; then
|
if [ ${COMP_WORDS[2]} == "create" ]; then
|
||||||
retlist="--wp --wpsc --wpfc --user --email --pass --wpredis --wprocket --letsencrypt -le --letsencrypt=subdomain --letsencrypt=wildcard --dns --dns=dns_cf --dns=dns_do --php73"
|
retlist="--wp --wpsc --wpfc --user --email --pass --wpredis --wprocket --wpce --letsencrypt -le --letsencrypt=subdomain --letsencrypt=wildcard --dns --dns=dns_cf --dns=dns_do --php73"
|
||||||
elif [ ${COMP_WORDS[2]} == "update" ]; then
|
elif [ ${COMP_WORDS[2]} == "update" ]; then
|
||||||
retlist="--wp --wpfc --wpsc --php73 --php73=off --wpredis --wprocket --letsencrypt --letsencrypt=subdomain --letsencrypt=wildcard --letsencrypt=off --letsencrypt=renew --letsencrypt=clean -le -le=off -le=wildcard --dns --dns=dns_cf --dns=dns_do"
|
retlist="--wp --wpfc --wpsc --php73 --php73=off --wpredis --wprocket --wpce --letsencrypt --letsencrypt=subdomain --letsencrypt=wildcard --letsencrypt=off --letsencrypt=renew --letsencrypt=clean -le -le=off -le=wildcard --dns --dns=dns_cf --dns=dns_do"
|
||||||
else
|
else
|
||||||
retlist=""
|
retlist=""
|
||||||
fi
|
fi
|
||||||
@@ -230,9 +230,9 @@ _wo_complete()
|
|||||||
"--wpsubdir" | "--wpsubdomain")
|
"--wpsubdir" | "--wpsubdomain")
|
||||||
if [ ${COMP_WORDS[1]} != "debug" ]; then
|
if [ ${COMP_WORDS[1]} != "debug" ]; then
|
||||||
if [ ${COMP_WORDS[2]} == "create" ]; then
|
if [ ${COMP_WORDS[2]} == "create" ]; then
|
||||||
retlist="--wpsc --wpfc --user --email --pass --wpredis --wprocket --letsencrypt --letsencrypt=subdomain --letsencrypt=wildcard -le --php73 --dns --dns=dns_cf --dns=dns_do"
|
retlist="--wpsc --wpfc --user --email --pass --wpredis --wprocket --wpce --letsencrypt --letsencrypt=subdomain --letsencrypt=wildcard -le --php73 --dns --dns=dns_cf --dns=dns_do"
|
||||||
elif [ ${COMP_WORDS[2]} == "update" ]; then
|
elif [ ${COMP_WORDS[2]} == "update" ]; then
|
||||||
retlist="--wpfc --wpsc --php73 --php73=off --wpredis --wprocket --letsencrypt --letsencrypt=subdomain --letsencrypt=wildcard --letsencrypt=off --letsencrypt=renew --letsencrypt=clean -le --dns --dns=dns_cf --dns=dns_do"
|
retlist="--wpfc --wpsc --php73 --php73=off --wpredis --wprocket --wpce --letsencrypt --letsencrypt=subdomain --letsencrypt=wildcard --letsencrypt=off --letsencrypt=renew --letsencrypt=clean -le --dns --dns=dns_cf --dns=dns_do"
|
||||||
else
|
else
|
||||||
retlist=""
|
retlist=""
|
||||||
fi
|
fi
|
||||||
@@ -246,9 +246,9 @@ _wo_complete()
|
|||||||
-- $cur) )
|
-- $cur) )
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"--wpredis --wprocket" | "--wpfc" | "--wpsc" | "--wpsubdir" | "--wpsubdomain" | "--user" | "--pass" | "--email" | "--wp")
|
"--wpredis --wprocket --wpce" | "--wpfc" | "--wpsc" | "--wpsubdir" | "--wpsubdomain" | "--user" | "--pass" | "--email" | "--wp")
|
||||||
if [ ${COMP_WORDS[2]} == "create" ]; then
|
if [ ${COMP_WORDS[2]} == "create" ]; then
|
||||||
retlist="--user --pass --email --wp --wpsubdir --wpsubdomain --wpfc --wpsc --wpredis --wprocket --php73 --letsencrypt --letsencrypt=subdomain --letsencrypt=wildcard -le --dns --dns=dns_cf --dns=dns_do"
|
retlist="--user --pass --email --wp --wpsubdir --wpsubdomain --wpfc --wpsc --wpredis --wprocket --wpce --php73 --letsencrypt --letsencrypt=subdomain --letsencrypt=wildcard -le --dns --dns=dns_cf --dns=dns_do"
|
||||||
else
|
else
|
||||||
retlist=""
|
retlist=""
|
||||||
fi
|
fi
|
||||||
@@ -259,9 +259,9 @@ _wo_complete()
|
|||||||
-- $cur) )
|
-- $cur) )
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"--wpredis --wprocket" | "--wpfc")
|
"--wpredis --wprocket --wpce" | "--wpfc")
|
||||||
if [ ${COMP_WORDS[2]} == "update" ]; then
|
if [ ${COMP_WORDS[2]} == "update" ]; then
|
||||||
retlist="--password --php --php73 --mysql --wp --wpsubdir --wpsubdomain --wpfc --wpsc --wpredis --wprocket --letsencrypt --letsencrypt=subdomain --letsencrypt=off --letsencrypt=renew --letsencrypt=clean -le --dns --dns=dns_cf --dns=dns_do"
|
retlist="--password --php --php73 --mysql --wp --wpsubdir --wpsubdomain --wpfc --wpsc --wpredis --wprocket --wpce --letsencrypt --letsencrypt=subdomain --letsencrypt=off --letsencrypt=renew --letsencrypt=clean -le --dns --dns=dns_cf --dns=dns_do"
|
||||||
else
|
else
|
||||||
retlist=""
|
retlist=""
|
||||||
fi
|
fi
|
||||||
@@ -314,7 +314,7 @@ _wo_complete()
|
|||||||
elif [ ${COMP_WORDS[2]} == "delete" ]; then
|
elif [ ${COMP_WORDS[2]} == "delete" ]; then
|
||||||
retlist="--db --files --force"
|
retlist="--db --files --force"
|
||||||
elif [ ${COMP_WORDS[2]} == "update" ]; then
|
elif [ ${COMP_WORDS[2]} == "update" ]; then
|
||||||
retlist="--password --php --mysql --wp --wpsubdir --wpsubdomain --wpfc --wpsc --wpredis --wprocket --letsencrypt --letsencrypt=subdomain --letsencrypt=off --letsencrypt=renew"
|
retlist="--password --php --mysql --wp --wpsubdir --wpsubdomain --wpfc --wpsc --wpredis --wprocket --wpce --letsencrypt --letsencrypt=subdomain --letsencrypt=off --letsencrypt=renew"
|
||||||
else
|
else
|
||||||
retlist=""
|
retlist=""
|
||||||
fi
|
fi
|
||||||
@@ -363,7 +363,7 @@ _wo_complete()
|
|||||||
case "$mprev" in
|
case "$mprev" in
|
||||||
"--user" | "--email" | "--pass")
|
"--user" | "--email" | "--pass")
|
||||||
if [ ${COMP_WORDS[2]} == "create" ]; then
|
if [ ${COMP_WORDS[2]} == "create" ]; then
|
||||||
retlist="--user --pass --email --html --php --php73 --mysql --wp --wpsubdir --wpsubdomain --wpfc --wpsc --wpredis --wprocket --letsencrypt --letsencrypt=subdomain --letsencrypt=wildcard -le --dns --dns=dns_cf --dns=dns_do"
|
retlist="--user --pass --email --html --php --php73 --mysql --wp --wpsubdir --wpsubdomain --wpfc --wpsc --wpredis --wprocket --wpce --letsencrypt --letsencrypt=subdomain --letsencrypt=wildcard -le --dns --dns=dns_cf --dns=dns_do"
|
||||||
fi
|
fi
|
||||||
ret="${retlist[@]/$prev}"
|
ret="${retlist[@]/$prev}"
|
||||||
COMPREPLY=( $(compgen \
|
COMPREPLY=( $(compgen \
|
||||||
|
|||||||
48
install
48
install
@@ -7,10 +7,11 @@
|
|||||||
# Copyright (c) 2019 - WordOps
|
# Copyright (c) 2019 - WordOps
|
||||||
# This script is licensed under M.I.T
|
# This script is licensed under M.I.T
|
||||||
# -------------------------------------------------------------------------
|
# -------------------------------------------------------------------------
|
||||||
# Version 3.9.8 - 2019-08-17
|
# wget -qO wo wops.cc && sudo bash wo
|
||||||
# -------------------------------------------------------------------------
|
# -------------------------------------------------------------------------
|
||||||
readonly wo_version_old="2.2.3"
|
# Version 3.9.8.1 - 2019-08-18
|
||||||
readonly wo_version_new="3.9.8"
|
# -------------------------------------------------------------------------
|
||||||
|
|
||||||
# CONTENTS
|
# CONTENTS
|
||||||
# ---
|
# ---
|
||||||
# 1. VARIABLES AND DECLARATIONS
|
# 1. VARIABLES AND DECLARATIONS
|
||||||
@@ -87,22 +88,32 @@ done
|
|||||||
###
|
###
|
||||||
if [[ $EUID -ne 0 ]]; then
|
if [[ $EUID -ne 0 ]]; then
|
||||||
wo_lib_echo_fail "Sudo privilege required..."
|
wo_lib_echo_fail "Sudo privilege required..."
|
||||||
wo_lib_echo_fail "Use: curl -sL wops.cc | sudo bash"
|
wo_lib_echo_fail "Use: wget -qO wo wops.cc && sudo bash wo "
|
||||||
exit 100
|
exit 100
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
###
|
||||||
|
# 1- Update the apt sewers with fresh info
|
||||||
|
###
|
||||||
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
[ -z "$wo_travis" ] && {
|
||||||
|
apt-get update -qq
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ -z "$(command -v curl)" ]; then
|
||||||
|
apt-get -y install curl -qq
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f ./setup.py ]; then
|
||||||
|
readonly wo_version_new=$(grep "version='" setup.py | awk -F "'" '{print$2}' 2>&1)
|
||||||
|
else
|
||||||
|
readonly wo_version_new=$(curl -sL https://wops.cc/setup.py 2>&1 | grep "version='" | awk -F "'" '{print$2}' 2>&1)
|
||||||
|
fi
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
wo_lib_echo "Welcome to WordOps install script v${wo_version_new}"
|
wo_lib_echo "Welcome to WordOps install script v${wo_version_new}"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
###
|
|
||||||
# 1- Update the apt sewers with fresh info
|
|
||||||
###
|
|
||||||
[ -z "$wo_travis" ] && {
|
|
||||||
wo_lib_echo "Updating apt-get repository info"
|
|
||||||
apt-get update -qq
|
|
||||||
}
|
|
||||||
|
|
||||||
###
|
###
|
||||||
# 1- Check whether lsb_release is installed, and if not, install it
|
# 1- Check whether lsb_release is installed, and if not, install it
|
||||||
###
|
###
|
||||||
@@ -176,7 +187,7 @@ fi
|
|||||||
wo_install_dep() {
|
wo_install_dep() {
|
||||||
|
|
||||||
{
|
{
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
|
||||||
[ -z "$wo_travis" ] && {
|
[ -z "$wo_travis" ] && {
|
||||||
# update server packages
|
# update server packages
|
||||||
apt-get dist-upgrade --option=Dpkg::options::=--force-confmiss --option=Dpkg::options::=--force-confold --option=Dpkg::options::=--force-unsafe-io --assume-yes --quiet
|
apt-get dist-upgrade --option=Dpkg::options::=--force-confmiss --option=Dpkg::options::=--force-confold --option=Dpkg::options::=--force-unsafe-io --assume-yes --quiet
|
||||||
@@ -186,7 +197,7 @@ wo_install_dep() {
|
|||||||
apt-get -option=Dpkg::options::=--force-confmiss --option=Dpkg::options::=--force-confold --assume-yes install \
|
apt-get -option=Dpkg::options::=--force-confmiss --option=Dpkg::options::=--force-confold --assume-yes install \
|
||||||
build-essential curl gzip python3 python3-apt python3-setuptools python3-requests python3-dev sqlite3 git tar software-properties-common pigz \
|
build-essential curl gzip python3 python3-apt python3-setuptools python3-requests python3-dev sqlite3 git tar software-properties-common pigz \
|
||||||
gnupg2 cron ccze rsync tree haveged ufw unattended-upgrades tzdata ntp > /dev/null 2>&1
|
gnupg2 cron ccze rsync tree haveged ufw unattended-upgrades tzdata ntp > /dev/null 2>&1
|
||||||
add-apt-repository ppa:wordops/nginx-wo -yu
|
add-apt-repository ppa:wordops/nginx-wo -yu
|
||||||
else
|
else
|
||||||
# install dependencies
|
# install dependencies
|
||||||
apt-get -option=Dpkg::options::=--force-confmiss --option=Dpkg::options::=--force-confold --assume-yes install \
|
apt-get -option=Dpkg::options::=--force-confmiss --option=Dpkg::options::=--force-confold --assume-yes install \
|
||||||
@@ -315,13 +326,6 @@ wo_sync_db() {
|
|||||||
echo "INSERT INTO sites (sitename, site_type, cache_type, site_path, is_enabled, is_ssl, storage_fs, storage_db)
|
echo "INSERT INTO sites (sitename, site_type, cache_type, site_path, is_enabled, is_ssl, storage_fs, storage_db)
|
||||||
VALUES (\"$site\", \"$wo_site_current\", \"$wo_site_current_cache\", \"$wo_webroot\", \"$wo_site_status\", 0, 'ext4', 'mysql');" | sqlite3 /var/lib/wo/dbase.db
|
VALUES (\"$site\", \"$wo_site_current\", \"$wo_site_current_cache\", \"$wo_webroot\", \"$wo_site_status\", 0, 'ext4', 'mysql');" | sqlite3 /var/lib/wo/dbase.db
|
||||||
|
|
||||||
wo_lib_echo "Updating WordOps Database"
|
|
||||||
echo "ALTER TABLE sites ADD COLUMN db_name varchar;" | sqlite3 /var/lib/wo/dbase.db
|
|
||||||
echo "ALTER TABLE sites ADD COLUMN db_user varchar; " | sqlite3 /var/lib/wo/dbase.db
|
|
||||||
echo "ALTER TABLE sites ADD COLUMN db_password varchar;" | sqlite3 /var/lib/wo/dbase.db
|
|
||||||
echo "ALTER TABLE sites ADD COLUMN db_host varchar;" | sqlite3 /var/lib/wo/dbase.db
|
|
||||||
echo "ALTER TABLE sites ADD COLUMN is_hhvm INT DEFAULT '0';" | sqlite3 /var/lib/wo/dbase.db
|
|
||||||
echo "ALTER TABLE sites ADD COLUMN php_version varchar DEFAULT \"$wo_php_version\";" | sqlite3 /var/lib/wo/dbase.db
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# echo "UPDATE sites SET php_version = REPLACE(php_version, '5.6', '7.2');" | sqlite3 /var/lib/wo/dbase.db
|
# echo "UPDATE sites SET php_version = REPLACE(php_version, '5.6', '7.2');" | sqlite3 /var/lib/wo/dbase.db
|
||||||
@@ -735,7 +739,7 @@ else
|
|||||||
# 1 - WO already installed
|
# 1 - WO already installed
|
||||||
if [ -x /usr/local/bin/wo ]; then
|
if [ -x /usr/local/bin/wo ]; then
|
||||||
if ! {
|
if ! {
|
||||||
wo -v 2>&1 | grep $wo_version_new
|
wo -v 2>&1 | grep -q "$wo_version_new"
|
||||||
} || [ "$wo_force_install" = "y" ]; then
|
} || [ "$wo_force_install" = "y" ]; then
|
||||||
if [ -z "$wo_force_install" ]; then
|
if [ -z "$wo_force_install" ]; then
|
||||||
echo -e "Update WordOps to $wo_version_new (y/n): " && read -r WO_ANSWER
|
echo -e "Update WordOps to $wo_version_new (y/n): " && read -r WO_ANSWER
|
||||||
|
|||||||
2
setup.py
2
setup.py
@@ -57,7 +57,7 @@ if not os.path.isfile('/root/.gitconfig'):
|
|||||||
shutil.copy2(os.path.expanduser("~")+'/.gitconfig', '/root/.gitconfig')
|
shutil.copy2(os.path.expanduser("~")+'/.gitconfig', '/root/.gitconfig')
|
||||||
|
|
||||||
setup(name='wo',
|
setup(name='wo',
|
||||||
version='3.9.8',
|
version='3.9.8.1',
|
||||||
description=long_description,
|
description=long_description,
|
||||||
long_description=long_description,
|
long_description=long_description,
|
||||||
classifiers=[],
|
classifiers=[],
|
||||||
|
|||||||
@@ -65,6 +65,8 @@ class WOApp(foundation.CementApp):
|
|||||||
|
|
||||||
debug = TOGGLE_DEBUG
|
debug = TOGGLE_DEBUG
|
||||||
|
|
||||||
|
exit_on_close = True
|
||||||
|
|
||||||
|
|
||||||
class WOTestApp(WOApp):
|
class WOTestApp(WOApp):
|
||||||
"""A test app that is better suited for testing."""
|
"""A test app that is better suited for testing."""
|
||||||
|
|||||||
@@ -8,8 +8,10 @@ from wo.core.domainvalidate import ValidateDomain
|
|||||||
from wo.core.fileutils import WOFileUtils
|
from wo.core.fileutils import WOFileUtils
|
||||||
from wo.cli.plugins.site_functions import *
|
from wo.cli.plugins.site_functions import *
|
||||||
from wo.core.services import WOService
|
from wo.core.services import WOService
|
||||||
from wo.cli.plugins.sitedb import *
|
from wo.cli.plugins.sitedb import (addNewSite, getSiteInfo,
|
||||||
|
updateSiteInfo, deleteSiteInfo, getAllsites)
|
||||||
from wo.core.git import WOGit
|
from wo.core.git import WOGit
|
||||||
|
from wo.core.logging import Log
|
||||||
from subprocess import Popen
|
from subprocess import Popen
|
||||||
from wo.core.nginxhashbucket import hashbucket
|
from wo.core.nginxhashbucket import hashbucket
|
||||||
import os
|
import os
|
||||||
@@ -29,6 +31,7 @@ class WOSiteController(CementBaseController):
|
|||||||
label = 'site'
|
label = 'site'
|
||||||
stacked_on = 'base'
|
stacked_on = 'base'
|
||||||
stacked_type = 'nested'
|
stacked_type = 'nested'
|
||||||
|
exit_on_close = True
|
||||||
description = ('Performs website specific operations')
|
description = ('Performs website specific operations')
|
||||||
arguments = [
|
arguments = [
|
||||||
(['site_name'],
|
(['site_name'],
|
||||||
@@ -248,6 +251,7 @@ class WOSiteEditController(CementBaseController):
|
|||||||
label = 'edit'
|
label = 'edit'
|
||||||
stacked_on = 'site'
|
stacked_on = 'site'
|
||||||
stacked_type = 'nested'
|
stacked_type = 'nested'
|
||||||
|
exit_on_close = True
|
||||||
description = ('Edit Nginx configuration of site')
|
description = ('Edit Nginx configuration of site')
|
||||||
arguments = [
|
arguments = [
|
||||||
(['site_name'],
|
(['site_name'],
|
||||||
@@ -301,6 +305,7 @@ class WOSiteCreateController(CementBaseController):
|
|||||||
label = 'create'
|
label = 'create'
|
||||||
stacked_on = 'site'
|
stacked_on = 'site'
|
||||||
stacked_type = 'nested'
|
stacked_type = 'nested'
|
||||||
|
exit_on_close = True
|
||||||
description = ('this commands set up configuration and installs '
|
description = ('this commands set up configuration and installs '
|
||||||
'required files as options are provided')
|
'required files as options are provided')
|
||||||
arguments = [
|
arguments = [
|
||||||
@@ -805,6 +810,7 @@ class WOSiteUpdateController(CementBaseController):
|
|||||||
label = 'update'
|
label = 'update'
|
||||||
stacked_on = 'site'
|
stacked_on = 'site'
|
||||||
stacked_type = 'nested'
|
stacked_type = 'nested'
|
||||||
|
exit_on_close = True
|
||||||
description = ('This command updates websites configuration to '
|
description = ('This command updates websites configuration to '
|
||||||
'another as per the options are provided')
|
'another as per the options are provided')
|
||||||
arguments = [
|
arguments = [
|
||||||
@@ -1027,7 +1033,7 @@ class WOSiteUpdateController(CementBaseController):
|
|||||||
data = dict(site_name=wo_domain, www_domain=wo_www_domain,
|
data = dict(site_name=wo_domain, www_domain=wo_www_domain,
|
||||||
static=False, basic=True, wp=False, wpfc=False,
|
static=False, basic=True, wp=False, wpfc=False,
|
||||||
wpsc=False, wpredis=False, wprocket=False, wpce=False,
|
wpsc=False, wpredis=False, wprocket=False, wpce=False,
|
||||||
multisite=False,wpsubdir=False, webroot=wo_site_webroot,
|
multisite=False, wpsubdir=False, webroot=wo_site_webroot,
|
||||||
wo_db_name='', wo_db_user='', wo_db_pass='',
|
wo_db_name='', wo_db_user='', wo_db_pass='',
|
||||||
wo_db_host='',
|
wo_db_host='',
|
||||||
currsitetype=oldsitetype, currcachetype=oldcachetype)
|
currsitetype=oldsitetype, currcachetype=oldcachetype)
|
||||||
@@ -1741,6 +1747,7 @@ class WOSiteDeleteController(CementBaseController):
|
|||||||
label = 'delete'
|
label = 'delete'
|
||||||
stacked_on = 'site'
|
stacked_on = 'site'
|
||||||
stacked_type = 'nested'
|
stacked_type = 'nested'
|
||||||
|
exit_on_close = True
|
||||||
description = 'delete an existing website'
|
description = 'delete an existing website'
|
||||||
arguments = [
|
arguments = [
|
||||||
(['site_name'],
|
(['site_name'],
|
||||||
@@ -1878,6 +1885,7 @@ class WOSiteListController(CementBaseController):
|
|||||||
label = 'list'
|
label = 'list'
|
||||||
stacked_on = 'site'
|
stacked_on = 'site'
|
||||||
stacked_type = 'nested'
|
stacked_type = 'nested'
|
||||||
|
exit_on_close = True
|
||||||
description = 'List websites'
|
description = 'List websites'
|
||||||
arguments = [
|
arguments = [
|
||||||
(['--enabled'],
|
(['--enabled'],
|
||||||
|
|||||||
@@ -8,15 +8,15 @@ import string
|
|||||||
import subprocess
|
import subprocess
|
||||||
from subprocess import CalledProcessError
|
from subprocess import CalledProcessError
|
||||||
|
|
||||||
from wo.cli.plugins.sitedb import *
|
from wo.cli.plugins.sitedb import getSiteInfo
|
||||||
from wo.cli.plugins.stack import WOStackController
|
from wo.cli.plugins.stack import WOStackController
|
||||||
from wo.core.aptget import WOAptGet
|
from wo.core.aptget import WOAptGet
|
||||||
from wo.core.fileutils import WOFileUtils
|
from wo.core.fileutils import WOFileUtils
|
||||||
from wo.core.git import WOGit
|
from wo.core.git import WOGit
|
||||||
from wo.core.logging import Log
|
from wo.core.logging import Log
|
||||||
from wo.core.mysql import *
|
from wo.core.mysql import WOMysql
|
||||||
from wo.core.services import WOService
|
from wo.core.services import WOService
|
||||||
from wo.cli.plugins.stack_pref import pre_pref, post_pref
|
from wo.cli.plugins.stack_pref import post_pref
|
||||||
from wo.core.shellexec import CommandExecutionError, WOShellExec
|
from wo.core.shellexec import CommandExecutionError, WOShellExec
|
||||||
from wo.core.sslutils import SSL
|
from wo.core.sslutils import SSL
|
||||||
from wo.core.variables import WOVariables
|
from wo.core.variables import WOVariables
|
||||||
@@ -1365,6 +1365,19 @@ def setupLetsEncrypt(self, wo_domain_name, subdomain=False, wildcard=False,
|
|||||||
.format(WOVariables.wo_ssl_live, wo_domain_name))
|
.format(WOVariables.wo_ssl_live, wo_domain_name))
|
||||||
sslconf.close()
|
sslconf.close()
|
||||||
# updateSiteInfo(self, wo_domain_name, ssl=True)
|
# updateSiteInfo(self, wo_domain_name, ssl=True)
|
||||||
|
if not WOFileUtils.grep(self, '/var/www/22222/conf/nginx/ssl.conf',
|
||||||
|
'/etc/letsencrypt'):
|
||||||
|
Log.info(self, "Securing WordOps backend with {0} certificate"
|
||||||
|
.format(wo_domain_name))
|
||||||
|
sslconf = open("/var/www/22222/conf/nginx/ssl.conf"
|
||||||
|
.format(wo_domain_name),
|
||||||
|
encoding='utf-8', mode='w')
|
||||||
|
sslconf.write("ssl_certificate {0}/{1}/fullchain.pem;\n"
|
||||||
|
"ssl_certificate_key {0}/{1}/key.pem;\n"
|
||||||
|
"ssl_trusted_certificate {0}/{1}/ca.pem;\n"
|
||||||
|
"ssl_stapling_verify on;\n"
|
||||||
|
.format(WOVariables.wo_ssl_live, wo_domain_name))
|
||||||
|
sslconf.close()
|
||||||
|
|
||||||
WOGit.add(self, ["/etc/letsencrypt"],
|
WOGit.add(self, ["/etc/letsencrypt"],
|
||||||
msg="Adding letsencrypt folder")
|
msg="Adding letsencrypt folder")
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ class WOStackController(CementBaseController):
|
|||||||
label = 'stack'
|
label = 'stack'
|
||||||
stacked_on = 'base'
|
stacked_on = 'base'
|
||||||
stacked_type = 'nested'
|
stacked_type = 'nested'
|
||||||
|
exit_on_close = True
|
||||||
description = 'Stack command manages stack operations'
|
description = 'Stack command manages stack operations'
|
||||||
arguments = [
|
arguments = [
|
||||||
(['--all'],
|
(['--all'],
|
||||||
|
|||||||
@@ -800,7 +800,7 @@ def post_pref(self, apt_packages, packages):
|
|||||||
encoding='utf-8', mode='w') as myfile:
|
encoding='utf-8', mode='w') as myfile:
|
||||||
myfile.write("<?php\nphpinfo();\n?>")
|
myfile.write("<?php\nphpinfo();\n?>")
|
||||||
|
|
||||||
WOFileUtils.chown(self, "{0}22222"
|
WOFileUtils.chown(self, "{0}22222/htdocs"
|
||||||
.format(WOVariables.wo_webroot),
|
.format(WOVariables.wo_webroot),
|
||||||
WOVariables.wo_php_user,
|
WOVariables.wo_php_user,
|
||||||
WOVariables.wo_php_user, recursive=True)
|
WOVariables.wo_php_user, recursive=True)
|
||||||
@@ -964,7 +964,7 @@ def post_pref(self, apt_packages, packages):
|
|||||||
encoding='utf-8', mode='w') as myfile:
|
encoding='utf-8', mode='w') as myfile:
|
||||||
myfile.write("<?php\nphpinfo();\n?>")
|
myfile.write("<?php\nphpinfo();\n?>")
|
||||||
|
|
||||||
WOFileUtils.chown(self, "{0}22222"
|
WOFileUtils.chown(self, "{0}22222/htdocs"
|
||||||
.format(WOVariables.wo_webroot),
|
.format(WOVariables.wo_webroot),
|
||||||
WOVariables.wo_php_user,
|
WOVariables.wo_php_user,
|
||||||
WOVariables.wo_php_user, recursive=True)
|
WOVariables.wo_php_user, recursive=True)
|
||||||
@@ -1282,7 +1282,7 @@ def post_pref(self, apt_packages, packages):
|
|||||||
blowfish_key = ''.join([random.choice
|
blowfish_key = ''.join([random.choice
|
||||||
(string.ascii_letters +
|
(string.ascii_letters +
|
||||||
string.digits)
|
string.digits)
|
||||||
for n in range(25)])
|
for n in range(32)])
|
||||||
WOFileUtils.searchreplace(self,
|
WOFileUtils.searchreplace(self,
|
||||||
'{0}22222/htdocs/db/pma'
|
'{0}22222/htdocs/db/pma'
|
||||||
'/config.inc.php'
|
'/config.inc.php'
|
||||||
@@ -1304,8 +1304,10 @@ def post_pref(self, apt_packages, packages):
|
|||||||
"[\'Servers\'][$i][\'host\'] = \'{0}\';"
|
"[\'Servers\'][$i][\'host\'] = \'{0}\';"
|
||||||
.format(WOVariables.wo_mysql_host))
|
.format(WOVariables.wo_mysql_host))
|
||||||
Log.debug(self, 'Setting Privileges of webroot permission to '
|
Log.debug(self, 'Setting Privileges of webroot permission to '
|
||||||
'{0}22222/htdocs/db/pma file '.format(WOVariables.wo_webroot))
|
'{0}22222/htdocs/db/pma file '
|
||||||
WOFileUtils.chown(self, '{0}22222'.format(WOVariables.wo_webroot),
|
.format(WOVariables.wo_webroot))
|
||||||
|
WOFileUtils.chown(self, '{0}22222/htdocs'
|
||||||
|
.format(WOVariables.wo_webroot),
|
||||||
WOVariables.wo_php_user,
|
WOVariables.wo_php_user,
|
||||||
WOVariables.wo_php_user,
|
WOVariables.wo_php_user,
|
||||||
recursive=True)
|
recursive=True)
|
||||||
@@ -1405,7 +1407,7 @@ def post_pref(self, apt_packages, packages):
|
|||||||
Log.debug(self, "Setting Privileges to "
|
Log.debug(self, "Setting Privileges to "
|
||||||
"{0}22222/htdocs"
|
"{0}22222/htdocs"
|
||||||
.format(WOVariables.wo_webroot))
|
.format(WOVariables.wo_webroot))
|
||||||
WOFileUtils.chown(self, '{0}22222'
|
WOFileUtils.chown(self, '{0}22222/htdocs'
|
||||||
.format(WOVariables.wo_webroot),
|
.format(WOVariables.wo_webroot),
|
||||||
WOVariables.wo_php_user,
|
WOVariables.wo_php_user,
|
||||||
WOVariables.wo_php_user,
|
WOVariables.wo_php_user,
|
||||||
@@ -1428,7 +1430,7 @@ def post_pref(self, apt_packages, packages):
|
|||||||
Log.debug(self, "Setting Privileges to "
|
Log.debug(self, "Setting Privileges to "
|
||||||
"{0}22222/htdocs/files"
|
"{0}22222/htdocs/files"
|
||||||
.format(WOVariables.wo_webroot))
|
.format(WOVariables.wo_webroot))
|
||||||
WOFileUtils.chown(self, '{0}22222'
|
WOFileUtils.chown(self, '{0}22222/htdocs'
|
||||||
.format(WOVariables.wo_webroot),
|
.format(WOVariables.wo_webroot),
|
||||||
WOVariables.wo_php_user,
|
WOVariables.wo_php_user,
|
||||||
WOVariables.wo_php_user,
|
WOVariables.wo_php_user,
|
||||||
@@ -1473,7 +1475,7 @@ def post_pref(self, apt_packages, packages):
|
|||||||
Log.debug(self, "Setting Privileges of webroot permission to "
|
Log.debug(self, "Setting Privileges of webroot permission to "
|
||||||
"{0}22222/htdocs/php/webgrind/ file "
|
"{0}22222/htdocs/php/webgrind/ file "
|
||||||
.format(WOVariables.wo_webroot))
|
.format(WOVariables.wo_webroot))
|
||||||
WOFileUtils.chown(self, '{0}22222'
|
WOFileUtils.chown(self, '{0}22222/htdocs'
|
||||||
.format(WOVariables.wo_webroot),
|
.format(WOVariables.wo_webroot),
|
||||||
WOVariables.wo_php_user,
|
WOVariables.wo_php_user,
|
||||||
WOVariables.wo_php_user,
|
WOVariables.wo_php_user,
|
||||||
@@ -1550,7 +1552,7 @@ def post_pref(self, apt_packages, packages):
|
|||||||
.format(WOVariables.wo_webroot))
|
.format(WOVariables.wo_webroot))
|
||||||
os.makedirs('{0}22222/htdocs/cache/redis/phpRedisAdmin'
|
os.makedirs('{0}22222/htdocs/cache/redis/phpRedisAdmin'
|
||||||
.format(WOVariables.wo_webroot))
|
.format(WOVariables.wo_webroot))
|
||||||
WOFileUtils.chown(self, '{0}22222'
|
WOFileUtils.chown(self, '{0}22222/htdocs'
|
||||||
.format(WOVariables.wo_webroot),
|
.format(WOVariables.wo_webroot),
|
||||||
WOVariables.wo_php_user,
|
WOVariables.wo_php_user,
|
||||||
WOVariables.wo_php_user,
|
WOVariables.wo_php_user,
|
||||||
@@ -1565,7 +1567,7 @@ def post_pref(self, apt_packages, packages):
|
|||||||
Log.debug(self, 'Setting Privileges of webroot permission to '
|
Log.debug(self, 'Setting Privileges of webroot permission to '
|
||||||
'{0}22222/htdocs/cache/file '
|
'{0}22222/htdocs/cache/file '
|
||||||
.format(WOVariables.wo_webroot))
|
.format(WOVariables.wo_webroot))
|
||||||
WOFileUtils.chown(self, '{0}22222'
|
WOFileUtils.chown(self, '{0}22222/htdocs'
|
||||||
.format(WOVariables.wo_webroot),
|
.format(WOVariables.wo_webroot),
|
||||||
WOVariables.wo_php_user,
|
WOVariables.wo_php_user,
|
||||||
WOVariables.wo_php_user,
|
WOVariables.wo_php_user,
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ class WOStackStatusController(CementBaseController):
|
|||||||
label = 'stack_services'
|
label = 'stack_services'
|
||||||
stacked_on = 'stack'
|
stacked_on = 'stack'
|
||||||
stacked_type = 'embedded'
|
stacked_type = 'embedded'
|
||||||
|
exit_on_close = True
|
||||||
description = 'Check the stack status'
|
description = 'Check the stack status'
|
||||||
|
|
||||||
@expose(help="Start stack services")
|
@expose(help="Start stack services")
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ class WOStackUpgradeController(CementBaseController):
|
|||||||
label = 'upgrade'
|
label = 'upgrade'
|
||||||
stacked_on = 'stack'
|
stacked_on = 'stack'
|
||||||
stacked_type = 'nested'
|
stacked_type = 'nested'
|
||||||
|
exit_on_close = True
|
||||||
description = ('Upgrade stack safely')
|
description = ('Upgrade stack safely')
|
||||||
arguments = [
|
arguments = [
|
||||||
(['--all'],
|
(['--all'],
|
||||||
@@ -229,6 +230,10 @@ class WOStackUpgradeController(CementBaseController):
|
|||||||
'wo-dashboard.tar.gz',
|
'wo-dashboard.tar.gz',
|
||||||
'{0}22222/htdocs'
|
'{0}22222/htdocs'
|
||||||
.format(WOVariables.wo_webroot))
|
.format(WOVariables.wo_webroot))
|
||||||
|
WOFileUtils.chown(self, "{0}22222/htdocs"
|
||||||
|
.format(WOVariables.wo_webroot),
|
||||||
|
WOVariables.wo_php_user,
|
||||||
|
WOVariables.wo_php_user, recursive=True)
|
||||||
|
|
||||||
if pargs.composer:
|
if pargs.composer:
|
||||||
Log.info(self, "Upgrading Composer, please wait...")
|
Log.info(self, "Upgrading Composer, please wait...")
|
||||||
@@ -257,6 +262,10 @@ class WOStackUpgradeController(CementBaseController):
|
|||||||
.format(WOVariables.wo_phpmyadmin),
|
.format(WOVariables.wo_phpmyadmin),
|
||||||
'{0}22222/htdocs/db/pma/'
|
'{0}22222/htdocs/db/pma/'
|
||||||
.format(WOVariables.wo_webroot))
|
.format(WOVariables.wo_webroot))
|
||||||
|
WOFileUtils.chown(self, "{0}22222/htdocs"
|
||||||
|
.format(WOVariables.wo_webroot),
|
||||||
|
WOVariables.wo_php_user,
|
||||||
|
WOVariables.wo_php_user, recursive=True)
|
||||||
|
|
||||||
Log.info(self, "Successfully updated packages")
|
Log.info(self, "Successfully updated packages")
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -15,11 +15,12 @@ events {
|
|||||||
|
|
||||||
|
|
||||||
http {
|
http {
|
||||||
|
|
||||||
##
|
##
|
||||||
# WordOps Settings
|
# WordOps Settings
|
||||||
##
|
##
|
||||||
|
|
||||||
|
keepalive_timeout 8;
|
||||||
|
|
||||||
# Nginx AIO : See - https://www.nginx.com/blog/thread-pools-boost-performance-9x/
|
# Nginx AIO : See - https://www.nginx.com/blog/thread-pools-boost-performance-9x/
|
||||||
# http://nginx.org/en/docs/http/ngx_http_core_module.html#aio
|
# http://nginx.org/en/docs/http/ngx_http_core_module.html#aio
|
||||||
aio threads;
|
aio threads;
|
||||||
@@ -28,7 +29,7 @@ http {
|
|||||||
reset_timedout_connection on;
|
reset_timedout_connection on;
|
||||||
more_set_headers "X-Powered-By : WordOps";
|
more_set_headers "X-Powered-By : WordOps";
|
||||||
|
|
||||||
# Limit Request
|
# Limit Request
|
||||||
limit_req_status 403;
|
limit_req_status 403;
|
||||||
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
|
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,6 @@
|
|||||||
tcp_nopush on;
|
tcp_nopush on;
|
||||||
tcp_nodelay on;
|
tcp_nodelay on;
|
||||||
|
|
||||||
keepalive_timeout 8;
|
|
||||||
keepalive_requests 500;
|
keepalive_requests 500;
|
||||||
keepalive_disable msie6;
|
keepalive_disable msie6;
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ class Log:
|
|||||||
if exit:
|
if exit:
|
||||||
self.app.close(1)
|
self.app.close(1)
|
||||||
|
|
||||||
|
|
||||||
def info(self, msg, end='\n', log=True):
|
def info(self, msg, end='\n', log=True):
|
||||||
"""
|
"""
|
||||||
Logs info messages into log file
|
Logs info messages into log file
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ class WOVariables():
|
|||||||
"""Intialization of core variables"""
|
"""Intialization of core variables"""
|
||||||
|
|
||||||
# WordOps version
|
# WordOps version
|
||||||
wo_version = "3.9.8"
|
wo_version = "3.9.8.1"
|
||||||
# WordOps packages versions
|
# WordOps packages versions
|
||||||
wo_wp_cli = "2.2.0"
|
wo_wp_cli = "2.2.0"
|
||||||
wo_adminer = "4.7.2"
|
wo_adminer = "4.7.2"
|
||||||
|
|||||||
Reference in New Issue
Block a user