#!/bin/bash
# ══════════════════════════════════════════════════════════════════════════════
# NexioCP — Tam Sıfırlama Scripti
# Kullanım: wget https://cdn.nexiocp.com/reset.sh && chmod +x reset.sh && sudo bash reset.sh
# Ne yapar: NexioCP + tüm bağımlı servisleri + domain kalıntılarını siler.
#           Sadece Ubuntu base OS kalır, install.sh ile temiz kurulum yapılabilir.
# ══════════════════════════════════════════════════════════════════════════════
set -uo pipefail

RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'
BLUE='\033[1;36m'; BOLD='\033[1m'; NC='\033[0m'

ok()   { echo -e "${GREEN}[✓]${NC} $*"; }
info() { echo -e "${BLUE}[→]${NC} $*"; }
warn() { echo -e "${YELLOW}[!]${NC} $*"; }
step() { echo -e "\n${BOLD}${BLUE}━━━━  $*  ━━━━${NC}\n"; }

[[ $EUID -ne 0 ]] && { echo -e "${RED}[✗]${NC} Root olarak çalıştırın: sudo bash reset.sh"; exit 1; }

echo -e "${RED}${BOLD}"
echo "  ╔══════════════════════════════════════════════════════════╗"
echo "  ║          NexioCP TAM SIFIRLAMA                          ║"
echo "  ║  Nginx, PHP, MySQL, Mail, FTP ve NexioCP silinecek!     ║"
echo "  ║  Sadece Ubuntu base OS kalacak.                         ║"
echo "  ╚══════════════════════════════════════════════════════════╝"
echo -e "${NC}"
echo -e "${YELLOW}Devam etmek için ENTER, iptal için Ctrl+C${NC}"
read -r

export DEBIAN_FRONTEND=noninteractive

# ══════════════════════════════════════════════════════════════════════════════
step "Servisler Durduruluyor"
# ══════════════════════════════════════════════════════════════════════════════
for svc in nexiocp nginx php8.3-fpm php8.2-fpm php8.1-fpm php8.0-fpm php7.4-fpm php7.3-fpm php7.2-fpm php7.1-fpm php7.0-fpm php5.6-fpm mysql postfix dovecot opendkim vsftpd fail2ban gdm3 cups cups-browsed avahi-daemon ModemManager colord snapd; do
    systemctl stop "$svc" 2>/dev/null && info "Durduruldu: $svc" || true
    systemctl disable "$svc" 2>/dev/null || true
done
ok "Servisler durduruldu"

# ══════════════════════════════════════════════════════════════════════════════
step "Nginx + Certbot Kaldırılıyor"
# ══════════════════════════════════════════════════════════════════════════════
apt-get remove -y --purge nginx nginx-common nginx-full nginx-core nginx-extras certbot python3-certbot-nginx 2>/dev/null || true
rm -rf /etc/nginx /var/log/nginx
ok "Nginx kaldırıldı"

# ══════════════════════════════════════════════════════════════════════════════
step "PHP (Tüm Sürümler) Kaldırılıyor"
# ══════════════════════════════════════════════════════════════════════════════
apt-get remove -y --purge 'php*' 2>/dev/null || true
rm -rf /etc/php /var/log/php* /run/php
ok "PHP kaldırıldı"

# ══════════════════════════════════════════════════════════════════════════════
step "MySQL Kaldırılıyor"
# ══════════════════════════════════════════════════════════════════════════════
apt-get remove -y --purge mysql-server mysql-client mysql-common mysql-server-8.0 mysql-client-8.0 mysql-server-core-8.0 mysql-client-core-8.0 2>/dev/null || true
rm -rf /var/lib/mysql /var/log/mysql /etc/mysql /root/.my.cnf
ok "MySQL kaldırıldı"

# ══════════════════════════════════════════════════════════════════════════════
step "Postfix + Dovecot + OpenDKIM Kaldırılıyor"
# ══════════════════════════════════════════════════════════════════════════════
apt-get remove -y --purge postfix postfix-mysql dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd dovecot-mysql dovecot-managesieved opendkim opendkim-tools 2>/dev/null || true
rm -rf /etc/postfix /etc/dovecot /etc/opendkim /etc/opendkim.conf /var/mail/vhosts /var/spool/postfix
ok "Mail servisleri kaldırıldı"

