Merge pull request #452 from WordOps/updating-configuration

Prepare for release v3.15.0
This commit is contained in:
VirtuBox
2022-09-09 17:50:23 +02:00
committed by GitHub
10 changed files with 73 additions and 36 deletions

View File

@@ -16,7 +16,10 @@ on:
jobs: jobs:
my_job: my_job:
name: test WordOps name: test WordOps
runs-on: ubuntu-18.04 runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-20.04, ubuntu-18.04]
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2

View File

@@ -6,7 +6,25 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
## Releases ## Releases
### v3.15.0 - [Unreleased] ### v3.15.1 - [Unreleased]
### v3.15.0 - 2022-09-09
#### Added
- Ubuntu 22.04 LTS Support
#### Changed
- New Nginx package based on latest Nginx stable release 1.22.2
- Better Referrer-Policy ([PR #434](https://github.com/WordOps/WordOps/pull/434))
- MariaDB default version is now 10.6
#### Fixed
- `wo log reset --all` ([PR #438](https://github.com/WordOps/WordOps/pull/438))
- Outdated Nginx directives
- Netdata stack upgrade([PR #439](https://github.com/WordOps/WordOps/pull/439))
### v3.14.2 - 2022-04-29 ### v3.14.2 - 2022-04-29

View File

@@ -41,8 +41,8 @@
- **Easy to install** : One step automated installer with migration from EasyEngine v3 support - **Easy to install** : One step automated installer with migration from EasyEngine v3 support
- **Fast deployment** : Fast and automated WordPress, Nginx, PHP, MySQL & Redis installation - **Fast deployment** : Fast and automated WordPress, Nginx, PHP, MySQL & Redis installation
- **Custom Nginx build** : Nginx 1.18.0 - TLS v1.3 Cloudflare HTTP/2 HPACK & Brotli support - **Custom Nginx build** : Nginx 1.22.0 - TLS v1.3 Cloudflare HTTP/2 HPACK & Brotli support
- **Up-to-date** : PHP 7.2, 7.3, 7.4, 8.0 & 8.1 - MariaDB 10.5 & Redis 6.0 - **Up-to-date** : PHP 7.2, 7.3, 7.4, 8.0 & 8.1 - MariaDB 10.6 & Redis 6.0
- **Secured** : Hardened WordPress security with strict Nginx location directives - **Secured** : Hardened WordPress security with strict Nginx location directives
- **Powerful** : Optimized Nginx configurations with multiple cache backends support - **Powerful** : Optimized Nginx configurations with multiple cache backends support
- **SSL** : Domain, Subdomain & Wildcard Let's Encrypt SSL certificates with DNS API support - **SSL** : Domain, Subdomain & Wildcard Let's Encrypt SSL certificates with DNS API support
@@ -58,16 +58,20 @@
#### Recommended #### Recommended
- Ubuntu 22.04 LTS (Jammy)
- Ubuntu 20.04 LTS (Focal) - Ubuntu 20.04 LTS (Focal)
- Ubuntu 18.04 LTS (Bionic) - Ubuntu 18.04 LTS (Bionic)
#### Also compatible #### Also compatible
- Debian 9 (Stretch)
- Debian 10 (Buster) - Debian 10 (Buster)
- Raspbian 9 (Stretch)
- Raspbian 10 (Buster) - Raspbian 10 (Buster)
#### For testing purpose only
- Debian 11 (Bullseye)
- Raspbian 11 (Bullseye)
## Getting Started ## Getting Started
```bash ```bash
@@ -121,7 +125,7 @@ wo site create example.com --html # create example.com for static/html sites
wo site create example.com --php # create example.com with php 8.0 support wo site create example.com --php # create example.com with php 8.0 support
wo site create example.com --php80 # create example.com with php 8.0 support wo site create example.com --php80 # create example.com with php 8.0 support
wo site create example.com --php74 # create example.com with php 7.4 support wo site create example.com --php74 # create example.com with php 7.4 support
wo site create example.com --mysql # create example.com with php 7.3 & mysql support wo site create example.com --mysql # create example.com with php 8.0 & mysql support
wo site create example.com --mysql --php81 # create example.com with php 8.1 & mysql support wo site create example.com --mysql --php81 # create example.com with php 8.1 & mysql support
wo site create example.com --mysql --php73 # create example.com with php 7.3 & mysql support wo site create example.com --mysql --php73 # create example.com with php 7.3 & mysql support
wo site create example.com --proxy=127.0.0.1:3000 # create example.com with nginx as reverse-proxy wo site create example.com --proxy=127.0.0.1:3000 # create example.com with nginx as reverse-proxy

10
install
View File

@@ -9,7 +9,7 @@
# ------------------------------------------------------------------------- # -------------------------------------------------------------------------
# wget -qO wo wops.cc && sudo -E bash wo # wget -qO wo wops.cc && sudo -E bash wo
# ------------------------------------------------------------------------- # -------------------------------------------------------------------------
# Version 3.14.2 - 2022-04-29 # Version 3.15.0 - 2022-09-09
# ------------------------------------------------------------------------- # -------------------------------------------------------------------------
# CONTENTS # CONTENTS
@@ -167,9 +167,9 @@ wo_check_distro() {
wo_lib_echo_fail "Feel free to open a pull-request if you want to add support for another Linux distributions" wo_lib_echo_fail "Feel free to open a pull-request if you want to add support for another Linux distributions"
exit 100 exit 100
else else
check_wo_linux_distro=$(lsb_release -sc | grep -E "xenial|bionic|jessie|stretch|buster|focal") check_wo_linux_distro=$(lsb_release -sc | grep -E "bionic|stretch|buster|focal|jammy|bullseye")
if [ -z "$check_wo_linux_distro" ]; then if [ -z "$check_wo_linux_distro" ]; then
wo_lib_echo_fail "WordOps (wo) only supports Ubuntu 16.04/18.04/20.04 LTS, Debian 9.x/10.x and Raspbian 9.x/10x.\n wo_lib_echo_fail "WordOps (wo) only supports Ubuntu 18.04/20.04/22.04 LTS, Debian 10.x/11.x and Raspbian 10x./11.x \n
You can bypass this warning by adding the flag --force to the install command" You can bypass this warning by adding the flag --force to the install command"
exit 100 exit 100
fi fi
@@ -455,6 +455,8 @@ wo_install() {
if [ "$wo_linux_distro" = "Debian" ] || [ "$wo_linux_distro" = "Raspbian" ]; then if [ "$wo_linux_distro" = "Debian" ] || [ "$wo_linux_distro" = "Raspbian" ]; then
if [ "$wo_distro_codename" = "stretch" ]; then if [ "$wo_distro_codename" = "stretch" ]; then
python3 -m pip install git+https://salsa.debian.org/apt-team/python-apt.git@1.4.y#egg=python-apt python3 -m pip install git+https://salsa.debian.org/apt-team/python-apt.git@1.4.y#egg=python-apt
elif [ "$wo_distro_codename" = "bullseye" ]; then
python3 -m pip install git+https://salsa.debian.org/apt-team/python-apt.git@2.2.1#egg=python-apt
else else
python3 -m pip install git+https://salsa.debian.org/apt-team/python-apt.git@1.8.4.y#egg=python-apt python3 -m pip install git+https://salsa.debian.org/apt-team/python-apt.git@1.8.4.y#egg=python-apt
fi fi
@@ -463,6 +465,8 @@ wo_install() {
python3 -m pip install git+https://salsa.debian.org/apt-team/python-apt.git@2.0.0#egg=python-apt python3 -m pip install git+https://salsa.debian.org/apt-team/python-apt.git@2.0.0#egg=python-apt
elif [ "$wo_distro_codename" = "bionic" ]; then elif [ "$wo_distro_codename" = "bionic" ]; then
python3 -m pip install git+https://salsa.debian.org/apt-team/python-apt.git@1.6.y#egg=python-apt python3 -m pip install git+https://salsa.debian.org/apt-team/python-apt.git@1.6.y#egg=python-apt
elif [ "$wo_distro_codename" = "jammy" ]; then
python3 -m pip install git+https://salsa.debian.org/apt-team/python-apt.git@2.2.1#egg=python-apt
else else
python3 -m pip install git+https://salsa.debian.org/apt-team/python-apt.git@1.1.y-xenial#egg=python-apt python3 -m pip install git+https://salsa.debian.org/apt-team/python-apt.git@1.1.y-xenial#egg=python-apt
fi fi

View File

@@ -27,7 +27,7 @@ if os.geteuid() == 0:
os.makedirs('/var/lib/wo/tmp/') os.makedirs('/var/lib/wo/tmp/')
setup(name='wordops', setup(name='wordops',
version='3.14.2', version='3.15.0',
description='An essential toolset that eases server administration', description='An essential toolset that eases server administration',
long_description=LONG, long_description=LONG,
long_description_content_type='text/markdown', long_description_content_type='text/markdown',

View File

@@ -126,10 +126,6 @@ def pre_pref(self, apt_packages):
if WOVar.wo_platform_codename == 'bionic': if WOVar.wo_platform_codename == 'bionic':
Log.debug(self, 'Adding ppa for nano') Log.debug(self, 'Adding ppa for nano')
WORepo.add(self, ppa=WOVar.wo_ubuntu_backports) WORepo.add(self, ppa=WOVar.wo_ubuntu_backports)
elif WOVar.wo_platform_codename == 'xenial':
Log.debug(self, 'Adding ppa for nano')
WORepo.add_key(self, WOVar.wo_nginx_key)
WORepo.add(self, repo_url=WOVar.wo_extra_repo)
else: else:
if (not WOFileUtils.grepcheck( if (not WOFileUtils.grepcheck(
self, '/etc/apt/sources.list/wo-repo.list', self, '/etc/apt/sources.list/wo-repo.list',
@@ -1280,7 +1276,8 @@ def post_pref(self, apt_packages, packages, upgrade=False):
msg="Adding MySQL into Git") msg="Adding MySQL into Git")
elif os.path.exists('/etc/mysql/conf.d/my.cnf'): elif os.path.exists('/etc/mysql/conf.d/my.cnf'):
if ((WOAptGet.is_installed( if ((WOAptGet.is_installed(
self, 'mariadb-server-10.5')) and self,
'mariadb-server-{0}'.format(WOVar.mariadb_ver))) and
not (WOFileUtils.grepcheck( not (WOFileUtils.grepcheck(
self, '/etc/mysql/conf.d/my.cnf', 'socket'))): self, '/etc/mysql/conf.d/my.cnf', 'socket'))):
try: try:
@@ -1351,7 +1348,7 @@ def post_pref(self, apt_packages, packages, upgrade=False):
# set innodb_buffer_pool_instances depending # set innodb_buffer_pool_instances depending
# on the amount of RAM # on the amount of RAM
WOService.restart_service(self, 'mysql') WOService.restart_service(self, 'mariadb')
# WOFileUtils.mvfile(self, '/var/lib/mysql/ib_logfile0', # WOFileUtils.mvfile(self, '/var/lib/mysql/ib_logfile0',
# '/var/lib/mysql/ib_logfile0.bak') # '/var/lib/mysql/ib_logfile0.bak')
@@ -2008,7 +2005,9 @@ def pre_stack(self):
# use tcp_bbr congestion algorithm only on new kernels # use tcp_bbr congestion algorithm only on new kernels
if (WOVar.wo_platform_codename == 'bionic' or if (WOVar.wo_platform_codename == 'bionic' or
WOVar.wo_platform_codename == 'focal' or WOVar.wo_platform_codename == 'focal' or
WOVar.wo_platform_codename == 'buster'): WOVar.wo_platform_codename == 'buster' or
WOVar.wo_platform_codename == 'jammy' or
WOVar.wo_platform_codename == 'bullseye'):
try: try:
WOShellExec.cmd_exec( WOShellExec.cmd_exec(
self, 'modprobe tcp_bbr') self, 'modprobe tcp_bbr')

View File

@@ -204,7 +204,7 @@ class WOStackUpgradeController(CementBaseController):
# detect static binaries install # detect static binaries install
if os.path.isdir('/opt/netdata'): if os.path.isdir('/opt/netdata'):
packages = packages + [[ packages = packages + [[
'https://my-netdata.io/kickstart-static64.sh', 'https://my-netdata.io/kickstart.sh',
'/var/lib/wo/tmp/kickstart.sh', 'Netdata']] '/var/lib/wo/tmp/kickstart.sh', 'Netdata']]
# detect install from source # detect install from source
elif os.path.isdir('/etc/netdata'): elif os.path.isdir('/etc/netdata'):

View File

@@ -45,7 +45,7 @@ skip-external-locking
# #
# Instead of skip-networking the default is now to listen only on # Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure. # localhost which is more compatible and is not less secure.
bind-address = ::ffff:127.0.0.1 bind-address = localhost
# #
# * Fine Tuning # * Fine Tuning
# #

View File

@@ -1,9 +1,6 @@
# NGINX Tweaks - WordOps {{release}} # NGINX Tweaks - WordOps {{release}}
directio 4m; directio 4m;
directio_alignment 512; directio_alignment 512;
#http2_max_field_size 16k;
#http2_max_header_size 32k;
large_client_header_buffers 8 64k; large_client_header_buffers 8 64k;
postpone_output 1460; postpone_output 1460;

View File

@@ -1,12 +1,13 @@
"""WordOps core variable module""" """WordOps core variable module"""
import configparser import configparser
import os import os
import sys
from datetime import datetime from datetime import datetime
from re import match from re import match
from socket import getfqdn from socket import getfqdn
from shutil import copy2 from shutil import copy2
from distro import linux_distribution from distro import distro, linux_distribution
from sh import git from sh import git
@@ -14,11 +15,11 @@ class WOVar():
"""Intialization of core variables""" """Intialization of core variables"""
# WordOps version # WordOps version
wo_version = "3.14.2" wo_version = "3.15.0"
# WordOps packages versions # WordOps packages versions
wo_wp_cli = "2.6.0" wo_wp_cli = "2.6.0"
wo_adminer = "4.8.1" wo_adminer = "4.8.1"
wo_phpmyadmin = "5.0.2" wo_phpmyadmin = "5.2.0"
wo_extplorer = "2.1.13" wo_extplorer = "2.1.13"
wo_dashboard = "1.2" wo_dashboard = "1.2"
@@ -30,13 +31,19 @@ class WOVar():
# WordOps core variables # WordOps core variables
# linux distribution # linux distribution
wo_distro = linux_distribution( if sys.version_info <= (3, 7):
full_distribution_name=False)[0].lower() wo_distro = linux_distribution(
wo_platform_version = linux_distribution( full_distribution_name=False)[0].lower()
full_distribution_name=False)[1].lower() wo_platform_version = linux_distribution(
# distro codename (bionic, xenial, stretch ...) full_distribution_name=False)[1].lower()
wo_platform_codename = linux_distribution( # distro codename (bionic, xenial, stretch ...)
full_distribution_name=False)[2].lower() wo_platform_codename = linux_distribution(
full_distribution_name=False)[2].lower()
else:
wo_distro = distro.id()
wo_platform_version = distro.version()
# distro codename (bionic, xenial, stretch ...)
wo_platform_codename = distro.codename()
# Get timezone of system # Get timezone of system
if os.path.isfile('/etc/timezone'): if os.path.isfile('/etc/timezone'):
@@ -123,11 +130,15 @@ class WOVar():
wo_deb_repo = "Debian_9.0" wo_deb_repo = "Debian_9.0"
elif wo_platform_codename == 'buster': elif wo_platform_codename == 'buster':
wo_deb_repo = "Debian_10" wo_deb_repo = "Debian_10"
elif wo_platform_codename == 'bullseye':
wo_deb_repo = "Debian_11"
elif wo_distro == 'raspbian': elif wo_distro == 'raspbian':
if wo_platform_codename == 'stretch': if wo_platform_codename == 'stretch':
wo_deb_repo = "Raspbian_9.0" wo_deb_repo = "Raspbian_9.0"
elif wo_platform_codename == 'buster': elif wo_platform_codename == 'buster':
wo_deb_repo = "Raspbian_10" wo_deb_repo = "Raspbian_10"
elif wo_platform_codename == 'bullseye':
wo_deb_repo = "Raspbian_11"
# debian/raspbian nginx repository # debian/raspbian nginx repository
wo_nginx_repo = ("deb http://download.opensuse.org" wo_nginx_repo = ("deb http://download.opensuse.org"
"/repositories/home:" "/repositories/home:"
@@ -171,7 +182,7 @@ class WOVar():
else: else:
mariadb_ver = '10.3' mariadb_ver = '10.3'
else: else:
mariadb_ver = '10.5' mariadb_ver = '10.6'
wo_mysql = wo_mysql + ["mariadb-backup"] wo_mysql = wo_mysql + ["mariadb-backup"]
wo_mysql_client = ["mariadb-client", "python3-mysqldb"] wo_mysql_client = ["mariadb-client", "python3-mysqldb"]
@@ -183,8 +194,9 @@ class WOVar():
# APT repositories # APT repositories
wo_mysql_repo = ("deb [arch=amd64,arm64,ppc64el] " wo_mysql_repo = ("deb [arch=amd64,arm64,ppc64el] "
"http://mariadb.mirrors.ovh.net/MariaDB/repo/" "http://mariadb.mirrors.ovh.net/MariaDB/repo/"
"10.5/{distro} {codename} main" "{version}/{distro} {codename} main"
.format(distro=wo_distro, .format(version=mariadb_ver,
distro=wo_distro,
codename=wo_platform_codename)) codename=wo_platform_codename))
if wo_distro == 'ubuntu': if wo_distro == 'ubuntu':
wo_php_repo = "ppa:ondrej/php" wo_php_repo = "ppa:ondrej/php"