Merge branch dev

Merge new features:
- Force www or non-www
- Ignore ssl
- API
This commit is contained in:
Cristhian Martínez Ochoa 2018-05-30 16:44:56 -06:00
commit 4e28539fa4
9 changed files with 209 additions and 16 deletions

View file

@ -117,16 +117,19 @@ pre_install() {
sudo apt-get -qq update
if [[ $(conf_read pre-packs) != true ]]; then
# Check for missing essential packages
api_update i1
sudo apt-get -y -qq install software-properties-common
sudo apt-get -y -qq install python-software-properties
sudo apt-get -y -qq install pwgen
sudo apt-get -y -qq install unzip
conf_write pre-packs true
api_update i2
fi
}
mysql_client_install() {
api_update im2
local osname=$(check_osname)
# Cases with MariaDB v10.2 support
case "$osname" in
@ -143,6 +146,7 @@ mysql_client_install() {
sudo apt-get -y install mariadb-client
conf_write mysql-client true
echo "${gre}MySQL Client has been successfully installed!${end}"
api_update im3
}
@ -163,6 +167,15 @@ tools_port() {
}
api_update() {
conf_write status-api $1
if [[ -a /opt/webinoly/lib/myapi ]]; then
source /opt/webinoly/lib/myapi
api_catch_status $1
fi
}
conf_read() {
local val=$(grep -w "^${1}:.*" /opt/webinoly/webinoly.conf | cut -f 2 -d ':')
echo $val

View file

@ -15,6 +15,7 @@ app_purge() {
linux_optim() {
api_update in4
if [[ $(conf_read linux-optim) == "true" ]]; then
exit 1
fi
@ -83,11 +84,13 @@ net.ipv4.tcp_max_syn_backlog = 3240000
sudo kill $(cat /run/nginx.pid)
conf_write linux-optim true
sudo nginx -t && sudo service nginx start
api_update in7
}
linux_purge() {
if [[ $(conf_read linux-optim) == "true" ]]; then
api_update pn7
sudo sed -i '/WebinolyStart/,/WebinolyEnd/{/.*/d}' /etc/security/limits.conf
sudo sed -i '/WebinolyStart/,/WebinolyEnd/{/.*/d}' /etc/sysctl.conf
sudo rm -rf /etc/systemd/system/nginx.service.d
@ -96,6 +99,7 @@ linux_purge() {
sudo sysctl -p
sudo systemctl daemon-reload
conf_write linux-optim purged
api_update pn8
fi
}
@ -119,6 +123,7 @@ messagend_install() {
nginx_install() {
api_update in1
if [[ ($(conf_read nginx-ppa) == "mainline" || $value == "mainline") && $value != "stable" ]]; then
echo | sudo add-apt-repository ppa:nginx/development
conf_write nginx-ppa mainline
@ -137,10 +142,12 @@ nginx_install() {
sudo nginx -t && sudo service nginx start
conf_write nginx true
echo "${gre}Nginx has been installed successfully! ${end}"
api_update in2
}
php_install() {
api_update ip1
if [[ -n $(conf_read php-ver) && ($(conf_read php-ver) == "7.2" || $(conf_read php-ver) == "7.1" || $(conf_read php-ver) == "7.0" || $(conf_read php-ver) == "5.6") ]]; then
echo "${gre}Default PHP version '$(conf_read php-ver)' detected!${end}"
else
@ -187,10 +194,12 @@ php_install() {
conf_write php true
conf_write php-v$ver true
echo "${gre}PHP has been installed successfully! ${end}"
api_update ip2
}
mysql_install() {
api_update im1
[[ $(conf_read mysql-client) != "true" ]] && mysql_client_install
pre_install
@ -226,11 +235,13 @@ _EOF_
conf_write mysql true
echo "${gre}MySQL has been installed successfully! ${end}"
api_update im4
}
#NGINX OPTIM
nginx_optim() {
api_update in3
sudo cp -R /opt/webinoly/templates/nginx/common /etc/nginx/common
sudo cp -R /opt/webinoly/templates/nginx/conf.d/* /etc/nginx/conf.d/
@ -254,12 +265,14 @@ nginx_optim() {
linux_optim
server_version
conf_write nginx-optim true
api_update in8
}
# PHP OPTIM
php_optim() {
api_update ip3
[[ -n $1 ]] && ver="$1" || ver=$(conf_read php-ver)
if [[ -n $(conf_read max-mb-uploads) && $(conf_read max-mb-uploads) =~ ^[0-9]+$ ]]; then
@ -291,6 +304,7 @@ php_optim() {
sudo sed -i '/pm.max_requests =/c\pm.max_requests = 500' /etc/php/$ver/fpm/pool.d/www.conf
sudo sed -i '/pm.status_path =/c\pm.status_path = /status' /etc/php/$ver/fpm/pool.d/www.conf
sudo sed -i '/ping.path =/c\ping.path = /ping' /etc/php/$ver/fpm/pool.d/www.conf
if [[ $(conf_read multi-php) == "true" ]]; then
[[ $ver == 7.2 ]] && sudo sed -i '/listen = /c\listen = 127.0.0.1:9000' /etc/php/$ver/fpm/pool.d/www.conf
[[ $ver == 7.1 ]] && sudo sed -i '/listen = /c\listen = 127.0.0.1:9002' /etc/php/$ver/fpm/pool.d/www.conf
@ -306,6 +320,7 @@ php_optim() {
sudo sed -i '/rlimit_core =/c\rlimit_core = unlimited' /etc/php/$ver/fpm/pool.d/debug.conf
sudo sed -i "/slowlog =/c\slowlog = /var/log/php/$ver/slow.log" /etc/php/$ver/fpm/pool.d/debug.conf
sudo sed -i '/request_slowlog_timeout =/c\request_slowlog_timeout = 10s' /etc/php/$ver/fpm/pool.d/debug.conf
if [[ $(conf_read multi-php) == "true" ]]; then
[[ $ver == 7.2 ]] && sudo sed -i '/listen = /c\listen = 127.0.0.1:9001' /etc/php/$ver/fpm/pool.d/debug.conf
[[ $ver == 7.1 ]] && sudo sed -i '/listen = /c\listen = 127.0.0.1:9003' /etc/php/$ver/fpm/pool.d/debug.conf
@ -326,6 +341,7 @@ php_optim() {
conf_write php-optim true
sudo service php*-fpm reload
api_update ip4
}
@ -339,6 +355,7 @@ nginx_tool_site() {
nginx_tool() {
api_update in9
[[ -z $(conf_read tools-port) ]] && tools_port 22222
[[ $(conf_read php) == "true" ]] && nginx_tool_site
# in case php was installed before nginx
@ -353,10 +370,12 @@ nginx_tool() {
conf_write web-tool true
conf_write nginx-tool true
api_update in10
}
php_tool_site() {
api_update ip6
# Status pages
sudo mkdir -p /var/www/$(conf_read tools-port)/htdocs/fpm/status
sudo touch /var/www/$(conf_read tools-port)/htdocs/fpm/status/php
@ -366,10 +385,12 @@ php_tool_site() {
sudo mkdir -p /var/www/$(conf_read tools-port)/htdocs/php
sudo touch /var/www/$(conf_read tools-port)/htdocs/php/index.php
sudo echo '<?php phpinfo(); ?>' >> /var/www/$(conf_read tools-port)/htdocs/php/index.php
api_update ip7
}
php_tool() {
api_update ip5
# in case nginx was installed before php
if [[ $(conf_read nginx-tool) == "true" && ! -a /etc/nginx/sites-available/$(conf_read tools-port) ]]; then
nginx_tool_site
@ -394,10 +415,12 @@ php_tool() {
sudo service php*-fpm reload
conf_write web-tool true
conf_write php-tool true
api_update ip8
}
mysql_tool() {
api_update im5
#PhpMyAdmin unattended script installation
local AUTOGENPASS_PMA=`pwgen -s -1`
echo "phpmyadmin phpmyadmin/dbconfig-install boolean true" | debconf-set-selections
@ -413,17 +436,20 @@ mysql_tool() {
conf_write mysql-tool true
echo "${gre}PhpMyAdmin has been installed successfully! ${end}"
api_update im6
}
swap_delete() {
local swapkb=$(grep SwapTotal /proc/meminfo | cut -f 2 -d ':' | tr -d ' ' | cut -f 1 -d 'k')
if [[ -n $swapkb && $swapkb =~ ^[0-9]+$ && $swapkb -gt 0 && $(conf_read swap-owner) == "webinoly" ]]; then
api_update pn9
sudo swapoff -a -v > /dev/null
sudo rm /swapfile
sudo sed -i '/\/swapfile/d' /etc/fstab
sudo sed -i '/vm.swappiness/d' /etc/sysctl.conf
conf_delete swap-owner
api_update pn10
fi
}
@ -442,6 +468,7 @@ swap_create() {
# https://help.ubuntu.com/community/SwapFaq
if [[ -z $swapkb || $swapkb == "0" ]]; then
api_update in5
if [[ -n $(conf_read swap-mem) && $(conf_read swap-mem) =~ ^[0-9]+$ ]]; then
local newswap=$(conf_read swap-mem)
elif [[ $ram -le 2 ]]; then
@ -488,6 +515,7 @@ swap_create() {
echo "${gre} A new SWAP Partion (${newswap}Gb) has been created! ${end}"
fi
api_update in6
else
if [[ $(conf_read swap-owner) != "webinoly" ]]; then
conf_write swap-owner system

60
lib/myapi-sample Normal file
View file

@ -0,0 +1,60 @@
#!/bin/bash
# Installation process
#
# i1 - Common Packages
# i2 - Common Packages Finished
#
# in1 - NGINX Installation
# in2 - NGINX Installation Finished
# in3 - NGINX Optimization
# in4 - Ubuntu Optimization
# in5 - SWAP Creation
# in6 - SWAP Creation Finished
# in7 - Ubuntu Optimization Finished
# in8 - NGINX Optimization Finished
# in9 - NGINX Tools
# in10 - NGINX Tools Finished
#
# ip1 - PHP Installation
# ip2 - PHP Installation Finished
# ip3 - PHP Optimization
# ip4 - PHP Optimization Finished
# ip5 - PHP Tools
# ip6 - PHP Tools site creation
# ip7 - PHP Tools site creation Finished
# ip8 - PHP Tools Finished
#
# im1 - MySQL Installation
# im2 - MySQL Client Installation
# im3 - MySQL Client Installation Finished
# im4 - MySQL Installation Finished
# im5 - MySQL Tool (PhpMyAdmin)
# im6 - MySQL Tool (PhpMyAdmin) Finished
#
#
# Purge (UnInstall)
#
# pn1 - NGINX Purge
# pn2 - NGINX Delete All Sites
# pn3 - NGINX Delete All Sites Finished
# pn4 - NGINX Purge Finished
# pn5 - NGINX Purge Tools
# pn6 - NGINX Purge Tools Finished
# pn7 - Ubuntu Optimization Purge
# pn8 - Ubuntu Optimization Purge Finished
# pn9 - SWAP Purge
# pn10 - SWAP Purge Finished
#
# pp1 - PHP Purge
# pp2 - PHP Purge Finished
#
# pm1 - MySQL Purge
# pm2 - MySQL Tool (PhpMyAdmin) Purge
# pm3 - MySQL Tool (PhpMyAdmin) Purge Finished
# pm4 - MySQL Purge Finished
api_catch_status() {
echo "${blu}API Status: $1 ${end}"
}

View file

@ -67,12 +67,13 @@ site_ssl_on() {
if [[ -a /etc/letsencrypt/live/$root/fullchain.pem ]]; then
sudo sed -i '/listen 80/c \ listen 443 ssl http2;' /etc/nginx/sites-available/$domain
sudo sed -i '/listen \[::\]:80/c \ listen [::]:443 ssl http2;' /etc/nginx/sites-available/$domain
sudo sed -i '/headers-html.conf/a \ include common/headers-https.conf;' /etc/nginx/sites-available/$domain
sudo sed -i '/headers-http.conf/a \ include common/headers-https.conf;' /etc/nginx/sites-available/$domain
sudo sed -i '/server_name /r /opt/webinoly/templates/template-site-ssl' /etc/nginx/sites-available/$domain
sudo sed -i "/WebinolySSLstart/,/WebinolySSLend/{s/domain.com/$domain/}" /etc/nginx/sites-available/$domain
# HTTP to HTTPS Redirection
local sername=$(grep -w "server_name .*;" /etc/nginx/sites-available/$domain)
local sername="server_name $domain www.$domain;"
[[ $subdomflag == 1 ]] && sername="server_name $domain;"
sudo sed -i '1r /opt/webinoly/templates/template-site-sslredirect' /etc/nginx/sites-available/$domain
sudo sed -i "/#server_name;/c \ $sername" /etc/nginx/sites-available/$domain
@ -107,7 +108,7 @@ site_ssl_off() {
answer=="N"
else
echo "${blu}"
echo " Do you want to delete your certificate files [y/N]? "
echo "Do you want to delete your certificate files [y/N]? "
while read -r -n 1 -s answer; do
answer=${answer:-n}
[[ $answer = [YyNn] ]] && break
@ -120,7 +121,7 @@ site_ssl_off() {
rm -rf /etc/letsencrypt/renewal/${domain}.conf
rm -rf /etc/letsencrypt/archive/${domain}
echo "${gre}"
echo " Certificate for your site $domain has been completely removed!"
echo "Certificate for your site $domain has been completely removed!"
echo "${end}"
fi
echo "${gre}SSL have been successfully disabled for site $domain!${end}"

View file

@ -538,3 +538,67 @@ createsite() {
echo "${gre}Site $domain has been successfully created!${end}"
}
force_redirect() {
if ! [[ $value =~ ^(www|root|off)$ ]]; then
echo "${red}Please, enter a valid argument!${end}"
exit 1
fi
if [[ $subdomflag == 1 ]]; then
echo "${red}Please, use the main/root domain, Force-Redirection should not be used in Subdomains!${end}"
exit 1
fi
local rediron=$( grep -F "WebinolyWWWredirectStart" /etc/nginx/sites-available/$domain )
local sername="server_name $domain www.$domain;"
cp /opt/webinoly/templates/template-site-wwwredirect /tmp/template-site-wwwredirect
case $value in
"www")
[[ -n $rediron ]] && sudo sed -i '/WebinolyWWWredirectStart/,/WebinolyWWWredirectEnd/{/.*/d}' /etc/nginx/sites-available/$domain
sudo sed -i "/#server_name;/c \ server_name $domain;" /tmp/template-site-wwwredirect
sudo sed -i "/#return 301;/c \ return 301 \$scheme://www.${domain}\$request_uri;" /tmp/template-site-wwwredirect
sudo sed -i "/server_name /c \ server_name www.$domain;" /etc/nginx/sites-available/$domain
echo "${gre}Force-Redirection to WWW has been successfully enabled!${end}"
;;
"root")
[[ -n $rediron ]] && sudo sed -i '/WebinolyWWWredirectStart/,/WebinolyWWWredirectEnd/{/.*/d}' /etc/nginx/sites-available/$domain
sudo sed -i "/#server_name;/c \ server_name www.$domain;" /tmp/template-site-wwwredirect
sudo sed -i "/#return 301;/c \ return 301 \$scheme://${domain}\$request_uri;" /tmp/template-site-wwwredirect
sudo sed -i "/server_name /c \ server_name $domain;" /etc/nginx/sites-available/$domain
echo "${gre}Force-Redirection to non-WWW has been successfully enabled!${end}"
;;
"off")
if [[ -n $rediron ]]; then
sudo sed -i '/WebinolyWWWredirectStart/,/WebinolyWWWredirectEnd/{/.*/d}' /etc/nginx/sites-available/$domain
sudo sed -i "/server_name /c \ $sername" /etc/nginx/sites-available/$domain
echo "${gre}Force-Redirection has been successfully disabled!${end}"
else
echo "${red}Force-Redirect is already disabled for site $domain!${end}"
fi
;;
esac
# If SSL is enabled insert after that - First redirect should be to HTTPS due to HSTS.
isssl=$( grep -F "ssl on;" /etc/nginx/sites-available/$domain )
if [[ -z $isssl && $value =~ ^(www|root)$ ]]; then
sudo sed -i '1r /tmp/template-site-wwwredirect' /etc/nginx/sites-available/$domain
elif [[ -n $isssl && $value =~ ^(www|root)$ ]]; then
sudo sed -i '/listen 80/c \ listen 443 ssl http2;' /tmp/template-site-wwwredirect
sudo sed -i '/listen \[::\]:80/c \ listen [::]:443 ssl http2;' /tmp/template-site-wwwredirect
if [[ $cache != "-ignore-ssl" ]]; then
sudo sed -i '/headers-http.conf/a \ include common/headers-https.conf;' /tmp/template-site-wwwredirect
sudo sed -i '/server_name /r /opt/webinoly/templates/template-site-ssl' /tmp/template-site-wwwredirect
sudo sed -i "/WebinolySSLstart/,/WebinolySSLend/{s/domain.com/$domain/}" /tmp/template-site-wwwredirect
fi
sudo sed -i "/WebinolySSLredirectStart/,/WebinolySSLredirectEnd/s/\(server_name\).*$/$sername/" /etc/nginx/sites-available/$domain
sudo sed -i '/WebinolySSLredirectEnd/r /tmp/template-site-wwwredirect' /etc/nginx/sites-available/$domain
fi
sudo rm /tmp/template-site-wwwredirect
}

View file

@ -2,8 +2,8 @@
# Site Manager Plugin (Create, delete and de/activate)
# Syntax: site <domain> <option> <argument>
# Options: -html, -php, -mysql, -wp, -wpsubdir, -wpsubdom, -parked, -proxy, -on, -off, -delete, -delete-all, -list, -nocache, -cache, -ssl-on, ssl-off
# Arguments: -cache, -root, -subdomain
# Options: -html, -php, -mysql, -wp, -wpsubdir, -wpsubdom, -parked, -proxy, -on, -off, -delete, -delete-all, -list, -nocache, -cache, -ssl-on, ssl-off, -force-redirect
# Arguments: -cache, -root, -subdomain, -ignore-ssl
# shopt is necessary for this kind !(html|22222) of patterns
shopt -s extglob
@ -24,7 +24,7 @@ if [[ ! $(conf_read nginx) == "true" ]]; then
fi
# Check if user entered arg before option and correct it.
if [[ "$type" == "-cache" && -n $cache ]]; then
if [[ -n $cache && ($type == "-cache" || $type == "-ignore-ssl") ]]; then
type="$3"
cache="$2"
fi
@ -35,7 +35,7 @@ if [[ $domain == "-mysql="* ]]; then
value=$(echo "${domain}" | cut -d'=' -f 2 -s)
domain=$(echo "${domain}" | cut -d'=' -f 1 -s)
fi
if [[ $type == "-parked="* || $type == "-proxy="* || $type == "-wp="* || $type == "-wpsubdir="* || $type == "-wpsubdom="* || $type == "-ssl-off="* || $type == "-mysql="* || $type == "-delete="* ]]; then
if [[ $type == "-parked="* || $type == "-proxy="* || $type == "-wp="* || $type == "-wpsubdir="* || $type == "-wpsubdom="* || $type == "-ssl-off="* || $type == "-mysql="* || $type == "-delete="* || $type == "-force-redirect="* ]]; then
value=$(echo "${type}" | cut -d'=' -f 2 -s)
type=$(echo "${type}" | cut -d'=' -f 1 -s)
fi
@ -46,7 +46,7 @@ fi
# Check if site is sub-domain
if [[ -n $domain && $type =~ ^(-html|-php|-mysql|-wp|-wpsubdir|-wpsubdom|-parked|-proxy|-ssl-on)$ ]]; then
if [[ -n $domain && $type =~ ^(-html|-php|-mysql|-wp|-wpsubdir|-wpsubdom|-parked|-proxy|-ssl-on|-force-redirect)$ ]]; then
count=1
while true; do
tld=$(echo "${domain}" | rev | cut -d'.' -f -$count -s | rev)
@ -108,10 +108,10 @@ if [[ $type == "-wp" || $type == "-wpsubdir" || $type == "-wpsubdom" || $type ==
fi
# Cache validation
if [[ $cache == "-cache" && $wp == "0" ]]; then
if [[ $cache == "-cache" && $wp == [045] ]]; then
echo "${red} Site $domain is not a WP site! ${end}"
exit 1
elif [[ -n $cache && ( $cache != "-cache" && $cache != "-root" && $cache != "-subdomain" ) && $type != "-parked" ]]; then
elif [[ -n $cache && ( $cache != "-cache" && $cache != "-root" && $cache != "-subdomain" && $cache != "-ignore-ssl" ) && $type != "-parked" ]]; then
echo "${red} $cache is not a valid argument! ${end}"
exit 1
fi
@ -339,10 +339,15 @@ elif [[ "$type" == "-cache" && -a /etc/nginx/sites-available/$domain ]]; then
else
echo "${red} Site $domain is not a WP site or FastCGI is already enabled!${end}"
fi
# Force www or non-www redirect (www, root, off)
elif [[ "$type" == "-force-redirect" && -a /etc/nginx/sites-available/$domain ]]; then
force_redirect
# Catch ERROR
elif [[ ! -a /etc/nginx/sites-available/$domain && $type =~ ^(-nocache|-cache|-delete|-off|-on|-ssl-on|-ssl-off)$ ]]; then
elif [[ ! -a /etc/nginx/sites-available/$domain && $type =~ ^(-nocache|-cache|-delete|-off|-on|-ssl-on|-ssl-off|-force-redirect)$ ]]; then
echo "${red}Site $domain doesn't exists!${end}"
else
echo "${red} Argument '${type}' is not a valid option! ${end}"

View file

@ -53,6 +53,7 @@ if [[ $arg == "-noptim" && $opt == "-lemp" ]]; then
# Delete some stack
elif [[ $arg == "-purge" && ( $opt == "-html" || $opt == "-nginx" ) ]]; then
api_update pn1
if [[ $(conf_read nginx) != "true" ]]; then
echo "${red}Nginx is not installed, hence can not be deleted! ${end}"
clear_force_flag
@ -85,18 +86,23 @@ elif [[ $arg == "-purge" && ( $opt == "-html" || $opt == "-nginx" ) ]]; then
fi
if [[ $answer == [Yy] ]]; then
[[ $(conf_read mysql-tool) == "true" ]] && stack -pma -purge
api_update pn2
site -delete-all
sudo rm -rf /var/www/$(conf_read tools-port)
sudo rm -rf /var/www/html
api_update pn3
fi
sudo service nginx stop
sudo apt-get -y purge nginx nginx-common
sudo apt-get -y purge letsencrypt python-boto duplicity duply
[[ $(conf_read nginx-ppa) == "mainline" ]] && echo | sudo add-apt-repository --remove 'ppa:nginx/development' || echo | sudo add-apt-repository --remove 'ppa:nginx/stable'
api_update pn4
api_update pn5
sudo apt-get -y purge letsencrypt python-boto duplicity duply
sudo apt-get -y autoremove
sudo rm $HOME/www
sudo rm $HOME/sites-available
sudo rm $HOME/sites-available
api_update pn6
linux_purge
[[ $(conf_read php-tool) != "true" ]] && conf_write web-tool purged
@ -114,6 +120,7 @@ elif [[ $arg == "-purge" && ( $opt == "-html" || $opt == "-nginx" ) ]]; then
echo ""
elif [[ $arg == "-purge" && $opt == "-php" ]]; then
api_update pp1
if [[ $(conf_read php) != "true" ]]; then
echo "${red}PHP is not installed, hence can not be deleted! ${end}"
clear_force_flag
@ -168,9 +175,11 @@ elif [[ $arg == "-purge" && $opt == "-php" ]]; then
echo ""
fi
echo ""
api_update pp2
elif [[ $arg == "-purge" && $opt == "-mysql" ]]; then
api_update pm1
if [[ $(conf_read mysql) != "true" ]]; then
echo "${red}MySQL is not installed, hence can not be deleted! ${end}"
clear_force_flag
@ -229,8 +238,10 @@ elif [[ $arg == "-purge" && $opt == "-mysql" ]]; then
echo ""
fi
echo ""
api_update pm4
elif [[ $arg == "-purge" && $opt == "-pma" ]]; then
api_update pm2
if [[ $(conf_read mysql-tool) != "true" ]]; then
echo "${red} PhpMyAdmin is not installed, hence can not be deleted! ${end}"
clear_force_flag
@ -267,6 +278,7 @@ elif [[ $arg == "-purge" && $opt == "-pma" ]]; then
echo ""
fi
echo ""
api_update pm3
elif [[ $arg == "-purge" && $opt == "-web-tools" ]]; then
if [[ $(conf_read web-tool) != "true" ]]; then

View file

@ -0,0 +1,10 @@
# WebinolyWWWredirectStart - Force WWW or non-WWW redirect
server {
listen 80;
listen [::]:80;
#server_name;
include common/headers-http.conf;
#return 301;
}
# WebinolyWWWredirectEnd

2
weby
View file

@ -1,7 +1,7 @@
#!/bin/bash
# Webinoly Installation Script.
webyversion="1.4.3"
webyversion="1.5.0-beta"
# Check OS support