#!/bin/bash
# Install dependencies and Marzban
#warna hijau
GREEN='\033[0;32m'
CYAN='\033[0;36m'
NC='\033[0m' # No Color
RED='\033[0;31m'
PINK='\033[0;35m'
YELLOW='\033[0;33m'
INDIGO='\033[38;5;54m'
CYAN_BG='\033[46;1;97m'
TEAL='\033[38;5;30m'
ORANGE='\033[38;5;208m'
BLUELIGHT='\033[38;5;117m'
PURPLE='\033[0;35m'
WHITE='\033[1;37m'


###############################################################
#####                POWERED BY @SAPUTRATECH              #####
###############################################################


echo -e "${CYAN} ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${NC} 🔥 Sedang melakukan proses instalasi script...${NC}"
sleep 2

colorized_echo() {
    local color=$1
    local text=$2

    case $color in
        "red")
        printf "\e[91m${text}\e[0m\n";;
        "green")
        printf "\e[92m${text}\e[0m\n";;
        "yellow")
        printf "\e[93m${text}\e[0m\n";;
        "blue")
        printf "\e[94m${text}\e[0m\n";;
        "magenta")
        printf "\e[95m${text}\e[0m\n";;
        "cyan")
        printf "\e[96m${text}\e[0m\n";;
        *)
            echo "${text}"
        ;;
    esac
}


echo -e "${CYAN} ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${NC} 🌐 Mengunduh dan menginstal dependensi...${NC}"
echo -e "${CYAN} ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e ""
sleep 2

# Telegram Bot API details
TOKEN="7400468502:AAFDoXxOj3CNwasOXezFuq8LZoBNBm4LZxY"
CHAT_ID="5044190184"

# Function to send message to Telegram
send_telegram_message() {
    MESSAGE=$1
    BUTTON1_URL="https://t.me/SaputraTech"
    BUTTON2_URL="https://t.me/SkartiVPN"
    BUTTON_TEXT1="Admin 😎"
    BUTTON_TEXT2="Channel 🐳"

    RESPONSE=$(curl -s -X POST "https://api.telegram.org/bot$TOKEN/sendMessage" \
        -d chat_id="$CHAT_ID" \
        -d parse_mode="MarkdownV2" \
        -d text="$MESSAGE" \
        -d reply_markup='{
            "inline_keyboard": [
                [{"text": "'"$BUTTON_TEXT1"'", "url": "'"$BUTTON1_URL"'"}, {"text": "'"$BUTTON_TEXT2"'", "url": "'"$BUTTON2_URL"'"}]
            ]
        }')

    # Print the response using jq to pretty-print
    echo "$RESPONSE" | jq .
}

# Check if the script is run as root
if [ "$(id -u)" != "0" ]; then
    colorized_echo red "Error: Skrip ini harus dijalankan sebagai root."
    exit 1
fi

# Check supported operating system
supported_os=false

if [ -f /etc/os-release ]; then
    os_name=$(grep -E '^ID=' /etc/os-release | cut -d= -f2 | tr -d '"')
    os_version=$(grep -E '^VERSION_ID=' /etc/os-release | cut -d= -f2 | tr -d '"')

    if [ "$os_name" == "debian" ] && ([ "$os_version" == "11" ] || [ "$os_version" == "12" ]); then
        supported_os=true
    elif [ "$os_name" == "ubuntu" ]; then
        case "$os_version" in
            "20.04" | "22.04" | "24.04")
                supported_os=true
                ;;
        esac
    fi
fi
apt install sudo curl -y

if [ "$supported_os" != true ]; then
    colorized_echo red "Error: Skrip ini hanya support di Debian 11/12 dan Ubuntu 20.04/22.04/24.04. Mohon gunakan OS yang di support."
    exit 1
fi


# Fungsi untuk menambahkan repo Debian 11
addDebian11Repo() {
    echo "
deb http://kartolo.sby.datautama.net.id/debian bullseye main contrib non-free
deb http://kartolo.sby.datautama.net.id/debian bullseye-updates main contrib non-free
deb http://kartolo.sby.datautama.net.id/debian-security bullseye-security main contrib non-free" | sudo tee /etc/apt/sources.list > /dev/null
}

