mirror of
https://github.com/EngineGPDev/Autoinstall.git
synced 2025-01-18 22:02:22 +03:00
Minor edits (#43)
Added installation of the jq package for working with json Changed the ProFTPD setting to work with the GitHub API Changed the default php version from 7.4 to 8.2 And other cosmetic edits
This commit is contained in:
parent
000fe52ba5
commit
652d729fbf
61
install.sh
61
install.sh
@ -31,7 +31,7 @@ saveDir="/root/enginegp.cfg"
|
|||||||
sysUpdate
|
sysUpdate
|
||||||
|
|
||||||
# Установка начальных пакетов.
|
# Установка начальных пакетов.
|
||||||
pkgsReq=("sudo" "curl" "lsb-release" "wget" "gnupg" "pwgen" "zip" "unzip" "bc" "tar" "software-properties-common" "git")
|
pkgsReq=("sudo" "curl" "lsb-release" "wget" "gnupg" "pwgen" "zip" "unzip" "bc" "tar" "software-properties-common" "git" "jq")
|
||||||
|
|
||||||
# Цикл установки пакетов
|
# Цикл установки пакетов
|
||||||
for package in "${pkgsReq[@]}"; do
|
for package in "${pkgsReq[@]}"; do
|
||||||
@ -60,9 +60,6 @@ for os in "${suppOs[@]}"; do
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# Файловый репозиторий
|
|
||||||
resUrl="https://resources.enginegp.com"
|
|
||||||
|
|
||||||
# Проверка аргументов командной строки
|
# Проверка аргументов командной строки
|
||||||
if [ $# -gt 0 ]; then
|
if [ $# -gt 0 ]; then
|
||||||
# Переменные для хранения
|
# Переменные для хранения
|
||||||
@ -96,8 +93,8 @@ if [ $# -gt 0 ]; then
|
|||||||
*)
|
*)
|
||||||
# Неизвестный аргумент, вывести справку и выйти
|
# Неизвестный аргумент, вывести справку и выйти
|
||||||
clear
|
clear
|
||||||
echo "Использование: ./install.sh --php 7.4 --ip 192.168.1.1 --branch main"
|
echo "Использование: ./install.sh --php 8.2 --ip 192.168.1.1 --branch main"
|
||||||
echo " --php версия: установить указанную версию PHP. Формат должен быть: 7.4"
|
echo " --php версия: установить указанную версию PHP. Формат должен быть: 8.2"
|
||||||
echo " --ip IP-адрес: использовать указанный IP-адрес. Формат должен быть: 192.168.1.1"
|
echo " --ip IP-адрес: использовать указанный IP-адрес. Формат должен быть: 192.168.1.1"
|
||||||
echo " --branch ветка: использовать указаную ветку GIT. Формат должен быть: main"
|
echo " --branch ветка: использовать указаную ветку GIT. Формат должен быть: main"
|
||||||
exit 1
|
exit 1
|
||||||
@ -107,7 +104,7 @@ if [ $# -gt 0 ]; then
|
|||||||
|
|
||||||
# Если версия PHP не выбрана, использовать PHP 7.4 по умолчанию
|
# Если версия PHP не выбрана, использовать PHP 7.4 по умолчанию
|
||||||
if [ -z "$verPhp" ]; then
|
if [ -z "$verPhp" ]; then
|
||||||
verPhp="7.4"
|
verPhp="8.2"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Если IP-адрес не указан, получить внешний IP-адрес с помощью сервиса ipinfo.io
|
# Если IP-адрес не указан, получить внешний IP-адрес с помощью сервиса ipinfo.io
|
||||||
@ -121,7 +118,7 @@ if [ $# -gt 0 ]; then
|
|||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
# Если нет аргументов, задаём по умолчанию
|
# Если нет аргументов, задаём по умолчанию
|
||||||
verPhp="7.4"
|
verPhp="8.2"
|
||||||
sysIp=$(curl -s ipinfo.io/ip)
|
sysIp=$(curl -s ipinfo.io/ip)
|
||||||
gitEgp="main"
|
gitEgp="main"
|
||||||
fi
|
fi
|
||||||
@ -228,7 +225,7 @@ while true; do
|
|||||||
|
|
||||||
# Генерирование паролей и имён
|
# Генерирование паролей и имён
|
||||||
passPma=$(pwgen -cns -1 16)
|
passPma=$(pwgen -cns -1 16)
|
||||||
usrEgpSql="enginegp_$(pwgen -cns -1 8)"
|
userEgpSql="enginegp_$(pwgen -cns -1 8)"
|
||||||
dbEgpSql="enginegp_$(pwgen -1 8)"
|
dbEgpSql="enginegp_$(pwgen -1 8)"
|
||||||
passEgpSql=$(pwgen -cns -1 16)
|
passEgpSql=$(pwgen -cns -1 16)
|
||||||
usrEgpPass=$(pwgen -cns -1 16)
|
usrEgpPass=$(pwgen -cns -1 16)
|
||||||
@ -420,24 +417,24 @@ EOF
|
|||||||
sudo mv /var/www/enginegp/.env.example /var/www/enginegp/.env 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
sudo mv /var/www/enginegp/.env.example /var/www/enginegp/.env 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
||||||
sed -i "s/example.com/$sysIp/g" /var/www/enginegp/.env 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
sed -i "s/example.com/$sysIp/g" /var/www/enginegp/.env 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
||||||
sed -i "s/enginegp_db/$dbEgpSql/g" /var/www/enginegp/.env 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
sed -i "s/enginegp_db/$dbEgpSql/g" /var/www/enginegp/.env 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
||||||
sed -i "s/enginegp_usr/$usrEgpSql/g" /var/www/enginegp/.env 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
sed -i "s/enginegp_usr/$userEgpSql/g" /var/www/enginegp/.env 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
||||||
sed -i "s/enginegp_pwd/$passEgpSql/g" /var/www/enginegp/.env 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
sed -i "s/enginegp_pwd/$passEgpSql/g" /var/www/enginegp/.env 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
||||||
sed -i "s/ENGINEGPHASH/$(echo "$usrEgpHASH" | sed 's/[\/&]/\\&/g')/g" /var/www/enginegp/enginegp.sql 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
sed -i "s/ENGINEGPHASH/$(echo "$usrEgpHASH" | sed 's/[\/&]/\\&/g')/g" /var/www/enginegp/enginegp.sql 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
||||||
|
|
||||||
# Создание пользователя
|
# Создание пользователя
|
||||||
sudo mysql -e "CREATE USER '$usrEgpSql'@'localhost' IDENTIFIED BY '$passEgpSql';" 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
sudo mysql -e "CREATE USER '$userEgpSql'@'localhost' IDENTIFIED BY '$passEgpSql';" 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
||||||
|
|
||||||
# Создание базы данных
|
# Создание базы данных
|
||||||
sudo mysql -e "CREATE DATABASE $dbEgpSql CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
sudo mysql -e "CREATE DATABASE $dbEgpSql CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
||||||
|
|
||||||
# Предоставление привилегий пользователю на базу данных
|
# Предоставление привилегий пользователю на базу данных
|
||||||
sudo mysql -e "GRANT ALL PRIVILEGES ON $dbEgpSql.* TO '$usrEgpSql'@'localhost';" 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
sudo mysql -e "GRANT ALL PRIVILEGES ON $dbEgpSql.* TO '$userEgpSql'@'localhost';" 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
||||||
|
|
||||||
# Применение изменений привилегий
|
# Применение изменений привилегий
|
||||||
sudo mysql -e "FLUSH PRIVILEGES;" 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
sudo mysql -e "FLUSH PRIVILEGES;" 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
||||||
|
|
||||||
# Экспорт базы данных
|
# Экспорт базы данных
|
||||||
sudo cat /var/www/enginegp/enginegp.sql | sudo mysql -u "$usrEgpSql" -p"$passEgpSql" "$dbEgpSql" 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
sudo cat /var/www/enginegp/enginegp.sql | sudo mysql -u "$userEgpSql" -p"$passEgpSql" "$dbEgpSql" 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
||||||
|
|
||||||
rm /var/www/enginegp/enginegp.sql 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
rm /var/www/enginegp/enginegp.sql 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
||||||
else
|
else
|
||||||
@ -484,7 +481,7 @@ EOF
|
|||||||
echo "MySQL данные для EngineGP" | tee -a $saveDir
|
echo "MySQL данные для EngineGP" | tee -a $saveDir
|
||||||
echo "Ссылка на phpMyAdmin: http://$sysIp:9090/" | tee -a $saveDir
|
echo "Ссылка на phpMyAdmin: http://$sysIp:9090/" | tee -a $saveDir
|
||||||
echo "База данных: $dbEgpSql" | tee -a $saveDir
|
echo "База данных: $dbEgpSql" | tee -a $saveDir
|
||||||
echo "Пользователь: $usrEgpSql" | tee -a $saveDir
|
echo "Пользователь: $userEgpSql" | tee -a $saveDir
|
||||||
echo "Пароль: $passEgpSql" | tee -a $saveDir
|
echo "Пароль: $passEgpSql" | tee -a $saveDir
|
||||||
echo "===================================" | tee -a $saveDir
|
echo "===================================" | tee -a $saveDir
|
||||||
echo "Системные данные MySQL" | tee -a $saveDir
|
echo "Системные данные MySQL" | tee -a $saveDir
|
||||||
@ -502,6 +499,8 @@ EOF
|
|||||||
2)
|
2)
|
||||||
clear
|
clear
|
||||||
|
|
||||||
|
dbProFTPD="ftp_$(pwgen -cns -1 8)"
|
||||||
|
userProFTPD="ftp_$(pwgen -cns -1 8)"
|
||||||
passProFTPD=$(pwgen -cns -1 16)
|
passProFTPD=$(pwgen -cns -1 16)
|
||||||
|
|
||||||
# Проверяем, содержится ли текущая версия в массиве поддерживаемых версий
|
# Проверяем, содержится ли текущая версия в массиве поддерживаемых версий
|
||||||
@ -623,22 +622,26 @@ EOF
|
|||||||
sudo apt-get install -y proftpd-basic proftpd-mod-mysql 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
sudo apt-get install -y proftpd-basic proftpd-mod-mysql 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
||||||
|
|
||||||
# Скачиваем конфигурационные файлы ProFTPD
|
# Скачиваем конфигурационные файлы ProFTPD
|
||||||
curl -o /etc/proftpd/proftpd.conf $resUrl/Components/ProFTPD/proftpd 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
curl -s https://api.github.com/repos/EngineGPDev/ProFTPD/releases?per_page=1\&prerelease=false | jq -r '.[0].zipball_url' | xargs -n 1 curl -L -o /tmp/proftpd.zip 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
||||||
curl -o /etc/proftpd/modules.conf $resUrl/Components/ProFTPD/proftpd_modules 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
sudo unzip -o /tmp/proftpd.zip -d /tmp 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
||||||
curl -o /etc/proftpd/sql.conf $resUrl/Components/ProFTPD/proftpd_sql 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
sudo mv /tmp/EngineGPDev-ProFTPD-*/proftpd.conf /etc/proftpd/proftpd.conf 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
||||||
|
sudo mv /tmp/EngineGPDev-ProFTPD-*/modules.conf /etc/proftpd/proftpd.conf 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
||||||
|
sudo mv /tmp/EngineGPDev-ProFTPD-*/sql.conf /etc/proftpd/proftpd.conf 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
||||||
|
|
||||||
# Создаем базу данных для ProFTPD
|
# Создаем базу данных для ProFTPD
|
||||||
sudo mysql -e "CREATE DATABASE ftp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
sudo mysql -e "CREATE DATABASE $dbProFTPD CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
||||||
|
|
||||||
# Создаем пользователя для ProFTPD и предоставляем ему все права на базу данных ftp
|
# Создаем пользователя для ProFTPD и предоставляем ему все права на базу данных
|
||||||
sudo mysql -e "CREATE USER 'ftp'@'localhost' IDENTIFIED BY '$passProFTPD';" 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
sudo mysql -e "CREATE USER '$userProFTPD'@'localhost' IDENTIFIED BY '$passProFTPD';" 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
||||||
sudo mysql -e "GRANT ALL PRIVILEGES ON ftp . * TO 'ftp'@'localhost';" 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
sudo mysql -e "GRANT ALL PRIVILEGES ON ftp . * TO 'ftp'@'localhost';" 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
||||||
|
|
||||||
# Импортируем дамп базы данных для ProFTPD
|
# Импортируем дамп базы данных для ProFTPD
|
||||||
curl -sSL $resUrl/Components/ProFTPD/sqldump.sql | sudo mysql ftp 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
sudo cat /tmp/EngineGPDev-ProFTPD-*/proftpd.sql | sudo mysql -u "$userProFTPD" -p"$passProFTPD" "$dbProFTPD" 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
||||||
|
|
||||||
# Заменяем passwdfor на реальный пароль в конфигурационном файле
|
# Вносим даннык в конфигурационный файл
|
||||||
sed -i 's/passwdfor/'"$passProFTPD"'/g' /etc/proftpd/sql.conf 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
sed -i 's/__FTP_DATABASE__/'"$dbProFTPD"'/g' /etc/proftpd/sql.conf 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
||||||
|
sed -i 's/__FTP_USER__/'"$userProFTPD"'/g' /etc/proftpd/sql.conf 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
||||||
|
sed -i 's/__FTP_PASSWORD__/'"$passProFTPD"'/g' /etc/proftpd/sql.conf 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
||||||
|
|
||||||
# Устанавливаем права доступа на конфигурационные файлы
|
# Устанавливаем права доступа на конфигурационные файлы
|
||||||
chmod -R 750 /etc/proftpd 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
chmod -R 750 /etc/proftpd 2>&1 | sudo tee -a "$logsInst" > /dev/null
|
||||||
@ -718,10 +721,10 @@ EOF
|
|||||||
fi
|
fi
|
||||||
echo "===================================" | tee -a $saveDir
|
echo "===================================" | tee -a $saveDir
|
||||||
echo "Данные локации" | tee -a $saveDir
|
echo "Данные локации" | tee -a $saveDir
|
||||||
echo "SQL_Username: ftp" | tee -a $saveDir
|
echo "Пользователь ProFTPD: $userProFTPD" | tee -a $saveDir
|
||||||
echo "SQL_Password: $passProFTPD" | tee -a $saveDir
|
echo "Пароль ProFTPD: $passProFTPD" | tee -a $saveDir
|
||||||
echo "SQL_FileTP: ftp" | tee -a $saveDir
|
echo "База данных ProFTPD: $dbProFTPD" | tee -a $saveDir
|
||||||
echo "SQL_Port: 3306" | tee -a $saveDir
|
echo "Порт базы данных: 3306" | tee -a $saveDir
|
||||||
echo "===================================" | tee -a $saveDir
|
echo "===================================" | tee -a $saveDir
|
||||||
read -rp "Нажмите Enter для завершения..."
|
read -rp "Нажмите Enter для завершения..."
|
||||||
continue
|
continue
|
||||||
@ -792,7 +795,7 @@ EOF
|
|||||||
1)
|
1)
|
||||||
mkdir -p /path/cssold/steam 2>&1 | tee -a "${logsInst}"
|
mkdir -p /path/cssold/steam 2>&1 | tee -a "${logsInst}"
|
||||||
curl -SL -o /path/cssold/steam/steam.zip $gamesURL/cssold/steam.zip 2>&1 | tee -a "${logsInst}"
|
curl -SL -o /path/cssold/steam/steam.zip $gamesURL/cssold/steam.zip 2>&1 | tee -a "${logsInst}"
|
||||||
sudo unzip /path/cssold/steam/steam.zip -d /path/cssold/steam/ 2>&1 | tee -a "${logsInst}"
|
sudo unzip -o /path/cssold/steam/steam.zip -d /path/cssold/steam/ 2>&1 | tee -a "${logsInst}"
|
||||||
sudo rm /path/cssold/steam/steam.zip | tee -a "$logsInst" 2>&1 | tee -a "${logsInst}"
|
sudo rm /path/cssold/steam/steam.zip | tee -a "$logsInst" 2>&1 | tee -a "${logsInst}"
|
||||||
css34_choice
|
css34_choice
|
||||||
;;
|
;;
|
||||||
@ -820,7 +823,7 @@ EOF
|
|||||||
1)
|
1)
|
||||||
mkdir -p /path/css/steam 2>&1 | tee -a "${logsInst}"
|
mkdir -p /path/css/steam 2>&1 | tee -a "${logsInst}"
|
||||||
curl -SL -o /path/css/steam/steam.zip $gamesURL/css/steam.zip 2>&1 | tee -a "${logsInst}"
|
curl -SL -o /path/css/steam/steam.zip $gamesURL/css/steam.zip 2>&1 | tee -a "${logsInst}"
|
||||||
sudo unzip /path/css/steam/steam.zip -d /path/css/steam/ 2>&1 | tee -a "${logsInst}"
|
sudo unzip -o /path/css/steam/steam.zip -d /path/css/steam/ 2>&1 | tee -a "${logsInst}"
|
||||||
sudo rm /path/css/steam/steam.zip | tee -a "$logsInst" 2>&1 | tee -a "${logsInst}"
|
sudo rm /path/css/steam/steam.zip | tee -a "$logsInst" 2>&1 | tee -a "${logsInst}"
|
||||||
css_choice
|
css_choice
|
||||||
;;
|
;;
|
||||||
|
Loading…
Reference in New Issue
Block a user