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:
Sergei Solovev 2024-09-07 19:29:26 +03:00 committed by GitHub
parent 000fe52ba5
commit 652d729fbf
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -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
;; ;;