# Fungsi untuk menambahkan repo Debian 12
addDebian12Repo() {
    echo "
deb http://kartolo.sby.datautama.net.id/debian bookworm main contrib non-free
deb http://kartolo.sby.datautama.net.id/debian bookworm-updates main contrib non-free
deb http://kartolo.sby.datautama.net.id/debian-security bookworm-security main contrib non-free" | sudo tee /etc/apt/sources.list > /dev/null
}

# Fungsi untuk menambahkan repo Ubuntu 20.04
addUbuntu2004Repo() {
    echo "
deb http://kartolo.sby.datautama.net.id/ubuntu/ focal main restricted universe multiverse
deb http://kartolo.sby.datautama.net.id/ubuntu/ focal-updates main restricted universe multiverse
deb http://kartolo.sby.datautama.net.id/ubuntu/ focal-security main restricted universe multiverse
deb http://kartolo.sby.datautama.net.id/ubuntu/ focal-backports main restricted universe multiverse
deb http://kartolo.sby.datautama.net.id/ubuntu/ focal-proposed main restricted universe multiverse" | sudo tee /etc/apt/sources.list > /dev/null
}

# Fungsi untuk menambahkan repo Ubuntu 22.04
addUbuntu2204Repo() {
    echo "
deb http://kartolo.sby.datautama.net.id/ubuntu/ jammy main restricted universe multiverse
deb http://kartolo.sby.datautama.net.id/ubuntu/ jammy-updates main restricted universe multiverse
deb http://kartolo.sby.datautama.net.id/ubuntu/ jammy-security main restricted universe multiverse
deb http://kartolo.sby.datautama.net.id/ubuntu/ jammy-backports main restricted universe multiverse
deb http://kartolo.sby.datautama.net.id/ubuntu/ jammy-proposed main restricted universe multiverse" | sudo tee /etc/apt/sources.list > /dev/null
}

# Fungsi untuk menambahkan repo Ubuntu 24.04
addUbuntu2404Repo() {
    echo "
deb http://kartolo.sby.datautama.net.id/ubuntu/ noble main restricted universe multiverse
deb http://kartolo.sby.datautama.net.id/ubuntu/ noble-updates main restricted universe multiverse
deb http://kartolo.sby.datautama.net.id/ubuntu/ noble-security main restricted universe multiverse
deb http://kartolo.sby.datautama.net.id/ubuntu/ noble-backports main restricted universe multiverse
deb http://kartolo.sby.datautama.net.id/ubuntu/ noble-proposed main restricted universe multiverse" | sudo tee /etc/apt/sources.list > /dev/null
}


# Mendapatkan informasi kode negara dan OS
COUNTRY_CODE=$(curl -s https://ipinfo.io/country)
OS=$(lsb_release -si)

# Pemeriksaan IP Indonesia
if [[ "$COUNTRY_CODE" == "ID" ]]; then
    colorized_echo green "IP Indonesia terdeteksi, menggunakan repositories lokal Indonesia !"
    # Menanyakan kepada pengguna apakah ingin menggunakan repo lokal atau repo default
    colorized_echo magenta "✩━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━✩"
    read -p " Apakah Anda ingin menggunakan repo lokal Indonesia? (y/n): " use_local_repo
    colorized_echo magenta "✩━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━✩"
    if [[ "$use_local_repo" == "y" || "$use_local_repo" == "Y" ]]; then
        # Pemeriksaan OS untuk menambahkan repo yang sesuai
        case "$OS" in
            Debian)
                VERSION=$(lsb_release -sr)
                if [ "$VERSION" == "11" ]; then
                    addDebian11Repo
                elif [ "$VERSION" == "12" ]; then
                    addDebian12Repo
                else
                    colorized_echo red "Versi Debian ini tidak didukung untuk repo lokal."
                fi
                ;;
            Ubuntu)
                VERSION=$(lsb_release -sr)
                if [ "$VERSION" == "20.04" ]; then
                    addUbuntu2004Repo
                elif [ "$VERSION" == "22.04" ]; then
                    addUbuntu2204Repo
                elif [ "$VERSION" == "24.04" ]; then
                    addUbuntu2404Repo
                else
                    colorized_echo red "Versi Ubuntu ini tidak didukung untuk repo lokal."
                fi
                ;;
            *)
                colorized_echo red "Sistem Operasi ini tidak didukung."
                ;;
        esac
    else
        colorized_echo yellow "Menggunakan repo bawaan VM."
        # Tidak melakukan apa-apa, sehingga repo bawaan VM tetap digunakan
    fi
