#!/usr/bin/env bash # ============================================================================== # NOVA RADIUS PRO - Automated Server Update Script (v3.3.4) # ============================================================================== set -e echo "=================================================================" echo "🚀 NOVA RADIUS PRO — جاري بدء تحديث السيرفر إلى الإصدار v3.3.4..." echo "=================================================================" INSTALL_DIR="/opt/freeradius-manager" if [ ! -d "$INSTALL_DIR" ]; then INSTALL_DIR=$(find / -maxdepth 3 -name "server.js" -path "*/web/*" -exec dirname {} \; 2>/dev/null | head -n 1) fi if [ -z "$INSTALL_DIR" ] || [ ! -d "$INSTALL_DIR" ]; then INSTALL_DIR="/var/www/radiusmanager" fi echo "📁 مسار التثبيت: ${INSTALL_DIR}" # 1. Download and unpack package if available PKG_URL="https://nova-radius.aldba.com/api/updates/download/web.zip" echo "⬇️ جاري فحص وتنزيل حزمة التحديث من السحابة: ${PKG_URL}..." if curl -sSL -f -o /tmp/nova-update.pkg "${PKG_URL}" 2>/dev/null; then echo "📦 تم تنزيل الحزمة بنجاح، جاري استخراج وتطبيق الملفات..." mkdir -p /tmp/nova-update-extract rm -rf /tmp/nova-update-extract/* if tar -tzf /tmp/nova-update.pkg >/dev/null 2>&1; then tar -xzf /tmp/nova-update.pkg -C /tmp/nova-update-extract 2>/dev/null || true elif unzip -t /tmp/nova-update.pkg >/dev/null 2>&1; then unzip -o /tmp/nova-update.pkg -d /tmp/nova-update-extract 2>/dev/null || true fi # If extract created a "web" directory or direct files if [ -d "/tmp/nova-update-extract/web" ]; then cp -rf /tmp/nova-update-extract/web/* "${INSTALL_DIR}/" 2>/dev/null || true else cp -rf /tmp/nova-update-extract/* "${INSTALL_DIR}/" 2>/dev/null || true fi rm -rf /tmp/nova-update-extract /tmp/nova-update.pkg echo "✅ تم استخراج وتطبيق ملفات التحديث بنجاح." fi # 2. Write new version stamp to version.json and package.json echo "🏷️ تحديث رقم الإصدار الحالي للسيرفر إلى: v3.3.4..." echo "{"version":"3.3.4","updated_at":"$(date -u +'%Y-%m-%dT%H:%M:%SZ')"}" > "${INSTALL_DIR}/version.json" 2>/dev/null || true if [ -f "${INSTALL_DIR}/package.json" ]; then sed -i 's/"version": "[^"]*"/"version": "3.3.4"/g' "${INSTALL_DIR}/package.json" 2>/dev/null || true fi # 3. Update registerNetwork.js to use new NOVA central API find / -name "registerNetwork.js" -exec sed -i 's|https://dma.aldba.com/api|https://nova-radius.aldba.com/api|g' {} + 2>/dev/null || true chown -R root:root "${INSTALL_DIR}" 2>/dev/null || true # 4. Restart service echo "🔄 جاري إعادة تشغيل خدمة الويب والنظام..." systemctl restart radius-web 2>/dev/null || systemctl restart radiusmanager 2>/dev/null || pkill -f node || true echo "=================================================================" echo "🎉 تم تحديث سيرفر NOVA RADIUS PRO بنجاح إلى الإصدار (v3.3.4)!" echo "🌐 افتح لوحة التحكم المحلية: http://192.168.88.88" echo "================================================================="