109 lines
2.5 KiB
Bash
Executable File
109 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Скрипт обновления панелей
|
|
# Version: 2.0.0
|
|
# Author: houseassassin
|
|
# GitHub: https://github.com/houseassassin/proxy-core
|
|
|
|
set -e
|
|
|
|
GREEN='\033[0;32m'
|
|
RED='\033[0;31m'
|
|
NC='\033[0m'
|
|
|
|
print_msg() {
|
|
echo -e "${GREEN}[INFO]${NC} $1"
|
|
}
|
|
|
|
print_error() {
|
|
echo -e "${RED}[ERROR]${NC} $1"
|
|
}
|
|
|
|
check_root() {
|
|
if [[ $EUID -ne 0 ]]; then
|
|
print_error "Требуются права root"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
update_3xui() {
|
|
print_msg "Обновление 3x-ui..."
|
|
bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)
|
|
print_msg "3x-ui обновлен"
|
|
}
|
|
|
|
update_remnawave() {
|
|
print_msg "Обновление Remnawave..."
|
|
|
|
if [ ! -d "/opt/remnawave" ]; then
|
|
print_error "Remnawave не установлен"
|
|
return
|
|
fi
|
|
|
|
cd /opt/remnawave
|
|
docker compose pull
|
|
docker compose up -d
|
|
docker image prune -f
|
|
|
|
print_msg "Remnawave обновлен"
|
|
}
|
|
|
|
backup_configs() {
|
|
print_msg "Создание резервной копии конфигураций..."
|
|
|
|
BACKUP_DIR="/root/vpn-backup-$(date +%Y%m%d-%H%M%S)"
|
|
mkdir -p "$BACKUP_DIR"
|
|
|
|
[ -d "/etc/wireguard" ] && cp -r /etc/wireguard "$BACKUP_DIR/"
|
|
[ -d "/opt/remnawave" ] && cp -r /opt/remnawave/config "$BACKUP_DIR/remnawave-config"
|
|
[ -d "/usr/local/x-ui" ] && cp -r /usr/local/x-ui "$BACKUP_DIR/"
|
|
|
|
print_msg "Резервная копия создана: $BACKUP_DIR"
|
|
}
|
|
|
|
show_menu() {
|
|
clear
|
|
echo "╔════════════════════════════════════════╗"
|
|
echo "║ VPN Panel Updater ║"
|
|
echo "╚════════════════════════════════════════╝"
|
|
echo ""
|
|
echo "1) Обновить 3x-ui"
|
|
echo "2) Обновить Remnawave"
|
|
echo "3) Обновить все"
|
|
echo "4) Создать резервную копию"
|
|
echo "5) Выход"
|
|
echo ""
|
|
read -p "Ваш выбор [1-5]: " choice
|
|
}
|
|
|
|
main() {
|
|
check_root
|
|
show_menu
|
|
|
|
case $choice in
|
|
1)
|
|
update_3xui
|
|
;;
|
|
2)
|
|
update_remnawave
|
|
;;
|
|
3)
|
|
update_3xui
|
|
update_remnawave
|
|
;;
|
|
4)
|
|
backup_configs
|
|
;;
|
|
5)
|
|
print_msg "Выход..."
|
|
exit 0
|
|
;;
|
|
*)
|
|
print_error "Неверный выбор"
|
|
exit 1
|
|
;;
|
|
esac
|
|
}
|
|
|
|
main
|