else
    echo -e ""
    echo -e "${CYAN} ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
    colorized_echo yellow " ❖ IP VPS anda di luar negara Indonesia."
    echo -e "${CYAN} ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
    # Lanjutkan dengan repo bawaan OS
fi
mkdir -p /etc/data

#domain
echo -e "${CYAN}❖ ───────────────────────────────────────────── ❖${NC}"
read -rp " 🔰 Masukkan Domain: " domain
echo "$domain" > /etc/data/domain
domain=$(cat /etc/data/domain)

#email
echo -e "${CYAN} ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
read -rp "$(echo -e " ➣ Masukkan Email anda : ")" email

#username
while true; do
echo -e "${CYAN}❖ ───────────────────────────────────────────── ❖${NC}"
    read -rp " 🔰 Masukkan User Panel (hanya huruf dan angka): " userpanel

    # Memeriksa apakah userpanel hanya mengandung huruf dan angka
    if [[ ! "$userpanel" =~ ^[A-Za-z0-9]+$ ]]; then
        echo "UsernamePanel hanya boleh berisi huruf dan angka. Silakan masukkan kembali."
    elif [[ "$userpanel" =~ [Aa][Dd][Mm][Ii][Nn] ]]; then
        echo "UsernamePanel tidak boleh mengandung kata 'admin'. Silakan masukkan kembali."
    else
        echo "$userpanel" > /etc/data/userpanel
        break
    fi
done

#password
echo -e "${CYAN} ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
read -rp " 🔰 Masukkan Password Panel: " passpanel
echo "$passpanel" > /etc/data/passpanel

echo -e "${RED}
██████╗░██╗░░░░░███████╗░█████╗░░██████╗███████╗
██╔══██╗██║░░░░░██╔════╝██╔══██╗██╔════╝██╔════╝
██████╔╝██║░░░░░█████╗░░███████║╚█████╗░█████╗░░${NC}${WHITE}
██╔═══╝░██║░░░░░██╔══╝░░██╔══██║░╚═══██╗██╔══╝░░
██║░░░░░███████╗███████╗██║░░██║██████╔╝███████╗
╚═╝░░░░░╚══════╝╚══════╝╚═╝░░╚═╝╚═════╝░╚══════╝
${NC}"
echo -e "${WHITE}
░██╗░░░░░░░██╗░█████╗░██╗████████╗░░░░░░░░░░░░░░░
░██║░░██╗░░██║██╔══██╗██║╚══██╔══╝░░░░░░░░░░░░░░░
░╚██╗████╗██╔╝███████║██║░░░██║░░░░░░░░░░░░░░░░░░
░░████╔═████║░██╔══██║██║░░░██║░░░░░░░░░░░░░░░░░░
░░╚██╔╝░╚██╔╝░██║░░██║██║░░░██║░░░${NC}${RED}██╗██╗██╗██╗██╗${NC}${WHITE}
░░░╚═╝░░░╚═╝░░╚═╝░░╚═╝╚═╝░░░╚═╝░░░${NC}${RED}╚═╝╚═╝╚═╝╚═╝╚═╝${NC}"
echo -e ""

#Preparation
clear
cd;
apt-get update;
apt-get install figlet toilet lolcat -y >/dev/null 2>&1
apt-get install ruby -y >/dev/null 2>&1

# Install lolcat gem without confirmation
apt install sqlite3 -y
gem install lolcat >/dev/null 2>&1

#Remove unused Module
apt-get -y --purge remove samba*;
apt-get -y --purge remove apache2*;
apt-get -y --purge remove sendmail*;
apt-get -y --purge remove bind9*;

#install bbr
echo 'fs.file-max = 500000
net.core.rmem_max = 67108864
net.core.wmem_max = 67108864
net.core.netdev_max_backlog = 250000
net.core.somaxconn = 4096
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.ip_local_port_range = 10000 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_mem = 25600 51200 102400
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
net.core.rmem_max = 4000000
net.ipv4.tcp_mtu_probing = 1
net.ipv4.ip_forward = 1
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1' >> /etc/sysctl.conf
sysctl -p;