# ══════════════════════════════════════════════════════════════════════════════
step "vsftpd Kaldırılıyor"
# ══════════════════════════════════════════════════════════════════════════════
apt-get remove -y --purge vsftpd 2>/dev/null || true
rm -f /etc/vsftpd.conf /etc/vsftpd.userlist
ok "vsftpd kaldırıldı"

# ══════════════════════════════════════════════════════════════════════════════
step "Fail2ban Kaldırılıyor"
# ══════════════════════════════════════════════════════════════════════════════
apt-get remove -y --purge fail2ban 2>/dev/null || true
rm -rf /etc/fail2ban
ok "Fail2ban kaldırıldı"

# ══════════════════════════════════════════════════════════════════════════════
step "Masaüstü / Gereksiz Paketler Kaldırılıyor"
# ══════════════════════════════════════════════════════════════════════════════
apt-get remove -y --purge \
    gdm3 gnome-shell gnome-session ubuntu-desktop ubuntu-desktop-minimal \
    cups cups-browsed cups-common \
    avahi-daemon avahi-utils \
    modemmanager \
    colord \
    power-profiles-daemon \
    rtkit \
    switcheroo-control \
    udisks2 \
    upower \
    wpasupplicant \
    packagekit accountsservice \
    fwupd \
    snapd \
    kerneloops \
    unattended-upgrades \
    2>/dev/null || true
rm -rf /var/lib/snapd /snap
ok "Gereksiz paketler kaldırıldı"

# ══════════════════════════════════════════════════════════════════════════════
step "Composer Kaldırılıyor"
# ══════════════════════════════════════════════════════════════════════════════
rm -f /usr/local/bin/composer
ok "Composer kaldırıldı"

# ══════════════════════════════════════════════════════════════════════════════
step "NexioCP Dosyaları Siliniyor"
# ══════════════════════════════════════════════════════════════════════════════
rm -rf /opt/nexiocp
rm -rf /var/lib/nexiocp
rm -rf /var/log/nexiocp
rm -rf /var/backups/nexiocp
rm -rf /etc/nexiocp
rm -f /etc/systemd/system/nexiocp.service
rm -f /etc/logrotate.d/nexiocp
ok "NexioCP dosyaları silindi"

# ══════════════════════════════════════════════════════════════════════════════
step "Web Root Temizleniyor"
# ══════════════════════════════════════════════════════════════════════════════
find /var/www -mindepth 1 -delete 2>/dev/null || true
mkdir -p /var/www/html
ok "Web root temizlendi"

# ══════════════════════════════════════════════════════════════════════════════
step "Domain Linux Kullanıcıları Siliniyor"
# ══════════════════════════════════════════════════════════════════════════════
REMOVED=0
while IFS=: read -r u _; do
    if [[ "$u" == web_* ]]; then
        userdel -r "$u" 2>/dev/null && info "Kullanıcı silindi: $u"
        REMOVED=$((REMOVED+1))
    fi
done < /etc/passwd
[[ $REMOVED -eq 0 ]] && info "Silinecek domain kullanıcısı yok" || ok "$REMOVED kullanıcı silindi"

# ══════════════════════════════════════════════════════════════════════════════
step "UFW Sıfırlanıyor"
# ══════════════════════════════════════════════════════════════════════════════
ufw --force reset 2>/dev/null || true
ok "UFW sıfırlandı"

# ══════════════════════════════════════════════════════════════════════════════
step "apt Temizleniyor"
# ══════════════════════════════════════════════════════════════════════════════
apt-get autoremove -y --purge 2>/dev/null || true
apt-get autoclean -y 2>/dev/null || true
ok "apt temizlendi"

systemctl daemon-reload

# ══════════════════════════════════════════════════════════════════════════════
echo ""
echo -e "${GREEN}${BOLD}"
echo "  ╔══════════════════════════════════════════════════════════╗"
echo "  ║           SIFIRLAMA TAMAMLANDI!                         ║"
echo "  ╚══════════════════════════════════════════════════════════╝"
echo -e "${NC}"

df -h /
free -m

echo ""
echo -e "${BOLD}  Sonraki adım — Temiz kurulum:${NC}"
echo -e "  ${BLUE}wget https://cdn.nexiocp.com/install.sh && chmod +x install.sh && sudo bash install.sh${NC}"
echo ""
