#!/bin/bash

if [ "$EUID" -ne 0 ]; then
    echo "❌ Запустите скрипт с правами root:"
    echo "   curl -fsSL https://vpn.johnvps.ru/vpn/install.sh | sudo bash"
    exit 1
fi

VPS_DOMAIN="vpn.johnvps.ru"
VPN_URL="https://${VPS_DOMAIN}/vpn"

echo "========================================="
echo "  🚀 Установка VPN клиента (sing-box)"
echo "========================================="
echo ""

ARCH=$(uname -m)
case "$ARCH" in
    x86_64)  BINARY="sing-box-amd64" ;;
    aarch64) BINARY="sing-box-arm64" ;;
    *)
        echo "❌ Неподдерживаемая архитектура: $ARCH"
        exit 1
        ;;
esac
echo "📦 Архитектура: $ARCH ($BINARY)"

echo "📥 Скачиваем sing-box..."
curl -fsSL -o /usr/local/bin/sing-box "${VPN_URL}/${BINARY}"
chmod +x /usr/local/bin/sing-box
echo "✅ sing-box установлен: $(sing-box version 2>&1 | head -1)"

echo "📥 Скачиваем конфиг..."
mkdir -p /etc/sing-box
curl -fsSL -o /etc/sing-box/config.json "${VPN_URL}/config-template.json"
echo "✅ Конфиг установлен"

echo "🔍 Проверяем конфиг..."
sing-box check -c /etc/sing-box/config.json
echo "✅ Конфиг валиден"

echo "⚙️ Создаём systemd сервис..."
cat > /etc/systemd/system/sing-box.service << 'SERVICE'
[Unit]
Description=sing-box service
After=network.target nss-lookup.target

[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/sing-box -c /etc/sing-box/config.json run
Restart=on-failure
RestartSec=10
LimitNOFILE=infinity

[Install]
WantedBy=multi-user.target
SERVICE

systemctl daemon-reload
systemctl enable sing-box
echo "✅ Сервис создан"

cat > /usr/local/bin/vpn-on << 'ON'
#!/bin/bash
if [ "$EUID" -ne 0 ]; then
    exec sudo "$0" "$@"
fi

echo "🚀 Включаем VPN..."
systemctl start sing-box
sleep 3

cat > /etc/apt/apt.conf.d/95proxy << 'PROXY'
Acquire::http::Proxy "http://127.0.0.1:7890";
Acquire::https::Proxy "http://127.0.0.1:7890";
PROXY

cat > /etc/wgetrc << 'WGET'
http_proxy = http://127.0.0.1:7890
https_proxy = http://127.0.0.1:7890
use_proxy = on
WGET

git config --global http.proxy http://127.0.0.1:7890 2>/dev/null
git config --global https.proxy http://127.0.0.1:7890 2>/dev/null

cat > /etc/profile.d/vpn-proxy.sh << 'PROFILE'
export http_proxy="http://127.0.0.1:7890"
export https_proxy="http://127.0.0.1:7890"
export HTTP_PROXY="http://127.0.0.1:7890"
export HTTPS_PROXY="http://127.0.0.1:7890"
PROFILE

if systemctl is-active --quiet sing-box; then
    echo "✅ VPN активен!"
    echo "🌍 Твой внешний IP:"
    curl -4 -x http://127.0.0.1:7890 -s https://ifconfig.me && echo ""
    echo ""
    echo "💡 Выполните: source /etc/profile.d/vpn-proxy.sh"
else
    echo "❌ Ошибка. Логи: journalctl -u sing-box -n 20"
    exit 1
fi
ON
chmod +x /usr/local/bin/vpn-on

cat > /usr/local/bin/vpn-off << 'OFF'
#!/bin/bash
if [ "$EUID" -ne 0 ]; then
    exec sudo "$0" "$@"
fi

echo "🛑 Выключаем VPN..."
systemctl stop sing-box
sleep 2

rm -f /etc/apt/apt.conf.d/95proxy
rm -f /etc/wgetrc
rm -f /etc/profile.d/vpn-proxy.sh
git config --global --unset http.proxy 2>/dev/null
git config --global --unset https.proxy 2>/dev/null

echo "✅ VPN выключен"
echo "💡 Выполните: unset http_proxy https_proxy"
OFF
chmod +x /usr/local/bin/vpn-off

cat > /usr/local/bin/vpn-status << 'STATUS'
#!/bin/bash
if systemctl is-active --quiet sing-box 2>/dev/null; then
    echo "✅ VPN АКТИВЕН"
    curl -4 -x http://127.0.0.1:7890 -s https://ifconfig.me && echo ""
else
    echo "❌ VPN ВЫКЛЮЧЕН"
fi
STATUS
chmod +x /usr/local/bin/vpn-status

echo ""
echo "🎉 Установка завершена!"
echo "👉 Запустите: sudo vpn-on"