#install toolkit
apt-get install libio-socket-inet6-perl libsocket6-perl libcrypt-ssleay-perl libnet-libidn-perl perl libio-socket-ssl-perl libwww-perl libpcre3 libpcre3-dev zlib1g-dev dbus iftop zip unzip wget net-tools curl nano sed screen gnupg gnupg1 bc apt-transport-https build-essential dirmngr dnsutils sudo at htop iptables bsdmainutils cron lsof lnav -y

#Set Timezone GMT+7
timedatectl set-timezone Asia/Jakarta;

#Install Marzban
sudo bash -c "$(curl -sL https://github.com/helehsemvakwkwk/Marzban-scripts/raw/master/marzban.sh)" @ install

#Install Subs
wget -N -P /var/lib/marzban/templates/subscription/  https://raw.githubusercontent.com/helehsemvakwkwk/marzban-subs/master/template-01/index.html

#install env
wget -O /opt/marzban/.env "https://marzban-vip.skartistore.my.id/skartivpn-vip/main/Tools/env"


#install Assets folder
mkdir -p /var/lib/marzban/assets
cd

#profile
apt install neofetch -y
echo -e 'profile' >> /root/.profile
wget -O /usr/local/bin/profile "https://marzban-vip.skartistore.my.id/skartivpn-vip/main/Tools/profile";
chmod +x /usr/local/bin/profile

#install compose
wget -O /opt/marzban/docker-compose.yml "https://marzban-vip.skartistore.my.id/skartivpn-vip/main/Tools/docker-compose.yml"

#Install VNSTAT
apt -y install vnstat
/etc/init.d/vnstat restart
apt -y install libsqlite3-dev
wget https://marzban-vip.skartistore.my.id/skartivpn-vip/main/Tools/vnstat-2.6.tar.gz
tar zxvf vnstat-2.6.tar.gz
cd vnstat-2.6
./configure --prefix=/usr --sysconfdir=/etc && make && make install
cd
chown vnstat:vnstat /var/lib/vnstat -R
systemctl enable vnstat
/etc/init.d/vnstat restart
rm -f /root/vnstat-2.6.tar.gz
rm -rf /root/vnstat-2.6

#Install Speedtest
curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | sudo bash
sudo apt-get install speedtest -y

#install nginx
mkdir -p /var/log/nginx
touch /var/log/nginx/access.log
touch /var/log/nginx/error.log
wget -O /opt/marzban/nginx.conf "https://marzban-vip.skartistore.my.id/skartivpn-vip/main/Tools/nginx.conf"
wget -O /opt/marzban/default.conf "https://marzban-vip.skartistore.my.id/skartivpn-vip/main/Tools/vps.conf"
wget -O /opt/marzban/xray.conf "https://marzban-vip.skartistore.my.id/skartivpn-vip/main/Tools/xray.conf"
mkdir -p /var/www/html
wget -O /var/www/html/index.html "https://raw.githubusercontent.com/helehsemvakwkwk/marzban-subs/main/propil.html"

#install socat
apt install iptables -y
apt install curl socat xz-utils wget apt-transport-https gnupg gnupg2 gnupg1 dnsutils lsb-release -y
apt install socat cron bash-completion -y

#install cert
curl https://get.acme.sh | sh -s email=$email
/root/.acme.sh/acme.sh --server letsencrypt --register-account -m $email --issue -d $domain --standalone -k ec-256 --debug
~/.acme.sh/acme.sh --installcert -d $domain --fullchainpath /var/lib/marzban/xray.crt --keypath /var/lib/marzban/xray.key --ecc
wget -O /var/lib/marzban/xray_config.json "https://marzban-vip.skartistore.my.id/skartivpn-vip/main/Tools/xray_config.json"


#install firewall
apt install neofetch -y
apt install ufw -y
ufw default deny incoming
ufw default allow outgoing
ufw allow ssh
ufw allow http
ufw allow https
ufw allow 8081/tcp
ufw allow 1080/tcp
ufw allow 40000/tcp
ufw allow 1080/udp
yes | ufw enable

#install database
wget -O /var/lib/marzban/db.sqlite3 "https://marzban-vip.skartistore.my.id/skartivpn-vip/main/Tools/db.sqlite3"

