diff --git a/README.md b/README.md index 177cb75..a15cbc0 100644 --- a/README.md +++ b/README.md @@ -59,6 +59,7 @@ - Ubuntu 19.04 (Disco) - Debian 8 (Jessie) - Debian 9 (Stretch) +- Debian 10 (Buster) - Raspbian 9 (Stretch) ### Ports requirements diff --git a/install b/install index 842d006..9a06f37 100755 --- a/install +++ b/install @@ -144,9 +144,9 @@ if [ -z "$wo_force_install" ]; then wo_lib_echo_fail "other Linux distributions and perhaps even Unix deratives." exit 100 else - check_wo_linux_distro=$(lsb_release -sc | grep -E "trusty|xenial|bionic|disco|jessie|stretch") + check_wo_linux_distro=$(lsb_release -sc | grep -E "trusty|xenial|bionic|disco|jessie|stretch|buster") if [ -z "$check_wo_linux_distro" ]; then - wo_lib_echo_fail "WordOps (wo) only supports Ubuntu 14.04/16.04/18.04/19.04 LTS, Debian 8.x, Debian 9.x and Raspbian 9.x" + wo_lib_echo_fail "WordOps (wo) only supports Ubuntu 14.04/16.04/18.04/19.04 LTS, Debian 8.x/9.x/10.x and Raspbian 9.x" exit 100 fi fi @@ -633,7 +633,7 @@ wo_tweak_kernel() { if [ "$WO_ARCH" = "x86_64" ]; then rm -f /etc/sysctl.d/60-ubuntu-nginx-web-server.conf wget -qO /etc/sysctl.d/60-wo-tweaks.conf https://raw.githubusercontent.com/WordOps/WordOps/updating-configuration/wo/cli/templates/sysctl.mustache - if [ "$wo_distro_version" = "bionic" ] || [ "$wo_distro_version" = "disco" ]; then + if [ "$wo_distro_version" = "bionic" ] || [ "$wo_distro_version" = "disco" ] || [ "$wo_distro_version" = "buster" ]; then modprobe tcp_bbr && echo 'tcp_bbr' >> /etc/modules-load.d/bbr.conf echo -e '\nnet.ipv4.tcp_congestion_control = bbr\nnet.ipv4.tcp_notsent_lowat = 16384' >> /etc/sysctl.d/60-wo-tweaks.conf else diff --git a/wo/cli/plugins/site.py b/wo/cli/plugins/site.py index 9281f71..6457bdd 100644 --- a/wo/cli/plugins/site.py +++ b/wo/cli/plugins/site.py @@ -319,7 +319,8 @@ class WOSiteCreateController(CementBaseController): dict(help="create WordPress multisite with subdomain setup", action='store_true')), (['--wpfc'], - dict(help="create WordPress single/multi site with wpfc cache", + dict(help="create WordPress single/multi site with " + "Nginx fastcgi_cache", action='store_true')), (['--wpsc'], dict(help="create WordPress single/multi site with wpsc cache", @@ -328,7 +329,7 @@ class WOSiteCreateController(CementBaseController): dict(help="create WordPress single/multi site " "with redis cache", action='store_true')), - (['-le', '--letsencrypt'], + (['--le', '--letsencrypt'], dict(help="configure letsencrypt ssl for the site", action='store' or 'store_const', choices=('on', 'subdomain', 'wildcard'), @@ -336,8 +337,7 @@ class WOSiteCreateController(CementBaseController): (['--dns'], dict(help="choose dns provider api for letsencrypt", action='store' or 'store_const', - choices=('cf', 'do'), - const='cf', nargs='?')), + const='dns_cf', nargs='?')), (['--hsts'], dict(help="enable HSTS for site secured with letsencrypt", action='store_true')), @@ -731,18 +731,30 @@ class WOSiteCreateController(CementBaseController): Log.error(self, "Check the log for details: " "`tail /var/log/wo/wordops.log` and please try again") + if self.app.pargs.dns: + wo_acme_dns = pargs.dns + if self.app.pargs.letsencrypt: data['letsencrypt'] = True letsencrypt = True if data['letsencrypt'] is True: if self.app.pargs.letsencrypt == "on": - setupLetsEncrypt(self, wo_domain) + if self.app.pargs.dns: + setupLetsEncrypt(self, wo_domain, False, + False, True, wo_acme_dns) + else: + setupLetsEncrypt(self, wo_domain) httpsRedirect(self, wo_domain) - elif self.app.pargs.letsencrypt == "subodmain": - setupLetsEncryptSubdomain(self, wo_domain) + elif self.app.pargs.letsencrypt == "subdomain": + if self.app.pargs.dns: + setupLetsEncrypt(self, wo_domain, True, False, + True, wo_acme_dns) + else: + setupLetsEncrypt(self, wo_domain, True) httpsRedirect(self, wo_domain) elif self.app.pargs.letsencrypt == "wildcard": - setupLetsEncryptWildcard(self, wo_domain) + setupLetsEncrypt(self, wo_domain, False, True, + True, wo_acme_dns) httpsRedirect(self, wo_domain, True, True) if self.app.pargs.hsts: @@ -804,7 +816,7 @@ class WOSiteUpdateController(CementBaseController): dict(help="update to wpsc cache", action='store_true')), (['--wpredis'], dict(help="update to redis cache", action='store_true')), - (['-le', '--letsencrypt'], + (['--le', '--letsencrypt'], dict(help="configure letsencrypt ssl for the site", action='store' or 'store_const', choices=('on', 'off', 'renew', 'subdomain', 'wildcard'), @@ -844,7 +856,8 @@ class WOSiteUpdateController(CementBaseController): if not (pargs.php or pargs.php73 or pargs.mysql or pargs.wp or pargs.wpsubdir or pargs.wpsubdomain or pargs.wpfc or pargs.wpsc or - pargs.wpredis or pargs.letsencrypt or pargs.hsts): + pargs.wpredis or pargs.letsencrypt or pargs.hsts or + pargs.dns): Log.error(self, "Please provide options to update sites.") if pargs.all: @@ -1264,10 +1277,10 @@ class WOSiteUpdateController(CementBaseController): " http://{0}".format(wo_domain)) return 0 - if self.app.pargs.dns: - wo_acme_dns = pargs.dns - if pargs.letsencrypt: + if self.app.pargs.dns: + wo_acme_dns = pargs.dns + if data['letsencrypt'] is True: if not os.path.isfile("{0}/conf/nginx/ssl.conf.disabled" .format(wo_site_webroot)): diff --git a/wo/cli/plugins/stack.py b/wo/cli/plugins/stack.py index c0c623e..0666209 100644 --- a/wo/cli/plugins/stack.py +++ b/wo/cli/plugins/stack.py @@ -94,7 +94,8 @@ class WOStackController(CementBaseController): if set(WOVariables.wo_mysql).issubset(set(apt_packages)): # add mariadb repository excepted on raspbian and ubuntu 19.04 if ((not WOVariables.wo_platform_codename == 'disco') and - (not WOVariables.wo_platform_distro == 'raspbian')): + (not WOVariables.wo_platform_distro == 'raspbian') and + (not WOVariables.wo_platform_codename == 'buster')): Log.info(self, "Adding repository for MySQL, please wait...") mysql_pref = ("Package: *\nPin: origin " "sfo1.mirrors.digitalocean.com" diff --git a/wo/core/variables.py b/wo/core/variables.py index 6df473c..1963bca 100644 --- a/wo/core/variables.py +++ b/wo/core/variables.py @@ -108,6 +108,10 @@ class WOVariables(): wo_nginx_repo = ("deb http://download.opensuse.org" "/repositories/home:" "/virtubox:/WordOps/Debian_9.0/ /") + elif wo_platform_codename == 'buster': + wo_nginx_repo = ("deb http://download.opensuse.org" + "/repositories/home:" + "/virtubox:/WordOps/Debian_10/ /") else: wo_nginx_repo = ("deb http://download.opensuse.org/repositories/home:" "/virtubox:/WordOps/Raspbian_9.0/ /")