2023-08-05 18:57:50 +03:00
#!/bin/bash
2024-03-10 11:55:31 +03:00
##
2024-04-12 02:22:19 +03:00
# EngineGP (https://enginegp.ru or https://enginegp.com)
2024-03-10 11:55:31 +03:00
#
2024-04-12 02:22:19 +03:00
# @copyright Copyright (c) 2023-present Solovev Sergei <inbox@seansolovev.ru>
2024-03-10 11:55:31 +03:00
#
2024-04-12 02:22:19 +03:00
# @link https://github.com/EngineGPDev/Autoinstall for the canonical source repository
#
# @license https://github.com/EngineGPDev/Autoinstall/blob/main/LICENSE MIT License
2024-03-10 11:55:31 +03:00
##
2024-03-09 21:51:32 +03:00
2023-08-07 02:47:10 +03:00
# Обновление таблиц и системы
sysUpdate ( ) {
2024-11-27 15:31:06 +03:00
echo "===================================" 2>& 1 | tee -a " $logsInst " > /dev/null
2024-08-18 00:37:21 +03:00
echo "Обновление системы..." | tee -a " $logsInst "
2024-11-27 15:31:06 +03:00
echo "===================================" 2>& 1 | tee -a " $logsInst " > /dev/null
apt-get -y update 2>& 1 | tee -a " $logsInst " > /dev/null
apt-get -y dist-upgrade 2>& 1 | tee -a " $logsInst " > /dev/null
2023-08-07 02:47:10 +03:00
}
2023-10-22 22:37:21 +03:00
# Очистка экрана перед установкой
clear
# Создаём переменную для логов
2024-08-18 00:37:21 +03:00
logsInst = " $( dirname " $0 " ) /enginegp_install.log "
2023-10-22 22:37:21 +03:00
2023-11-20 03:26:14 +03:00
# Директория сохранения данных
2024-08-18 00:37:21 +03:00
saveDir = "/root/enginegp.cfg"
2023-11-20 03:26:14 +03:00
2023-08-07 02:47:10 +03:00
# Обновление системы
sysUpdate
2023-08-06 01:55:44 +03:00
2023-10-12 22:47:04 +03:00
# Установка начальных пакетов.
2024-10-06 18:30:31 +03:00
pkgsReq = ( "sudo" "curl" "lsb-release" "wget" "gnupg" "pwgen" "zip" "unzip" "bc" "tar" "software-properties-common" "git" "jq" "openssl" )
2023-08-06 01:55:44 +03:00
2023-08-07 02:47:10 +03:00
# Цикл установки пакетов
2024-08-18 00:37:21 +03:00
for package in " ${ pkgsReq [@] } " ; do
2023-08-07 02:47:10 +03:00
if ! dpkg-query -W -f= '${Status}' " $package " 2>/dev/null | grep -q "install ok installed" ; then
2024-11-27 15:31:06 +03:00
echo "===================================" 2>& 1 | tee -a " $logsInst " > /dev/null
2024-08-18 00:37:21 +03:00
echo " $package не установлен. Выполняется установка... " | tee -a " $logsInst "
2024-11-27 15:31:06 +03:00
echo "===================================" 2>& 1 | tee -a " $logsInst " > /dev/null
apt-get install -y " $package " 2>& 1 | tee -a " $logsInst " > /dev/null
2023-08-06 01:55:44 +03:00
fi
done
2023-11-24 00:40:10 +03:00
# Массив с поддерживаемыми версиями операционной системы
2024-08-18 00:37:21 +03:00
suppOs = ( "Debian 11" "Debian 12" "Ubuntu 22.04" "Ubuntu 24.04" )
2024-10-01 20:30:49 +03:00
repoExp = $( "*.list" "*.sources" )
2023-10-12 22:47:04 +03:00
# Получаем текущую версию операционной системы
2024-08-18 00:37:21 +03:00
disOs = $( lsb_release -si)
relOs = $( lsb_release -sr)
currOs = " $disOs $relOs "
# Проверка, есть ли currOs в массиве suppOs
foundOs = false
for os in " ${ suppOs [@] } " ; do
if [ [ " $os " = = " $currOs " ] ] ; then
foundOs = true
break
fi
done
2023-08-06 01:55:44 +03:00
# Проверка аргументов командной строки
if [ $# -gt 0 ] ; then
# Переменные для хранения
2024-08-18 00:37:21 +03:00
verPhp = ""
sysIp = ""
gitEgp = ""
2023-08-06 01:55:44 +03:00
# Перебор всех аргументов
while [ [ $# -gt 0 ] ] ; do
key = " $1 "
case $key in
--php)
# Если передан аргумент --php, сохранить указанную версию PHP
2024-08-18 00:37:21 +03:00
verPhp = " $2 "
2023-08-06 01:55:44 +03:00
shift # Пропустить значение версии
shift # Пропустить аргумент --php
; ;
--ip)
# Если передан аргумент --ip, сохранить указанный IP-адрес
2024-08-18 00:37:21 +03:00
sysIp = " $2 "
2023-08-06 01:55:44 +03:00
shift # Пропустить значение IP-адреса
shift # Пропустить аргумент --ip
; ;
2024-04-10 22:16:36 +03:00
--branch)
# Если передан аргумент --ip, сохранить указанный IP-адрес
2024-08-18 00:37:21 +03:00
gitEgp = " $2 "
2024-04-10 22:16:36 +03:00
shift # Пропустить значение ветки
shift # Пропустить аргумент --branch
; ;
2023-08-06 01:55:44 +03:00
*)
# Неизвестный аргумент, вывести справку и выйти
clear
2024-09-07 19:29:26 +03:00
echo "Использование: ./install.sh --php 8.2 --ip 192.168.1.1 --branch main"
echo " --php версия: установить указанную версию PHP. Формат должен быть: 8.2"
2023-10-12 22:47:04 +03:00
echo " --ip IP-адрес: использовать указанный IP-адрес. Формат должен быть: 192.168.1.1"
2024-04-10 22:16:36 +03:00
echo " --branch ветка: использовать указаную ветку GIT. Формат должен быть: main"
2023-08-06 01:55:44 +03:00
exit 1
; ;
esac
done
2024-10-05 03:13:02 +03:00
fi
2023-08-06 01:55:44 +03:00
2024-10-05 03:13:02 +03:00
# Если версия PHP не выбрана, использовать PHP 7.4 по умолчанию
if [ -z " $verPhp " ] ; then
verPhp = "8.2"
fi
2023-08-06 01:55:44 +03:00
2024-10-05 03:13:02 +03:00
# Если IP-адрес не указан, получить внешний IP-адрес с помощью сервиса ipinfo.io
if [ -z " $sysIp " ] ; then
sysIp = $( ip a | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | grep -v '127.0.0.1' | head -n 1)
fi
2024-04-10 22:16:36 +03:00
2024-10-05 03:13:02 +03:00
# Если ветка не указана, использовать main
if [ -z " $gitEgp " ] ; then
2024-08-18 00:37:21 +03:00
gitEgp = "main"
2023-08-06 01:55:44 +03:00
fi
2023-08-05 18:57:50 +03:00
# Проверяем, является ли полученный IP-адрес действительным IPv4 адресом
2024-08-18 00:37:21 +03:00
if [ [ ! $sysIp = ~ ^[ 0-9] +\. [ 0-9] +\. [ 0-9] +\. [ 0-9] +$ ] ] ; then
2023-08-06 01:55:44 +03:00
clear
2023-08-05 18:57:50 +03:00
echo "Н е удалось получить внешний IP-адрес"
2023-08-06 01:55:44 +03:00
echo "Используй: ./install.sh [--ip IP-адрес]"
exit
2023-08-05 18:57:50 +03:00
fi
2023-08-06 01:55:44 +03:00
while true; do
clear
echo "Меню установки EngineGP:"
echo "1. Установка панели управления"
echo "2. Настройка сервера под игры"
2024-09-15 23:34:41 +03:00
echo "3. Установка игровых серверов"
2023-08-06 01:55:44 +03:00
echo "4. Системная информация"
echo "0. Выход"
2023-08-05 18:57:50 +03:00
2024-08-18 00:37:21 +03:00
read -rp "Выберите пункт меню: " choice
2023-08-05 18:57:50 +03:00
2023-08-06 01:55:44 +03:00
case $choice in
1)
clear
2023-10-12 22:47:04 +03:00
# Проверяем, содержится ли текущая версия в массиве поддерживаемых версий
2024-08-18 00:37:21 +03:00
if $foundOs ; then
2024-07-06 07:02:09 +03:00
# Проверяем наличие репозитория php
2024-08-18 00:37:21 +03:00
if [ [ " ${ disOs } " = ~ " Debian " ] ] ; then
2023-11-24 00:40:10 +03:00
if [ ! -f "/etc/apt/sources.list.d/php.list" ] ; then
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "Репозиторий php не обнаружен. Добавляем..." | sudo tee -a " $logsInst "
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-07-06 07:02:09 +03:00
# Скачиваем ключа зеркала репозитория Sury
2024-08-18 00:37:21 +03:00
curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://mirror.enginegp.com/sury/debsuryorg-archive-keyring.deb 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-07-06 07:02:09 +03:00
# Устанавливаем ключа зеркала репозитория Sury
2024-08-18 00:37:21 +03:00
sudo dpkg -i /tmp/debsuryorg-archive-keyring.deb 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-07-06 07:02:09 +03:00
2023-11-24 00:40:10 +03:00
# Добавляем репозиторий php
2024-08-18 00:37:21 +03:00
sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://mirror.enginegp.com/sury/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2023-11-24 00:40:10 +03:00
2024-03-10 18:11:47 +03:00
# Обновление таблиц и пакетов
2024-08-18 00:37:21 +03:00
sudo apt-get -y update 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-09-12 23:35:43 +03:00
sudo apt-get -y dist-upgrade 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2023-11-24 00:40:10 +03:00
# Определяем версию php по умолчанию
2024-08-18 00:37:21 +03:00
defPhp = $( apt-cache policy php | awk -F ': ' '/Candidate:/ {split($2, a, "[:+~]"); print a[2]}' )
2023-11-24 00:40:10 +03:00
fi
else
2024-10-01 20:30:49 +03:00
foundExp = false
# Проверяем наличие каждого файла
for exp in " ${ repoExp [@] } " ; do
if [ ! -f " /etc/apt/sources.list.d/ondrej-ubuntu-php- $exp " ] ; then
foundExp = true
fi
done
if [ " $foundExp " = false ] ; then
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "Репозиторий php не обнаружен. Добавляем..." | sudo tee -a " $logsInst "
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-05-21 15:18:58 +03:00
# Добавляем репозиторий php
2024-08-18 00:37:21 +03:00
sudo LC_ALL = C.UTF-8 add-apt-repository ppa:ondrej/php -y 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2023-10-20 00:54:59 +03:00
2024-05-21 15:18:58 +03:00
# Обновление таблиц и пакетов
2024-08-18 00:37:21 +03:00
sudo apt-get -y update 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-09-12 23:35:43 +03:00
sudo apt-get -y dist-upgrade 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2023-10-20 00:54:59 +03:00
2024-05-21 15:18:58 +03:00
# Определяем версию php по умолчанию
2024-08-18 00:37:21 +03:00
defPhp = $( apt-cache policy php | awk -F ': ' '/Candidate:/ {split($2, a, "[:+~]"); print a[2]}' )
2024-05-21 15:18:58 +03:00
fi
2023-10-20 00:54:59 +03:00
fi
2024-07-06 07:02:09 +03:00
# Проверяем наличие репозитория nginx
2024-08-18 00:37:21 +03:00
if [ [ " ${ disOs } " = ~ " Debian " ] ] ; then
2024-03-09 17:11:25 +03:00
if [ ! -f "/etc/apt/sources.list.d/nginx.list" ] ; then
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "Репозиторий nginx не обнаружен. Добавляем..." | sudo tee -a " $logsInst "
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-07-06 07:02:09 +03:00
# Скачиваем ключа зеркала репозитория Sury
2024-08-18 00:37:21 +03:00
curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://mirror.enginegp.com/sury/debsuryorg-archive-keyring.deb 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-07-06 07:02:09 +03:00
# Устанавливаем ключа зеркала репозитория Sury
2024-08-18 00:37:21 +03:00
sudo dpkg -i /tmp/debsuryorg-archive-keyring.deb 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-07-06 07:02:09 +03:00
2024-03-09 17:11:25 +03:00
# Добавляем репозиторий nginx
2024-08-18 00:37:21 +03:00
sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-nginx.gpg] https://mirror.enginegp.com/sury/nginx/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/nginx.list' 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-03-09 17:11:25 +03:00
2024-03-10 18:11:47 +03:00
# Обновление таблиц и пакетов
2024-08-18 00:37:21 +03:00
sudo apt-get -y update 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-09-12 23:35:43 +03:00
sudo apt-get -y dist-upgrade 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-03-09 17:11:25 +03:00
fi
else
2024-10-01 20:30:49 +03:00
foundExp = false
# Проверяем наличие каждого файла
for exp in " ${ repoExp [@] } " ; do
if [ ! -f " /etc/apt/sources.list.d/ondrej-ubuntu-nginx- $exp " ] ; then
foundExp = true
fi
done
if [ " $foundExp " = false ] ; then
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "Репозиторий nginx не обнаружен. Добавляем..." | sudo tee -a " $logsInst "
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-05-21 15:18:58 +03:00
# Добавляем репозиторий nginx
2024-08-18 00:37:21 +03:00
sudo LC_ALL = C.UTF-8 add-apt-repository ppa:ondrej/nginx -y 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-03-09 17:11:25 +03:00
2024-05-21 15:18:58 +03:00
# Обновление таблиц и пакетов
2024-08-18 00:37:21 +03:00
sudo apt-get -y update 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-09-12 23:35:43 +03:00
sudo apt-get -y dist-upgrade 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-05-21 15:18:58 +03:00
fi
2024-03-09 17:11:25 +03:00
fi
2024-05-13 00:54:58 +03:00
# Список пакетов для установки
2024-11-10 21:51:45 +03:00
pkgsList = ( " php $verPhp -fpm " " php $verPhp -common " " php $verPhp -cli " " php $verPhp -memcache " " php $verPhp -mysql " " php $verPhp -xml " " php $verPhp -mbstring " " php $verPhp -gd " " php $verPhp -imagick " " php $verPhp -zip " " php $verPhp -curl " " php $verPhp -gmp " " php $verPhp -bz2 " "nginx" "mariadb-server" "ufw" "memcached" "screen" "tmux" "cron" )
2024-08-18 00:37:21 +03:00
pkgsPma = ( " php $defPhp -fpm " " php $defPhp -mbstring " " php $defPhp -zip " " php $defPhp -gd " " php $defPhp -json " " php $defPhp -curl " )
2024-05-13 00:54:58 +03:00
2023-11-25 02:29:31 +03:00
# Генерирование паролей и имён
2024-08-18 00:37:21 +03:00
passPma = $( pwgen -cns -1 16)
2024-09-09 02:08:41 +03:00
cronKey = $( pwgen -cns -1 12)
2024-10-06 18:30:31 +03:00
jwtKey = $( openssl rand -base64 32)
2024-09-07 19:29:26 +03:00
userEgpSql = " enginegp_ $( pwgen -cns -1 8) "
2024-08-18 00:37:21 +03:00
dbEgpSql = " enginegp_ $( pwgen -1 8) "
passEgpSql = $( pwgen -cns -1 16)
usrEgpPass = $( pwgen -cns -1 16)
2023-11-25 02:29:31 +03:00
2023-10-12 22:47:04 +03:00
# Конфигурация nginx для EngineGP
nginx_enginegp = " server {
2023-08-07 02:47:10 +03:00
listen 80;
2024-08-18 00:37:21 +03:00
server_name $sysIp ;
2023-08-07 02:47:10 +03:00
2024-07-02 02:19:31 +03:00
root /var/www/enginegp;
index index.php;
charset utf-8;
2023-08-07 02:47:10 +03:00
location / {
2024-07-02 02:19:31 +03:00
try_files \$ uri \$ uri/ /index.php?\$ args;
}
location /acp/ {
try_files \$ uri \$ uri/ /acp/index.php?\$ args;
2023-08-07 02:47:10 +03:00
}
2023-11-25 00:46:06 +03:00
location ~* /\. ( gif| jpeg| jpg| txt| png| tif| tiff| ico| jng| bmp| doc| pdf| rtf| xls| ppt| rar| rpm| swf| zip| bin| exe| dll| deb| cur) $ {
2023-08-07 02:47:10 +03:00
access_log off;
expires 3d;
}
2023-11-25 00:46:06 +03:00
location ~* /\. ( css| js) $ {
2023-08-07 02:47:10 +03:00
access_log off;
expires 180m;
}
location ~ /\. ht {
deny all;
}
2024-03-18 00:00:30 +03:00
location ~ /\. en {
deny all;
}
2024-07-02 02:19:31 +03:00
error_page 403 /403.html;
location = /403.html {
internal;
}
error_page 404 /404.html;
location = /404.html {
internal;
}
location ~ \. php$ {
include fastcgi_params;
2024-08-18 00:37:21 +03:00
fastcgi_pass unix:/run/php/php$verPhp -fpm.sock;
2024-07-02 02:19:31 +03:00
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME \$ document_root\$ fastcgi_script_name;
include fastcgi_params;
}
2023-12-02 20:59:32 +03:00
} "
2024-07-02 02:19:31 +03:00
2023-12-02 20:59:32 +03:00
# Конфигурация nginx для phpMyAdmin
nginx_phpmyadmin = " server {
listen 9090;
2024-08-18 00:37:21 +03:00
server_name $sysIp ;
2024-07-02 02:19:31 +03:00
2024-04-13 01:33:27 +03:00
root /usr/share/phpmyadmin;
2024-07-02 02:19:31 +03:00
index index.php;
2023-10-12 22:47:04 +03:00
2024-04-13 01:33:27 +03:00
location / {
try_files \$ uri \$ uri/ /index.php;
2024-07-02 02:19:31 +03:00
}
2023-12-02 20:59:32 +03:00
2024-07-02 02:19:31 +03:00
location ~* ^/( .+\. ( jpg| jpeg| gif| css| png| js| ico| html| xml| txt) ) $ {
root /usr/share/phpmyadmin;
2023-12-02 20:59:32 +03:00
}
location ~ /\. ht {
deny all;
2023-10-20 00:54:59 +03:00
}
2024-07-02 02:19:31 +03:00
location ~ \. php$ {
include fastcgi_params;
2024-08-18 00:37:21 +03:00
fastcgi_pass unix:/run/php/php$defPhp -fpm.sock;
2024-07-02 02:19:31 +03:00
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME \$ document_root\$ fastcgi_script_name;
include fastcgi_params;
}
2023-10-20 00:54:59 +03:00
} "
2024-09-09 02:08:41 +03:00
# Задачи CRON
cronTasks = " #
# Default Crontab by EngineGP
2024-11-27 16:23:41 +03:00
* * * * * sudo -u www-data php /var/www/enginegp/cron.php $cronKey threads scan_servers_admins
* * * * * sudo -u www-data php /var/www/enginegp/cron.php $cronKey threads scan_servers_down
*/2 * * * * sudo -u www-data php /var/www/enginegp/cron.php $cronKey threads scan_servers
*/15 * * * * sudo -u www-data php /var/www/enginegp/cron.php $cronKey threads scan_servers_stop
*/15 * * * * sudo -u www-data php /var/www/enginegp/cron.php $cronKey threads scan_servers_copy
0 */1 * * * sudo -u www-data php /var/www/enginegp/cron.php $cronKey threads graph_servers_hour
0 0 */1 * * sudo -u www-data php /var/www/enginegp/cron.php $cronKey threads graph_servers_day
*/10 * * * * sudo -u www-data php /var/www/enginegp/cron.php $cronKey notice_help
*/30 * * * * sudo -u www-data php /var/www/enginegp/cron.php $cronKey notice_server_overdue
*/30 * * * * sudo -u www-data php /var/www/enginegp/cron.php $cronKey preparing_web_delete
2024-09-09 02:08:41 +03:00
# Default Crontab by EngineGP
#"
2023-10-19 22:04:04 +03:00
2023-10-20 00:54:59 +03:00
# Цикл установки пакетов
2024-08-18 00:37:21 +03:00
for package in " ${ pkgsList [@] } " ; do
2023-10-12 22:47:04 +03:00
# Проверка на наличие и установка пакетов
if ! dpkg-query -W -f= '${Status}' " $package " 2>/dev/null | grep -q "install ok installed" ; then
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo " $package не установлен. Выполняется установка... " | sudo tee -a " $logsInst "
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo apt-get install -y " $package " 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-05-13 00:54:58 +03:00
fi
done
# Цикл установки пакетов
2024-08-18 00:37:21 +03:00
for package in " ${ pkgsPma [@] } " ; do
2024-05-13 00:54:58 +03:00
# Проверка на наличие и установка пакетов
if ! dpkg-query -W -f= '${Status}' " $package " 2>/dev/null | grep -q "install ok installed" ; then
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo " $package не установлен. Выполняется установка... " | sudo tee -a " $logsInst "
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo apt-get install -y " $package " 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2023-10-12 22:47:04 +03:00
fi
2023-10-20 00:54:59 +03:00
done
2023-08-07 02:47:10 +03:00
2023-10-20 00:54:59 +03:00
# Установка phpMyAdmin
if ! dpkg-query -W -f= '${Status}' "phpmyadmin" 2>/dev/null | grep -q "install ok installed" ; then
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "phpmyadmin не установлен. Выполняется установка..." | sudo tee -a " $logsInst "
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2023-10-20 00:54:59 +03:00
sudo debconf-set-selections <<EOF
2023-10-19 22:04:04 +03:00
phpmyadmin phpmyadmin/dbconfig-install boolean true
2024-08-18 00:37:21 +03:00
phpmyadmin phpmyadmin/mysql/app-pass password $passPma
phpmyadmin phpmyadmin/password-confirm password $passPma
2023-10-19 22:04:04 +03:00
phpmyadmin phpmyadmin/reconfigure-webserver multiselect
EOF
2024-08-18 00:37:21 +03:00
sudo DEBIAN_FRONTEND = "noninteractive" apt-get install -y phpmyadmin 2>& 1 | sudo tee -a " $logsInst " > /dev/null
echo -e " $nginx_phpmyadmin " | sudo tee /etc/nginx/sites-available/00-phpmyadmin.conf 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo ln -s /etc/nginx/sites-available/00-phpmyadmin.conf /etc/nginx/sites-enabled/ 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2023-12-02 20:59:32 +03:00
# Проводим тестирование и запускаем конфиг NGINX
2024-08-18 00:37:21 +03:00
sudo nginx -t 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo systemctl restart nginx 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2023-10-20 00:54:59 +03:00
else
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "phpmyadmin уже установлен в системе. Продолжение установки невозможно." | sudo tee -a " $logsInst "
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
read -rp "Нажмите Enter для завершения..."
2023-10-22 22:37:21 +03:00
continue
2023-10-20 00:54:59 +03:00
fi
2024-04-18 23:23:09 +03:00
# Установка версии php по умолчанию
2024-08-18 00:37:21 +03:00
if [ [ " $( php -v | grep -oP '(?<=PHP )(\d+\.\d+)' ) " != " $verPhp " ] ] ; then
sudo update-alternatives --set php /usr/bin/php" $verPhp " 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo update-alternatives --set php-config /usr/bin/php-config" $verPhp " 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo update-alternatives --set phpdbg /usr/bin/phpdbg" $verPhp " 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo update-alternatives --set phpize /usr/bin/phpize" $verPhp " 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-04-18 23:23:09 +03:00
fi
2023-10-22 11:56:43 +03:00
# Проверяем установку php-fpm по умолчанию
2024-08-18 00:37:21 +03:00
if dpkg-query -W -f= '${Status}' " php $defPhp -fpm " 2>/dev/null | grep -q "install ok installed" ; then
if ! systemctl is-active --quiet php" $defPhp " -fpm; then
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo " php $defPhp -fpm не запущен. Выполняется запуск... " | sudo tee -a " $logsInst "
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo systemctl start php" $defPhp " -fpm 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2023-10-22 11:56:43 +03:00
fi
fi
# Проверяем установку php-fpm для EngineGP
2024-08-18 00:37:21 +03:00
if dpkg-query -W -f= '${Status}' " php $verPhp -fpm " 2>/dev/null | grep -q "install ok installed" ; then
if ! systemctl is-active --quiet php" $verPhp " -fpm; then
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo " php $verPhp -fpm не запущен. Выполняется запуск... " | sudo tee -a " $logsInst "
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo systemctl start php" $verPhp " -fpm 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2023-10-19 22:04:04 +03:00
fi
2023-10-20 00:54:59 +03:00
fi
2024-03-10 00:55:16 +03:00
# Установка и настрока composer
if [ ! -f "/usr/local/bin/composer" ] ; then
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "composer не установлен. Выполняется установка..." | sudo tee -a " $logsInst "
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
curl -sSL https://getcomposer.org/installer | sudo php -- --install-dir= /usr/local/bin --filename= composer 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-03-10 00:55:16 +03:00
fi
# Установка EngineGP
if [ ! -d "/var/www/enginegp" ] ; then
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "enginegp не установлен. Выполняется установка..." | sudo tee -a " $logsInst "
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-09-12 23:35:43 +03:00
# Создание временного каталога
sudo mkdir -p /tmp/enginegp 2>& 1 | sudo tee -a " $logsInst " > /dev/null
# Загрузка EngineGP
if [ " $gitEgp " = = "develop" ] ; then
sudo git clone --branch " $gitEgp " https://github.com/EngineGPDev/EngineGP.git /var/www/enginegp 2>& 1 | sudo tee -a " $logsInst " > /dev/null
elif [ " $gitEgp " = = "beta" ] ; then
curl -s https://api.github.com/repos/EngineGPDev/EngineGP/releases | jq -r 'map(select(.prerelease == true)) | .[0].zipball_url' | xargs -n 1 curl -L -o /tmp/enginegp/enginegp.zip 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo unzip -o /tmp/enginegp/enginegp.zip -d /tmp/enginegp 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo mv /tmp/enginegp/EngineGPDev-EngineGP-* /var/www/enginegp 2>& 1 | sudo tee -a " $logsInst " > /dev/null
else
2024-11-27 15:50:44 +03:00
curl -s https://api.github.com/repos/EngineGPDev/EngineGP/releases | jq -r 'map(select(.prerelease == false)) | .[0].zipball_url' | xargs -n 1 curl -L -o /tmp/enginegp/enginegp.zip 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-09-12 23:35:43 +03:00
sudo unzip -o /tmp/enginegp/enginegp.zip -d /tmp/enginegp 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo mv /tmp/enginegp/EngineGPDev-EngineGP-* /var/www/enginegp 2>& 1 | sudo tee -a " $logsInst " > /dev/null
fi
2024-04-12 03:14:56 +03:00
2024-09-12 23:35:43 +03:00
# Очищаем временную папку
sudo rm -rf /tmp/enginegp/* 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-04-12 03:14:56 +03:00
# Установка зависимостей composer
2024-08-18 00:37:21 +03:00
sudo COMPOSER_ALLOW_SUPERUSER = 1 composer install --working-dir= /var/www/enginegp 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-04-12 03:14:56 +03:00
# Хэширование пароля пользователя перед записью в базу данных
2024-08-18 00:37:21 +03:00
usrEgpHASH = $( php" $verPhp " -r " echo password_hash(' $usrEgpPass ', PASSWORD_DEFAULT); " )
2024-04-12 03:14:56 +03:00
2024-08-17 21:15:10 +03:00
# Настраиваем конфигурацию панели
2024-08-18 00:37:21 +03:00
sudo mv /var/www/enginegp/.env.example /var/www/enginegp/.env 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-10-05 03:08:31 +03:00
sed -i " s/APP_URL=\"example.com\"/APP_URL=\" $sysIp \"/g " /var/www/enginegp/.env 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sed -i " s/APP_CRONKEY=\"enginegp_ck\"/APP_CRONKEY=\" $cronKey \"/g " /var/www/enginegp/.env 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-10-06 18:30:31 +03:00
sed -i " s/JWT_KEY=\"jwt_key\"/s/JWT_KEY=\" $jwtKey \"/g " /var/www/enginegp/.env 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-10-05 03:08:31 +03:00
sed -i " s/DB_DATABASE=\"enginegp_db\"/DB_DATABASE=\" $dbEgpSql \"/g " /var/www/enginegp/.env 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sed -i " s/DB_USERNAME=\"enginegp_usr\"/DB_USERNAME=\" $userEgpSql \"/g " /var/www/enginegp/.env 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sed -i " s/DB_PASSWORD=\"enginegp_pwd\"/DB_PASSWORD=\" $passEgpSql \"/g " /var/www/enginegp/.env 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-08-18 00:37:21 +03:00
sed -i " s/ENGINEGPHASH/ $( echo " $usrEgpHASH " | sed 's/[\/&]/\\&/g' ) /g " /var/www/enginegp/enginegp.sql 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-08-17 21:15:10 +03:00
# Создание пользователя
2024-09-07 19:29:26 +03:00
sudo mysql -e " CREATE USER ' $userEgpSql '@'localhost' IDENTIFIED BY ' $passEgpSql '; " 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-08-17 21:15:10 +03:00
# Создание базы данных
2024-08-18 00:37:21 +03:00
sudo mysql -e " CREATE DATABASE $dbEgpSql CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; " 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-08-17 21:15:10 +03:00
# Предоставление привилегий пользователю на базу данных
2024-09-07 19:29:26 +03:00
sudo mysql -e " GRANT ALL PRIVILEGES ON $dbEgpSql .* TO ' $userEgpSql '@'localhost'; " 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-08-17 21:15:10 +03:00
# Применение изменений привилегий
2024-08-18 00:37:21 +03:00
sudo mysql -e "FLUSH PRIVILEGES;" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-08-17 21:15:10 +03:00
# Экспорт базы данных
2024-09-12 23:35:43 +03:00
{ sudo cat /var/www/enginegp/enginegp.sql | sudo mysql -u " $userEgpSql " -p" $passEgpSql " " $dbEgpSql " ; } 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-08-18 00:37:21 +03:00
rm /var/www/enginegp/enginegp.sql 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-09-09 02:08:41 +03:00
# Устанавливаем задачи CRON
2024-09-12 23:35:43 +03:00
{ ( sudo crontab -l; echo " $cronTasks " ) | sudo crontab -; } 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-03-10 00:55:16 +03:00
else
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "enginegp уже установлен в системе. Продолжение установки невозможно." | sudo tee -a " $logsInst "
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
read -rp "Нажмите Enter для завершения..."
2024-03-10 00:55:16 +03:00
continue
fi
2024-07-02 02:19:31 +03:00
# Выставляем права на каталог и файлы
2024-08-18 00:37:21 +03:00
sudo chown -R www-data:www-data /var/www/enginegp 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo find /var/www/enginegp -type f -exec chmod 644 { } \; 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo find /var/www/enginegp -type d -exec chmod 755 { } \; 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2023-10-20 00:54:59 +03:00
# Настраиваем nginx
if dpkg-query -W -f= '${Status}' "nginx" 2>/dev/null | grep -q "install ok installed" ; then
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "nginx не настроен. Выполняется настройка..." | sudo tee -a " $logsInst "
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2023-10-20 00:54:59 +03:00
# Удаляем дефолтный и создаём конфиг EngineGP
2024-08-18 00:37:21 +03:00
sudo rm /etc/nginx/sites-enabled/default 2>& 1 | sudo tee -a " $logsInst " > /dev/null
echo -e " $nginx_enginegp " | sudo tee /etc/nginx/sites-available/01-enginegp.conf 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo ln -s /etc/nginx/sites-available/01-enginegp.conf /etc/nginx/sites-enabled/ 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2023-10-20 00:54:59 +03:00
# Проводим тестирование и запускаем конфиг NGINX
2024-08-18 00:37:21 +03:00
sudo nginx -t 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo systemctl restart nginx 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2023-10-20 00:54:59 +03:00
else
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "NGINX не установлен. Продолжение установки невозможно." | sudo tee -a " $logsInst "
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
read -rp "Нажмите Enter для завершения..."
2024-07-02 02:19:31 +03:00
continue
2023-10-20 00:54:59 +03:00
fi
2023-10-19 22:04:04 +03:00
2023-10-20 00:54:59 +03:00
# Сообщение о завершении установки
2024-11-27 15:31:06 +03:00
echo "===================================" | sudo tee -a $saveDir
echo "Установка завершена!" | sudo tee -a $saveDir
echo " Ссылка на EngineGP: http:// $sysIp / " | sudo tee -a $saveDir
echo "Пользователь: admin" | sudo tee -a $saveDir
echo " Пароль: $usrEgpPass " | sudo tee -a $saveDir
echo "===================================" | sudo tee -a $saveDir
echo "MySQL данные для EngineGP" | sudo tee -a $saveDir
echo " Ссылка на phpMyAdmin: http:// $sysIp :9090/ " | sudo tee -a $saveDir
echo " База данных: $dbEgpSql " | sudo tee -a $saveDir
echo " Пользователь: $userEgpSql " | sudo tee -a $saveDir
echo " Пароль: $passEgpSql " | sudo tee -a $saveDir
echo "===================================" | sudo tee -a $saveDir
echo "Системные данные MySQL" | sudo tee -a $saveDir
echo " Пароль пользователя phpmyadmin: $passPma " | sudo tee -a $saveDir
echo "===================================" | sudo tee -a $saveDir
2024-08-18 00:37:21 +03:00
read -rp "Нажмите Enter для завершения..."
2023-10-22 22:37:21 +03:00
continue
2023-10-12 22:47:04 +03:00
else
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "Вы используете неподдерживаемую версию Linux" | sudo tee -a " $logsInst "
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
read -rp "Нажмите Enter для завершения..."
2023-10-12 22:47:04 +03:00
fi
2023-08-06 01:55:44 +03:00
; ;
2)
clear
2024-04-14 03:27:24 +03:00
2024-09-07 19:29:26 +03:00
dbProFTPD = " ftp_ $( pwgen -cns -1 8) "
userProFTPD = " ftp_ $( pwgen -cns -1 8) "
2024-04-14 03:27:24 +03:00
passProFTPD = $( pwgen -cns -1 16)
2024-08-15 15:15:03 +03:00
2023-11-20 03:26:14 +03:00
# Проверяем, содержится ли текущая версия в массиве поддерживаемых версий
2024-08-18 00:37:21 +03:00
if $foundOs ; then
2024-07-06 07:02:09 +03:00
# Проверяем наличие репозитория nginx
2024-08-18 00:37:21 +03:00
if [ [ " ${ disOs } " = ~ " Debian " ] ] ; then
2024-03-09 17:11:25 +03:00
if [ ! -f "/etc/apt/sources.list.d/nginx.list" ] ; then
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "Репозиторий nginx не обнаружен. Добавляем..." | sudo tee -a " $logsInst "
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-07-06 07:02:09 +03:00
# Скачиваем ключа зеркала репозитория Sury
2024-08-18 00:37:21 +03:00
curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://mirror.enginegp.com/sury/debsuryorg-archive-keyring.deb 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-07-06 07:02:09 +03:00
# Устанавливаем ключа зеркала репозитория Sury
2024-08-18 00:37:21 +03:00
sudo dpkg -i /tmp/debsuryorg-archive-keyring.deb 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-07-06 07:02:09 +03:00
2024-03-09 17:11:25 +03:00
# Добавляем репозиторий nginx
2024-08-18 00:37:21 +03:00
sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-nginx.gpg] https://mirror.enginegp.com/sury/nginx/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/nginx.list' 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-03-09 17:11:25 +03:00
2024-03-10 19:23:42 +03:00
# Обновление таблиц и пакетов
2024-08-18 00:37:21 +03:00
sudo apt-get -y update 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-09-12 23:35:43 +03:00
sudo apt-get -y dist-upgrade 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-03-09 17:11:25 +03:00
fi
else
2024-10-01 20:30:49 +03:00
foundExp = false
# Проверяем наличие каждого файла
for exp in " ${ repoExp [@] } " ; do
if [ ! -f " /etc/apt/sources.list.d/ondrej-ubuntu-nginx- $exp " ] ; then
foundExp = true
fi
done
if [ " $foundExp " = false ] ; then
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "Репозиторий nginx не обнаружен. Добавляем..." | sudo tee -a " $logsInst "
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-05-21 15:18:58 +03:00
# Добавляем репозиторий nginx
2024-08-18 00:37:21 +03:00
sudo LC_ALL = C.UTF-8 add-apt-repository ppa:ondrej/nginx -y 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-03-09 17:11:25 +03:00
2024-05-21 15:18:58 +03:00
# Обновление таблиц и пакетов
2024-08-18 00:37:21 +03:00
sudo apt-get -y update 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-09-12 23:35:43 +03:00
sudo apt-get -y dist-upgrade 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-05-21 15:18:58 +03:00
fi
2024-03-09 17:11:25 +03:00
fi
2024-07-02 02:19:31 +03:00
# Конфигурация nginx для FastDL
nginx_fastdl = " server {
listen 8080;
location / {
root /var/nginx/;
index index.html index.htm;
set \$ limit_rate 20m;
}
location ~ /( .*) /.*\. cfg {
deny all;
}
location ~ /( .*) /.*\. vpk {
deny all;
}
location ~ /( .*) /cfg/ {
deny all;
}
location ~ /( .*) /addons/ {
deny all;
}
location ~ /( .*) /logs/ {
deny all;
}
} "
2024-11-10 21:51:45 +03:00
pkgsLOC = ( "glibc-source" "lib32z1" "libbabeltrace1" "libc6-dbg" "libdw1" "lib32stdc++6" "libreadline8" "lib32gcc-s1" "libtinfo5:i386" "screen" "tmux" "tcpdump" "lsof" "qstat" "gdb-minimal" "ntpdate" "gcc-multilib" "iptables" "default-jdk" "nginx" "mariadb-server" )
2023-11-20 03:26:14 +03:00
if ! dpkg --print-foreign-architectures | grep -q "i386" ; then
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "Архитектура i386 не добавлена. Выполняется добавление..." | sudo tee -a " $logsInst "
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo dpkg --add-architecture i386 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2023-11-20 03:26:14 +03:00
# Обновление таблиц
2024-08-18 00:37:21 +03:00
sudo apt-get -y update 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2023-11-20 03:26:14 +03:00
fi
# Цикл установки пакетов
for package in " ${ pkgsLOC [@] } " ; do
# Проверка на наличие и установка пакетов
if ! dpkg-query -W -f= '${Status}' " $package " 2>/dev/null | grep -q "install ok installed" ; then
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo " $package не установлен. Выполняется установка... " | sudo tee -a " $logsInst "
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo apt-get install -y " $package " 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2023-11-20 03:26:14 +03:00
fi
done
2024-07-02 02:19:31 +03:00
# Настраиваем FastDL
if [ ! -f /etc/nginx/sites-available/02-fastdl.conf ] ; then
# Создаём каталог и выдаём ему права
2024-08-18 00:37:21 +03:00
sudo mkdir -p /var/nginx 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo chmod -R 755 /var/nginx 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-07-02 02:19:31 +03:00
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "fastdl не настроен. Выполняется настройка..." | sudo tee -a " $logsInst "
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-07-02 02:19:31 +03:00
# Удаляем дефолтный конфиг и создаём для FastDL
2024-08-18 00:37:21 +03:00
sudo rm /etc/nginx/sites-enabled/default 2>& 1 | sudo tee -a " $logsInst " > /dev/null
echo -e " $nginx_fastdl " | sudo tee /etc/nginx/sites-available/02-fastdl.conf 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo ln -s /etc/nginx/sites-available/02-fastdl.conf /etc/nginx/sites-enabled/ 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-07-02 02:19:31 +03:00
# Проводим тестирование и запускаем конфиг NGINX
2024-08-18 00:37:21 +03:00
sudo nginx -t 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo systemctl restart nginx 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-07-02 02:19:31 +03:00
else
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "fastdl не установлен. Продолжение установки невозможно." | sudo tee -a " $logsInst "
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
read -rp "Нажмите Enter для завершения..."
2024-07-02 02:19:31 +03:00
continue
fi
2023-11-20 03:26:14 +03:00
# Устанавливаем ProFTPD
if ! dpkg-query -W -f= '${Status}' "proftpd" 2>/dev/null | grep -q "install ok installed" ; then
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "proftpd не установлен. Выполняется установка..." | sudo tee -a " $logsInst "
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-08-15 15:15:03 +03:00
# Устанавливаем ProFTPD и необходимые модули
2023-11-20 03:26:14 +03:00
echo "proftpd shared/proftpd/inetd_or_standalone select standalone" | debconf-set-selections
2024-08-18 00:37:21 +03:00
sudo apt-get install -y proftpd-basic proftpd-mod-mysql 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-08-15 15:15:03 +03:00
2024-09-12 23:35:43 +03:00
# Создание временного каталога
sudo mkdir -p /tmp/enginegp 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-08-15 15:15:03 +03:00
# Скачиваем конфигурационные файлы ProFTPD
2024-09-12 23:35:43 +03:00
curl -s https://api.github.com/repos/EngineGPDev/ProFTPD/releases | jq -r 'map(select(.prerelease == false)) | .[0].zipball_url' | xargs -n 1 curl -L -o /tmp/enginegp/proftpd.zip 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo unzip -o /tmp/enginegp/proftpd.zip -d /tmp/enginegp 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo mv /tmp/enginegp/EngineGPDev-ProFTPD-*/proftpd.conf /etc/proftpd/proftpd.conf 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo mv /tmp/enginegp/EngineGPDev-ProFTPD-*/modules.conf /etc/proftpd/modules.conf 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo mv /tmp/enginegp/EngineGPDev-ProFTPD-*/sql.conf /etc/proftpd/sql.conf 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-08-15 15:15:03 +03:00
# Создаем базу данных для ProFTPD
2024-09-07 19:29:26 +03:00
sudo mysql -e " CREATE DATABASE $dbProFTPD CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; " 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-08-15 15:15:03 +03:00
2024-09-07 19:29:26 +03:00
# Создаем пользователя для ProFTPD и предоставляем ему все права на базу данных
sudo mysql -e " CREATE USER ' $userProFTPD '@'localhost' IDENTIFIED BY ' $passProFTPD '; " 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-09-07 20:36:22 +03:00
sudo mysql -e " GRANT ALL PRIVILEGES ON $dbProFTPD . * TO ' $userProFTPD '@'localhost'; " 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-08-15 15:15:03 +03:00
# Импортируем дамп базы данных для ProFTPD
2024-09-12 23:35:43 +03:00
{ sudo cat /tmp/enginegp/EngineGPDev-ProFTPD-*/proftpd.sql | sudo mysql -u " $userProFTPD " -p" $passProFTPD " " $dbProFTPD " ; } 2>& 1 | sudo tee -a " $logsInst " > /dev/null
# Очищаем временную папку
sudo rm -rf /tmp/enginegp/* 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-08-15 15:15:03 +03:00
2024-09-07 19:29:26 +03:00
# Вносим даннык в конфигурационный файл
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
2024-08-15 15:15:03 +03:00
# Устанавливаем права доступа на конфигурационные файлы
2024-08-18 00:37:21 +03:00
chmod -R 750 /etc/proftpd 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-08-15 15:15:03 +03:00
# Перезапускаем ProFTPD для применения изменений
2024-08-18 00:37:21 +03:00
systemctl restart proftpd 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2023-11-20 03:26:14 +03:00
else
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "proftpd уже установлен. Продолжение установки невозможно." | sudo tee -a " $logsInst "
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
read -rp "Нажмите Enter для завершения..."
2023-11-20 03:26:14 +03:00
continue
fi
# Настраиваем rclocal
if [ ! -f /etc/rc.local ] ; then
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "rc.local не настроен. Выполняется настройка..." | sudo tee -a " $logsInst "
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo touch /etc/rc.local 2>& 1 | sudo tee -a " $logsInst " > /dev/null
echo '#!/bin/bash' | sudo tee -a /etc/rc.local 2>& 1 | sudo tee -a " $logsInst " > /dev/null
echo "/root/iptables_block" | sudo tee -a /etc/rc.local 2>& 1 | sudo tee -a " $logsInst " > /dev/null
echo "exit 0" | sudo tee -a /etc/rc.local 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo chmod +x /etc/rc.local 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2023-11-20 03:26:14 +03:00
fi
# Настраиваем iptables
if dpkg-query -W -f= '${Status}' "iptables" 2>/dev/null | grep -q "install ok installed" ; then
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "iptables не настроен. Выполняется настройка..." | sudo tee -a " $logsInst "
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2023-11-20 03:26:14 +03:00
# Проверка на наличие файла
if [ ! -f /root/iptables_block ] ; then
2024-08-18 00:37:21 +03:00
sudo touch /root/iptables_block 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo chmod 500 /root/iptables_block 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2023-11-20 03:26:14 +03:00
else
2024-08-18 00:37:21 +03:00
sudo chmod 500 /root/iptables_block 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2023-11-20 03:26:14 +03:00
fi
else
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "iptables уже установлен. Продолжение установки невозможно." | sudo tee -a " $logsInst "
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
read -rp "Нажмите Enter для завершения..."
2023-11-20 03:26:14 +03:00
continue
fi
# Установка SteamCMD
if [ ! -d "/path/cmd" ] ; then
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "steamcmd не настроен. Выполняется настройка..." | sudo tee -a " $logsInst "
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo groupadd -f servers 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo mkdir -p /path /path/cmd /path/update /path/maps 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo chmod -R 755 /path 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo chown root:servers /path 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo mkdir -p /servers 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo chmod -R 711 /servers 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo chown root:servers /servers 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo mkdir -p /copy 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo chmod -R 750 /copy 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo chown root:root /copy 2>& 1 | sudo tee -a " $logsInst " > /dev/null
curl -SL -o steamcmd_linux.tar.gz http://media.steampowered.com/client/steamcmd_linux.tar.gz 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo tar -xzf steamcmd_linux.tar.gz -C /path/cmd 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo rm steamcmd_linux.tar.gz 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo chmod +x /path/cmd/steamcmd.sh 2>& 1 | sudo tee -a " $logsInst " > /dev/null
sudo /path/cmd/steamcmd.sh +quit 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2023-11-20 03:26:14 +03:00
else
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "steamcmd уже установлен. Продолжение установки невозможно...." | sudo tee -a " $logsInst "
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
read -rp "Нажмите Enter для завершения..."
2023-11-20 03:26:14 +03:00
continue
fi
2024-11-27 15:31:06 +03:00
echo "===================================" | sudo tee -a $saveDir
echo "Данные локации" | sudo tee -a $saveDir
echo " Пользователь ProFTPD: $userProFTPD " | sudo tee -a $saveDir
echo " Пароль ProFTPD: $passProFTPD " | sudo tee -a $saveDir
echo " База данных ProFTPD: $dbProFTPD " | sudo tee -a $saveDir
echo "Порт базы данных: 3306" | sudo tee -a $saveDir
echo "===================================" | sudo tee -a $saveDir
2024-08-18 00:37:21 +03:00
read -rp "Нажмите Enter для завершения..."
2024-03-10 19:26:24 +03:00
continue
2023-11-20 03:26:14 +03:00
else
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "Вы используете неподдерживаемую версию Linux" | sudo tee -a " $logsInst "
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
read -rp "Нажмите Enter для завершения..."
2023-11-20 03:26:14 +03:00
fi
2023-08-06 01:55:44 +03:00
; ;
3)
2024-09-15 23:52:38 +03:00
game_menu( ) {
clear
# Игровой репозиторий
gamesURL = "http://gs.enginegp.ru"
echo "Меню установки игровых серверов:"
echo "1. Counter-Strike: 1.6"
echo "2. Counter-Strike: Source v34 (old)"
echo "3. Counter-Strike: Source (new)"
echo "4. Counter-Strike: Global Offensive"
echo "5. Counter-Strike: 2"
echo "6. Grand Theft Auto: San Andreas MultiPlayer"
echo "7. Grand Theft Auto: Criminal Russia MultiPlayer"
echo "8. Grand Theft Auto: Multi Theft Auto"
echo "9. Minecraft Java Edition"
echo "10. RUST"
echo "0. Вернуться в предыдущее меню"
read -rp "Выберите пункт меню: " game_choice
case $game_choice in
1)
2024-09-18 23:59:36 +03:00
cs16_menu( ) {
2024-09-15 23:52:38 +03:00
while true; do
clear
mkdir -p /path/cs /path/update/cs /path/maps/cs /servers/cs 2>& 1 | sudo tee -a " $logsInst " > /dev/null
echo "Меню установки Counter-Strike: 1.6"
echo "1. Steam"
echo "0. Вернуться в предыдущее меню"
read -rp "Выберите пункт меню: " cs16_choice
case $cs16_choice in
1)
2024-11-27 15:31:06 +03:00
mkdir -p /path/cs/steam 2>& 1 | sudo tee -a " ${ logsInst } "
sudo /path/cmd/steamcmd.sh +force_install_dir /path/cs/steam +login anonymous +app_update 90 -beta beta validate +quit 2>& 1 | sudo tee -a " ${ logsInst } "
2024-09-15 23:52:38 +03:00
; ;
0)
break
; ;
*)
clear
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "Неверный выбор. Попробуйте еще раз." | sudo tee -a " $logsInst "
2024-09-15 23:52:38 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
; ;
esac
done
}
2024-09-18 23:59:36 +03:00
cs16_menu
2024-09-15 23:52:38 +03:00
; ;
2)
cssold_menu( ) {
while true; do
clear
mkdir -p /path/cssold /path/update/cssold /path/maps/cssold /servers/cssold 2>& 1 | sudo tee -a " $logsInst " > /dev/null
echo "Меню установки Counter-Strike: Source v34"
echo "1. Steam"
echo "0. Вернуться в предыдущее меню"
read -rp "Выберите пункт меню: " css34_choice
case $css34_choice in
1)
mkdir -p /path/cssold/steam 2>& 1 | tee -a " ${ logsInst } "
2024-11-27 15:31:06 +03:00
curl -SL -o /path/cssold/steam/steam.zip $gamesURL /cssold/steam.zip 2>& 1 | sudo tee -a " ${ logsInst } "
sudo unzip -o /path/cssold/steam/steam.zip -d /path/cssold/steam/ 2>& 1 | sudo tee -a " ${ logsInst } "
sudo rm /path/cssold/steam/steam.zip 2>& 1 | sudo tee -a " ${ logsInst } "
2024-09-15 23:52:38 +03:00
; ;
0)
break
; ;
*)
clear
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "Неверный выбор. Попробуйте еще раз." | sudo tee -a " $logsInst "
2024-09-15 23:52:38 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
; ;
esac
done
}
cssold_menu
; ;
3)
css_menu( ) {
while true; do
clear
mkdir -p /path/css /path/update/css /path/maps/css /servers/css 2>& 1 | sudo tee -a " $logsInst " > /dev/null
echo "Меню установки Counter-Strike: Source"
echo "1. Steam"
echo "0. Вернуться в предыдущее меню"
read -rp "Выберите пункт меню: " css_choice
case $css_choice in
1)
2024-11-27 15:31:06 +03:00
mkdir -p /path/css/steam 2>& 1 | sudo tee -a " ${ logsInst } "
/path/cmd/steamcmd.sh +force_install_dir /path/css/steam +login anonymous +app_update 232330 validate +quit 2>& 1 | sudo tee -a " ${ logsInst } "
2024-09-15 23:52:38 +03:00
; ;
0)
break
; ;
*)
clear
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "Неверный выбор. Попробуйте еще раз." | sudo tee -a " $logsInst "
2024-09-15 23:52:38 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
; ;
esac
done
}
css_menu
; ;
4)
csgo_menu( ) {
while true; do
clear
mkdir -p /path/csgo /path/update/csgo /path/maps/csgo /servers/csgo 2>& 1 | sudo tee -a " $logsInst " > /dev/null
echo "Меню установки Counter-Strike: GO"
echo "1. Steam"
echo "0. Вернуться в предыдущее меню"
read -rp "Выберите пункт меню: " csgo_choice
case $csgo_choice in
1)
2024-11-27 15:31:06 +03:00
mkdir -p /path/csgo/steam 2>& 1 | sudo tee -a " ${ logsInst } "
/path/cmd/steamcmd.sh +force_install_dir /path/csgo/steam +login anonymous +app_update 740 validate +quit 2>& 1 | sudo tee -a " ${ logsInst } "
2024-09-15 23:52:38 +03:00
; ;
0)
break
; ;
*)
clear
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "Неверный выбор. Попробуйте еще раз." | sudo tee -a " $logsInst "
2024-09-15 23:52:38 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
; ;
esac
done
}
csgo_menu
; ;
5)
cs2_menu( ) {
while true; do
clear
mkdir -p /path/cs2 /path/update/cs2 /path/maps/cs2 /servers/cs2 2>& 1 | sudo tee -a " $logsInst " > /dev/null
echo "Меню установки Counter-Strike: 2"
echo "1. Steam"
echo "0. Вернуться в предыдущее меню"
read -rp "Выберите пункт меню: " cs2_choice
case $cs2_choice in
1)
2024-11-27 15:31:06 +03:00
mkdir -p /path/cs2/steam 2>& 1 | sudo tee -a " ${ logsInst } "
/path/cmd/steamcmd.sh +force_install_dir /path/cs2/steam +login anonymous +app_update 730 validate +quit 2>& 1 | sudo tee -a " ${ logsInst } "
2024-09-15 23:52:38 +03:00
; ;
0)
break
; ;
*)
clear
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "Неверный выбор. Попробуйте еще раз." | sudo tee -a " $logsInst "
2024-09-15 23:52:38 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
; ;
esac
done
}
cs2_menu
; ;
6)
samp_menu( ) {
while true; do
clear
mkdir -p /path/samp /path/update/samp /path/maps/samp /servers/samp /tmp/enginegp 2>& 1 | sudo tee -a " $logsInst " > /dev/null
echo "Меню установки GTA: SAMP"
echo "1. 0.3.7-R2"
echo "0. Вернуться в предыдущее меню"
read -rp "Выберите пункт меню: " samp_choice
case $samp_choice in
1)
2024-11-27 15:31:06 +03:00
curl -SL -o /tmp/enginegp/samp037svr_R2-2-1.tar.gz https://gta-multiplayer.cz/downloads/samp037svr_R2-2-1.tar.gz 2>& 1 | sudo tee -a " ${ logsInst } "
sudo tar -xzf /tmp/enginegp/samp037svr_R2-2-1.tar.gz -C /tmp/enginegp 2>& 1 | sudo tee -a " $logsInst "
sudo mv /tmp/enginegp/samp03 /path/samp/037R2 2>& 1 | sudo tee -a " $logsInst "
2024-09-16 00:00:30 +03:00
sudo rm -rf /tmp/enginegp/* 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-09-15 23:52:38 +03:00
; ;
0)
break
; ;
*)
clear
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "Неверный выбор. Попробуйте еще раз." | sudo tee -a " $logsInst "
2024-09-15 23:52:38 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
; ;
esac
done
}
samp_menu
; ;
7)
crmp_menu( ) {
while true; do
clear
mkdir -p /path/crmp /path/update/crmp /path/maps/crmp /servers/crmp /tmp/enginegp 2>& 1 | sudo tee -a " $logsInst " > /dev/null
echo "Меню установки GTA: CRMP"
echo "1. 0.3e Rev C3"
echo "2. 0.3.7 Rev C5"
echo "0. Вернуться в предыдущее меню"
read -rp "Выберите пункт меню: " crmp_choice
case $crmp_choice in
1)
2024-11-27 15:31:06 +03:00
curl -SL -o /tmp/enginegp/srv-cr-mp-c3-linux.tar.gz https://cr-mp.ru/download/srv-cr-mp-c3-linux.tar.gz 2>& 1 | sudo tee -a " ${ logsInst } "
sudo tar -xzf /tmp/enginegp/srv-cr-mp-c3-linux.tar.gz -C /tmp/enginegp 2>& 1 | sudo tee -a " $logsInst "
sudo mv /tmp/enginegp/srv-cr-mp-c3-linux /path/crmp/03eC3 2>& 1 | sudo tee -a " $logsInst "
2024-09-16 00:00:30 +03:00
sudo rm -rf /tmp/enginegp/* 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-09-15 23:52:38 +03:00
; ;
2)
2024-11-27 15:31:06 +03:00
curl -SL -o /tmp/enginegp/srv-cr-mp-c5-linux.tar.gz https://cr-mp.ru/download/srv-cr-mp-c5-linux.tar.gz 2>& 1 | sudo tee -a " ${ logsInst } "
sudo tar -xzf /tmp/enginegp/srv-cr-mp-c5-linux.tar.gz -C /tmp/enginegp 2>& 1 | sudo tee -a " $logsInst "
sudo mv /tmp/enginegp/samp03 /path/crmp/037C5 2>& 1 | sudo tee -a " $logsInst "
2024-09-16 00:00:30 +03:00
sudo rm -rf /tmp/enginegp/* 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-09-15 23:52:38 +03:00
; ;
0)
break
; ;
*)
clear
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "Неверный выбор. Попробуйте еще раз." | sudo tee -a " $logsInst "
2024-09-15 23:52:38 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
; ;
esac
done
}
crmp_menu
; ;
8)
mta_menu( ) {
while true; do
clear
mkdir -p /path/mta /path/update/mta /path/maps/mta /servers/mta /tmp/enginegp 2>& 1 | sudo tee -a " $logsInst " > /dev/null
echo "Меню установки GTA: MTA"
echo "1. 1.6.0"
echo "0. Вернуться в предыдущее меню"
read -rp "Выберите пункт меню: " mta_choice
case $mta_choice in
1)
2024-11-27 15:31:06 +03:00
curl -SL -o /tmp/enginegp/multitheftauto_linux_x64.tar.gz https://linux.multitheftauto.com/dl/multitheftauto_linux_x64.tar.gz 2>& 1 | sudo tee -a " ${ logsInst } "
sudo tar -xzf /tmp/enginegp/multitheftauto_linux_x64.tar.gz -C /tmp/enginegp 2>& 1 | sudo tee -a " $logsInst "
sudo mv /tmp/enginegp/multitheftauto_linux_x64 /path/mta/160 2>& 1 | sudo tee -a " $logsInst "
sudo mv /path/mta/160/mta-server64 /path/mta/160/mta-server 2>& 1 | sudo tee -a " $logsInst "
2024-09-16 00:00:30 +03:00
sudo rm -rf /tmp/enginegp/* 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-09-15 23:52:38 +03:00
; ;
0)
break
; ;
*)
clear
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "Неверный выбор. Попробуйте еще раз." | sudo tee -a " $logsInst "
2024-09-15 23:52:38 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
; ;
esac
done
}
mta_menu
; ;
9)
mc_menu( ) {
while true; do
clear
mkdir -p /path/mc /path/update/mc /path/maps/mc /servers/mc 2>& 1 | sudo tee -a " $logsInst " > /dev/null
echo "Меню установки Minecraft"
echo "1. PaperSpigot 1.20.4 [Java 17]"
echo "0. Вернуться в предыдущее меню"
read -rp "Выберите пункт меню: " mc_choice
case $mc_choice in
1)
2024-11-27 15:31:06 +03:00
mkdir -p /path/mc/paper1204 2>& 1 | sudo tee -a " ${ logsInst } "
curl -SL -o /path/mc/paper1204/start.jar https://api.papermc.io/v2/projects/paper/versions/1.20.4/builds/497/downloads/paper-1.20.4-497.jar 2>& 1 | sudo tee -a " ${ logsInst } "
2024-09-15 23:52:38 +03:00
; ;
0)
break
; ;
*)
clear
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "Неверный выбор. Попробуйте еще раз." | sudo tee -a " $logsInst "
2024-09-15 23:52:38 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
; ;
esac
done
}
mc_menu
; ;
10)
rust_menu( ) {
while true; do
clear
mkdir -p /path/rust /path/update/rust /servers/rust
echo "Меню установки RUST"
echo "1. Steam"
echo "0. Вернуться в предыдущее меню"
read -rp "Выберите пункт меню: " rust_choice
case $rust_choice in
1)
clear
mkdir -p /path/rust/steam 2>& 1 | tee -a " ${ logsInst } "
2024-11-27 15:31:06 +03:00
sudo /path/cmd/steamcmd.sh +force_install_dir /path/rust/steam +login anonymous +app_update 258550 validate +quit 2>& 1 | sudo tee -a " ${ logsInst } "
2024-09-15 23:52:38 +03:00
; ;
0)
break
; ;
*)
clear
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "Неверный выбор. Попробуйте еще раз." | sudo tee -a " $logsInst "
2024-09-15 23:52:38 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
; ;
esac
done
}
rust_menu
; ;
0)
break
; ;
*)
clear
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "Неверный выбор. Попробуйте еще раз." | sudo tee -a " $logsInst "
2024-09-15 23:52:38 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
; ;
esac
}
game_menu
2023-08-06 01:55:44 +03:00
; ;
4)
clear
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo " Текущая версия Linux: $currOs " | sudo tee -a " $logsInst "
echo " Внешний IP-адрес: $sysIp " | sudo tee -a " $logsInst "
echo " Версия php: $verPhp " | sudo tee -a " $logsInst "
echo " Ветка GIT: $gitEgp " | sudo tee -a " $logsInst "
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
read -rp "Нажмите Enter для выхода в главное меню..."
2023-10-22 22:37:21 +03:00
continue
2023-08-06 01:55:44 +03:00
; ;
0)
clear
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "До свидания!" | sudo tee -a " $logsInst "
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2023-08-06 01:55:44 +03:00
exit 0
; ;
*)
clear
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "Неверный выбор. Попробуйте еще раз." | sudo tee -a " $logsInst "
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2023-08-06 01:55:44 +03:00
; ;
esac
2023-08-05 18:57:50 +03:00
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-11-27 15:31:06 +03:00
echo "Нажмите Enter, чтобы продолжить..." | sudo tee -a " $logsInst "
2024-08-18 00:37:21 +03:00
echo "===================================" 2>& 1 | sudo tee -a " $logsInst " > /dev/null
2024-09-24 11:28:02 +03:00
done