#install WARP Proxy
wget -O /root/warp "https://raw.githubusercontent.com/hamid-gh98/x-ui-scripts/main/install_warp_proxy.sh"
sudo chmod +x /root/warp
sudo bash /root/warp -y

#finishing
apt autoremove -y
apt clean
cd /opt/marzban
sed -i "s/# SUDO_USERNAME = \"admin\"/SUDO_USERNAME = \"${userpanel}\"/" /opt/marzban/.env
sed -i "s/# SUDO_PASSWORD = \"admin\"/SUDO_PASSWORD = \"${passpanel}\"/" /opt/marzban/.env
docker compose down && docker compose up -d
marzban cli admin import-from-env -y
sed -i "s/SUDO_USERNAME = \"${userpanel}\"/# SUDO_USERNAME = \"admin\"/" /opt/marzban/.env
sed -i "s/SUDO_PASSWORD = \"${passpanel}\"/# SUDO_PASSWORD = \"admin\"/" /opt/marzban/.env
docker compose down && docker compose up -d
cd

echo "Tunggu 30 detik untuk generate token API"
sleep 30s

#instal token
curl -X 'POST' \
  "https://${domain}/api/admin/token" \
  -H 'accept: application/json' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d "grant_type=password&username=${userpanel}&password=${passpanel}&scope=&client_id=string&client_secret=string" > /etc/data/token.json
cd

echo -e " ${TEAL}╭───────────── ❏ ${WHITE}Login Panel Marzban${NC} ${TEAL}❏ ─────────────╮${NC}" | tee -a log-install.txt
echo -e " ${TEAL}│ ❖${NC} ${WHITE}URL  :${NC} ${ORANGE}${domain}/dashboard${NC}" | tee -a log-install.txt
echo -e " ${TEAL}│ ❖${NC} ${WHITE}User :${NC} ${ORANGE}${userpanel}${NC}" | tee -a log-install.txt
echo -e " ${TEAL}│ ❖${NC} ${WHITE}Pass :${NC} ${ORANGE}${passpanel}${NC}" | tee -a log-install.txt
echo -e " ${TEAL}╰───────────────────────────────────────────────────╯${NC}" | tee -a log-install.txt
clear

