#!/usr/bin/env bash # # VPS Panel - tek satırlık kurulum ve güncelleme # # Kurulum (temiz Ubuntu 22.04 / 24.04 veya Debian 12, root olarak): # curl -fsSL https://get.gld.net.tr/install.sh | bash -s -- --domain panel.ornek.com --email admin@ornek.com --letsencrypt # # Güncelleme (kurulu sunucuda): # curl -fsSL https://get.gld.net.tr/install.sh | bash -s -- update # # Belirli bir sürüm: VPSPANEL_VERSION=0.8.0 curl ... | bash -s -- ... # # Script son sürüm paketini indirir, SHA-256 özetini doğrular, /root altına açar ve # paketin içindeki install.sh veya update.sh'yi verilen parametrelerle çalıştırır. # set -Eeuo pipefail BASE_URL="${VPSPANEL_BASE_URL:-https://get.gld.net.tr}" red() { printf '\033[31m%s\033[0m\n' "$*"; } green() { printf '\033[32m%s\033[0m\n' "$*"; } die() { red "HATA: $*"; exit 1; } [[ ${EUID:-$(id -u)} -eq 0 ]] || die "Root olarak çalıştırın (sudo -i)." MODE="install" if [[ "${1:-}" == "update" ]]; then MODE="update" shift fi for tool in curl tar sha256sum; do if ! command -v "$tool" >/dev/null 2>&1; then apt-get update -q && apt-get install -y -q curl tar coreutils || die "$tool kurulamadı." break fi done VERSION="${VPSPANEL_VERSION:-$(curl -fsSL "$BASE_URL/latest.txt" | tr -d '[:space:]')}" [[ "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] || die "Sürüm bilgisi alınamadı ($BASE_URL/latest.txt)." TMP="$(mktemp -d)" trap 'rm -rf "$TMP"' EXIT PKG="vpspanel-$VERSION.tar.gz" echo "VPS Panel $VERSION indiriliyor..." curl -fSL --progress-bar "$BASE_URL/releases/$PKG" -o "$TMP/$PKG" || die "Paket indirilemedi." curl -fsSL "$BASE_URL/releases/$PKG.sha256" -o "$TMP/$PKG.sha256" || die "Özet dosyası indirilemedi." EXPECTED="$(awk '{print $1}' "$TMP/$PKG.sha256")" ACTUAL="$(sha256sum "$TMP/$PKG" | awk '{print $1}')" [[ -n "$EXPECTED" && "$EXPECTED" == "$ACTUAL" ]] || die "Paket doğrulanamadı (SHA-256 uyuşmuyor). İndirme bozulmuş olabilir; tekrar deneyin." green "Paket doğrulandı." rm -rf "/root/vpspanel-$VERSION" tar -xzf "$TMP/$PKG" -C /root cd "/root/vpspanel-$VERSION" if [[ "$MODE" == "update" ]]; then exec ./update.sh "$@" fi exec ./install.sh "$@"