diff --git a/install b/install index 2e72bbe..b1ad1e4 100755 --- a/install +++ b/install @@ -9,7 +9,7 @@ # ------------------------------------------------------------------------- # wget -qO wo wops.cc && sudo -E bash wo # ------------------------------------------------------------------------- -# Version 3.21.0 - 2024-05-03 +# Version 3.21.0 - 2024-06-01 # ------------------------------------------------------------------------- # CONTENTS @@ -213,7 +213,6 @@ wo_install_dep() { build-essential curl gzip python3-pip python3-apt python3-venv gcc python3-dev sqlite3 git tar software-properties-common pigz \ gnupg2 cron ccze rsync apt-transport-https tree haveged ufw unattended-upgrades tzdata ntp zstd idn \ python3-distutils-extra libapt-pkg-dev bash-completion >/dev/null 2>&1 - curl -fsSL https://build.opensuse.org/projects/home:virtubox/public_key | gpg --dearmor -o /usr/share/keyrings/wordops-archive-keyring.gpg else # install dependencies apt-get --option=Dpkg::options::=--force-confmiss --option=Dpkg::options::=--force-confold --assume-yes install \ @@ -223,8 +222,7 @@ wo_install_dep() { # add php repository gpg key curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb dpkg -i /tmp/debsuryorg-archive-keyring.deb && rm -f /tmp/debsuryorg-archive-keyring.deb - # add nginx repository gpg key - curl -fsSL https://build.opensuse.org/projects/home:virtubox/public_key | gpg --dearmor -o /usr/share/keyrings/wordops-archive-keyring.gpg + sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' fi locale-gen en # enable unattended upgades diff --git a/wo/cli/plugins/stack.py b/wo/cli/plugins/stack.py index e8c84da..7d3ad7e 100644 --- a/wo/cli/plugins/stack.py +++ b/wo/cli/plugins/stack.py @@ -16,6 +16,8 @@ from wo.core.mysql import WOMysql from wo.core.services import WOService from wo.core.shellexec import WOShellExec from wo.core.variables import WOVar +from wo.core.nginx import check_config +from wo.core.git import WOGit def wo_stack_hook(app): @@ -90,6 +92,9 @@ class WOStackController(CementBaseController): (['--nanorc'], dict(help='Install nanorc syntax highlighting', action='store_true')), + (['--brotli'], + dict(help='Enable/Disable Brotli compression for Nginx', + action='store_true')), (['--force'], dict(help='Force install/remove/purge without prompt', action='store_true')), @@ -278,6 +283,27 @@ class WOStackController(CementBaseController): Log.debug(self, "ProFTPd already installed") Log.info(self, "ProFTPd already installed") + # brotli + if pargs.brotli: + Log.wait(self, "Enabling Brotli") + WOGit.add(self, ["/etc/nginx"], msg="Commiting pending changes") + if os.path.exists('/etc/nginx/conf.d/brotli.conf.disabled'): + WOFileUtils.mvfile(self, '/etc/nginx/conf.d/brotli.conf.disabled', + '/etc/nginx/conf.d/brotli.conf') + else: + Log.failed(self, "Enabling Brotli") + Log.error(self, "Brotli is already enabled") + if os.path.exists('/etc/nginx/conf.d/gzip.conf'): + WOFileUtils.mvfile(self, '/etc/nginx/conf.d/gzip.conf', + '/etc/nginx/conf.d/gzip.conf.disabled') + if check_config(self): + Log.valide(self, "Enabling Brotli") + WOGit.add(self, ["/etc/nginx"], msg="Enabling Brotli") + WOService.reload_service(self, "nginx") + else: + Log.failed(self, "Enabling Brotli") + WOGit.rollback(self, ["/etc/nginx"]) + # PHPMYADMIN if pargs.phpmyadmin: pargs.composer = True @@ -656,6 +682,27 @@ class WOStackController(CementBaseController): Log.debug(self, "Remove apt_packages variable for ProFTPd") apt_packages = apt_packages + ["proftpd-basic"] + # brotli + if pargs.brotli: + Log.wait(self, "Disabling Brotli") + WOGit.add(self, ["/etc/nginx"], msg="Commiting pending changes") + if os.path.exists('/etc/nginx/conf.d/brotli.conf'): + WOFileUtils.mvfile(self, '/etc/nginx/conf.d/brotli.conf', + '/etc/nginx/conf.d/brotli.conf.disabled') + else: + Log.failed(self, "Disabling Brotli") + Log.error(self, "Brotli is already disabled") + if os.path.exists('/etc/nginx/conf.d/gzip.conf.disabled'): + WOFileUtils.mvfile(self, '/etc/nginx/conf.d/gzip.conf.disabled', + '/etc/nginx/conf.d/gzip.conf') + if check_config(self): + Log.valide(self, "Disabling Brotli") + WOGit.add(self, ["/etc/nginx"], msg="Disabling Brotli") + WOService.reload_service(self, "nginx") + else: + Log.failed(self, "Disabling Brotli") + WOGit.rollback(self, ["/etc/nginx"]) + # UFW if pargs.ufw: if WOAptGet.is_installed(self, 'ufw'): diff --git a/wo/cli/plugins/stack_pref.py b/wo/cli/plugins/stack_pref.py index b75eb3f..1164aca 100644 --- a/wo/cli/plugins/stack_pref.py +++ b/wo/cli/plugins/stack_pref.py @@ -417,7 +417,7 @@ def post_pref(self, apt_packages, packages, upgrade=False): "Name: WordOps"] + ["HTTP Auth Password : {0}" .format(passwd)]) - self.msg = (self.msg + [f'WordOps backend is available on https://{server_ip}:22222]) ' + self.msg = (self.msg + [f'WordOps backend is available on https://{server_ip}:22222 ' f'or https://{WOVar.wo_fqdn}:22222']) data = dict(release=WOVar.wo_version)