feat: initialize proxy-core repository with management scripts, documentation, and licensing
This commit is contained in:
@@ -0,0 +1,108 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user