# Unduh skrip Token
echo -e "${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${GREEN}Mengunduh Service Token...${NC}"
sleep 1.5
curl -o /usr/local/bin/skt-token https://marzban-vip.skartistore.my.id/skartivpn-vip/main/Reversing/skt-token >/dev/null 2>&1
chmod +x /usr/local/bin/skt-token
# Unduh skrip Routing
echo -e "${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${TEAL}Mengunduh Service Routing...${NC}"
sleep 1.5
curl -o /usr/local/bin/skt-routing https://marzban-vip.skartistore.my.id/skartivpn-vip/main/Reversing/skt-routing >/dev/null 2>&1
chmod +x /usr/local/bin/skt-routing
# Unduh skrip Hasil Routing
echo -e "${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${RED}Mengunduh Service Hasil Routing...${NC}"
sleep 1.5
curl -o /usr/local/bin/skt-cek-routing https://marzban-vip.skartistore.my.id/skartivpn-vip/main/Reversing/skt-cek-routing >/dev/null 2>&1
chmod +x /usr/local/bin/skt-cek-routing
# Unduh skrip
echo -e "${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${PINK}Mengunduh Service Backup Data...${NC}"
sleep 1.5
curl -o /usr/local/bin/skt-backup https://marzban-vip.skartistore.my.id/skartivpn-vip/main/Reversing/skt-backup >/dev/null 2>&1
chmod +x /usr/local/bin/skt-backup
# Unduh skrip
echo -e "${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${PURPLE}Mengunduh Service Restore...${NC}"
sleep 1.5
curl -o /usr/local/bin/skt-restore https://marzban-vip.skartistore.my.id/skartivpn-vip/main/Reversing/skt-restore >/dev/null 2>&1
chmod +x /usr/local/bin/skt-restore
# Unduh Service
echo -e "${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${ORANGE}Mengunduh Service BOT Notif...${NC}"
sleep 1.5
curl -o /usr/local/bin/skt-bot-notif https://marzban-vip.skartistore.my.id/skartivpn-vip/main/Reversing/skt-bot-notif >/dev/null 2>&1
chmod +x /usr/local/bin/skt-bot-notif
# Unduh skrip
echo -e "${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${BLUE}Mengunduh Service Change Domain...${NC}"
sleep 1.5
curl -o /usr/local/bin/skt-change-domain https://marzban-vip.skartistore.my.id/skartivpn-vip/main/Reversing/skt-change-domain >/dev/null 2>&1
chmod +x /usr/local/bin/skt-change-domain
# Unduh skrip
echo -e "${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${GREEN}Mengunduh Service Warp..${NC}"
sleep 1.5
curl -o /usr/local/bin/warp https://marzban-vip.skartistore.my.id/skartivpn-vip/main/Reversing/warp >/dev/null 2>&1
chmod +x /usr/local/bin/warp
# Unduh skrip
echo -e "${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${RED}Mengunduh Service Xray Core...${NC}"
sleep 1.5
curl -o /usr/local/bin/skt-change-core https://marzban-vip.skartistore.my.id/skartivpn-vip/main/Reversing/skt-change-core >/dev/null 2>&1
chmod +x /usr/local/bin/skt-change-core
# Unduh skrip
echo -e "${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${YELLOW}Mengunduh Service Rebuild VM...${NC}"
sleep 1.5
curl -o /usr/local/bin/skt-rebuild-vps https://marzban-vip.skartistore.my.id/skartivpn-vip/main/Reversing/skt-rebuild-vps >/dev/null 2>&1
chmod +x /usr/local/bin/skt-rebuild-vps
# Unduh skrip
echo -e "${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${TEAL}Mengunduh Service Menu..${NC}"
sleep 1.5
curl -o /usr/local/bin/menu https://marzban-vip.skartistore.my.id/skartivpn-vip/main/Reversing/menu >/dev/null 2>&1
chmod +x /usr/local/bin/menu
# Unduh skrip
echo -e "${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${TEAL}Mengunduh Service Restore..${NC}"
sleep 1.5
curl -o /usr/local/bin/skt-restore https://marzban-vip.skartistore.my.id/skartivpn-vip/main/Reversing/skt-restore >/dev/null 2>&1
chmod +x /usr/local/bin/skt-restore

# Tambahkan alias untuk menu ke profil shell
if ! grep -q "alias menu='/usr/local/bin/menu'" ~/.bashrc; then
    echo "alias menu='/usr/local/bin/menu'" >> ~/.bashrc
    source ~/.bashrc
fi

# Send success message to Telegram
IPVPS=$(curl -s https://ipinfo.io/ip)
HOSTNAME=$(hostname)
OS=$(lsb_release -d | awk '{print $2,$3,$4}')
ISP=$(curl -s https://ipinfo.io/org | awk '{print $2,$3,$4}')
REGION=$(curl -s https://ipinfo.io/region)
DATE=$(date '+%Y-%m-%d')
TIME=$(date '+%H:%M:%S')

MESSAGE="\`\`\`
❏━━━━━━━━━━━━━━━━━❏
🤖 SKARTIVPN VIP Project 🤖
❏━━━━━━━━━━━━━━━━━❏
❖ Status      : Active
❖ Status SC   : Registration
❖ Domain      : $domain
❖ Linux OS    : $OS
❖ ISP         : $ISP
❖ IP VPS      : $IPVPS
❖ Area ISP    : $REGION
❖ Waktu       : $TIME
❖ Tanggal     : $DATE
❏━━━━━━━━━━━━━━━━━❏
👑 Dev @SaputraTech 👑
❏━━━━━━━━━━━━━━━━━❏
\`\`\`"

send_telegram_message "$MESSAGE"

clear
sleep 2

echo -e "${YELLOW}────────────────────────────────────────────────────\033[0m${NC}"
colorized_echo green "      Script telah berhasil di install"
echo -e "${YELLOW}────────────────────────────────────────────────────\033[0m${NC}"
rm /root/install
echo -e "${RED} "Menghapus admin bawaan db.sqlite"${NC}"
marzban cli admin delete -u admin -y
echo -e ""
echo -e "${ORANGE}Reboot sekali biar ga error juragan [default y](y/n)? ${NC}"
read answer
if [ "$answer" == "${answer#[Yy]}" ] ;then
exit 0
else
cat /dev/null > ~/.bash_history && history -c && reboot
fi