Skip to content

Latest commit

 

History

History
249 lines (184 loc) · 18.7 KB

File metadata and controls

249 lines (184 loc) · 18.7 KB

🚀 پنل SulgX (نسخه ۱.۱.۰)

Release Python License Platform

راهنما: English | فارسی

SulgX Panel Screenshot

SulgX Panel Screenshot SulgX Panel Screenshot

پنل مدیریت اشتراک سبک و خودمیزبان برای VLESS روی WebSocket + TLS.
تماماً در یک فایل پایتون نوشته شده و با FastAPI و SQLite کار می‌کند.


📖 فهرست مطالب


✨ ویژگی‌های اصلی

🔐 امنیت و دسترسی

  • احراز هویت قوی: استفاده از JWT برای نشست‌ها با کوکی‌های امن و HTTP‑only.
  • ضد حملات بیروت‌فورس: Rate limiting روی ورود و تعامل با API.
  • گذرواژه‌های اجباری: سیاست سخت‌گیرانه (حداقل ۸ کاراکتر، حروف بزرگ و کوچک و عدد).
  • گزارش‌گیری ممیزی: ثبت همه تلاش‌های ورود (موفق/ناموفق، IP، User‑Agent).

📡 مدیریت اینباند

  • چرخه کامل عمر: ایجاد، ویرایش، فعال/غیرفعال و حذف امن کانفیگ‌های VLESS.
  • کنترل دقیق: محدودیت ترافیک هر کاربر (گیگابایت)، روزهای انقضا و حداکثر اتصالات همزمان.
  • مسیریابی پیشرفته: Path، SNI، Host و Fingerprint TLS سفارشی برای هر اینباند.
  • پشتیبانی از Fragment: اضافه کردن بازه‌های تکه‌تکه‌سازی بسته‌ها (مثلاً 1000-2000) برای دور زدن DPI.
  • پرچم کشور: اختصاص پرچم (🇮🇷، 🇩🇪 و …) به هر کانفیگ – در پنل و لینک‌های اشتراک نمایش داده می‌شود.
  • عملیات دسته‌ای: فعال/غیرفعال کردن، بازنشانی مصرف یا حذف گروهی کانفیگ‌ها.
  • هسته غیرقابل حذف: اینباند پیش‌فرض SulgX به‌طور سیستماتیک در برابر حذف تصادفی محافظت می‌شود.

📊 آنالیز لحظه‌ای

  • موتور سرعت زنده: نمودارهای دقیق Download/Upload با فیلتر تطبیقی برای کاهش نویز.
  • متریک‌های پویا: میله‌های ۲۴ ساعته ترافیک (مبتنی بر منطقه زمانی) و نمودارهای دایره‌ای توزیع مصرف.
  • سلامت سیستم: نمایش زنده CPU، Memory و Disk با fallback به loadavg.

🗺️ IP تمیز و اسکنر ایمن

  • مدیریت IP: افزودن، ویرایش و وارد کردن گروهی IPv4/IPv6 که به‌طور پویا به اشتراک‌ها الصاق می‌شوند.
  • اسکنر ایمن: اسکن پورت ۴۴۳ روی ۲۴ ارائه‌دهنده ابری از پیش‌تعریف‌شده (Cloudflare، AWS، Azure و …).
  • ضد کرش: رنج‌های CIDR بزرگ (مثلاً /14) را با سقف ۴۰۹۶ IP مدیریت می‌کند و از فریز مرورگر جلوگیری می‌کند. DNSهای عمومی (مثل 8.8.8.8) به‌طور خودکار حذف می‌شوند.

🤖 ربات هوشمند تلگرام

  • دو زبانه (انگلیسی/فارسی): قالب‌های کاملاً قابل ترجمه.
  • هشدار رویدادها: ورود به پنل، کاربران منقضی‌شده، خطاها و اخطار مصرف ۹۰٪.
  • پیش‌نمایش زنده: نمایش لحظه‌ای قالب JSON در داشبورد.

⚡ Keep‑Alive هوشمند (ضد خواب)

  • دو حالته: Simple (برای Render/Railway) و Advanced (برای Dockfly).
  • قابل تنظیم: تنظیم بازه، فعال/غیرفعال و انتخاب حالت مستقیماً از تنظیمات پنل.
  • خودترمیمی: به‌طور خودکار هدرها و فواصل درخواست را برای جلوگیری از بلاک شدن تنظیم می‌کند.

🆕 تغییرات نسخه ۱.۱.۰

دسته بهبود
UI & UX بازبینی اساسی رابط کاربری شیشه‌ای. باگ انتخاب تم آبی برطرف شد و تنظیمات تم اکنون ماندگار هستند. نمای موبایل برای همه جدول‌ها و کنترل‌ها بهبود یافت.
کارایی کش لینک‌ها به‌طور دوره‌ای پاکسازی می‌شود تا از نشت حافظه جلوگیری کند. تسک‌های اسکنر با قطع WebSocket به درستی لغو می‌شوند.
ضد خواب موتور Keep‑Alive کاملاً بازطراحی شد. اکنون دو حالت Simple و Advanced دارد که می‌توان آن‌ها را به‌صورت زنده از پنل تغییر داد.
اینباندها افزودن پشتیبانی از Fragment (FRAG) برای بهبود دور زدن DPI. پرچم‌های کشور قابل اختصاص به هر اینباند هستند و در همه جا (پنل، لینک اشتراک، داشبورد کاربر) نمایش داده می‌شوند.
داشبورد کاربر نوار پیشرفت مصرف با رنگ‌های هشداردهنده (سبز → زرد → قرمز) اضافه شد تا کاربر نهایی میزان مصرف خود را فوراً ببیند.
تلگرام باگ تغییر زبان (انگلیسی/فارسی) برطرف شد و زبان انتخابی به درستی ذخیره و بازیابی می‌شود.
پایگاه داده مهاجرت خودکار اسکیما – نصب‌های قدیمی با ارتقا به این نسخه به‌طور خودکار ستون‌های flag و fragment را دریافت می‌کنند.
رفع باگ‌ها کارت‌های وضعیت تنظیمات اکنون با پیکربندی واقعی همگام هستند. انتخاب‌گرهای منطقه زمانی و زبان کاملاً هماهنگ شده‌اند.

برای فهرست کامل commitها، انتشار ۱.۱.۰ را ببینید.


🚀 راه‌اندازی سریع و دیپلوی

Note

پروژه اکنون به‌طور بومی از طریق Dockerfile اجرا می‌شود. کافی است مخزن را فورک کنید، متغیرهای محیطی را تنظیم کنید و پلتفرم آن را برایتان بسازد.
برای پلتفرم‌های پیشنهادی نیازی به دستورهای دستی شروع یا پیکربندی Gunicorn نیست.

🍴 گام ۱: فورک و پیکربندی

  1. این مخزن را در حساب گیت‌هاب خود فورک کنید.
  2. (اختیاری) برای پایداری بیشتر، می‌توانید دیپلوی‌های خود را به تگ انتشار v1.1.0 محدود کنید.

☁️ گام ۲: انتخاب پلتفرم

هر پنج پلتفرم زیر از WebSocket پشتیبانی می‌کنند، می‌توانند مستقیماً از Dockerfile دیپلوی شوند و نیاز به کارت اعتباری یا شماره تلفن ندارند – فقط ایمیل یا حساب گیت‌هاب.

  • Railway ← توصیه اصلی (اعتبار رایگان، Volumeهای ماندگار)
  • Render ← طرح رایگان با دیسک ماندگار
  • Dockfly ← ساده و کمینه
  • Back4app ← مبتنی بر Parse، طرح رایگان سخاوتمندانه
  • Scalingo ← PaaS فرانسوی، ۳۰ روز آزمایشی رایگان

پلتفرم‌های دیگری مانند Koyeb، Fly.io، Northflank یا Zeabur نیز کاملاً با SulgX کار می‌کنند، اما برای ثبت‌نام نیاز به کارت اعتباری یا شماره تلفن دارند.

🚀 گام ۳: دیپلوی با Dockerfile

  1. مخزن فورک‌شده خود را در پلتفرم انتخابی متصل کنید.
  2. پلتفرم به‌طور خودکار Dockerfile موجود را تشخیص می‌دهد و برنامه را می‌سازد.
  3. متغیرهای محیطی – متغیرهای زیر را در داشبورد پلتفرم اضافه کنید:
متغیر مثال توضیح
ADMIN_PASSWORD StrongPass!123 رمز ورود به پنل (حداقل ۸ کاراکتر، دارای حروف بزرگ و کوچک و عدد).
SECRET_KEY random_long_string کلید مخفی برای امضای کوکی‌های JWT.
DOMAIN sulgx.up.railway.app دامنه عمومی شما. برای تولید صحیح لینک‌ها به‌شدت توصیه می‌شود.
DB_PATH /data/panel.db مسیر فایل پایگاه داده SQLite. مهم: اگر پلتفرم شما Volume ماندگار پشتیبانی می‌کند (به جدول پلتفرم‌ها نگاه کنید)، یک Volume در مسیر /data متصل کنید تا داده‌هایتان امن بمانند.
PORT 8000 (اختیاری) پورتی که برنامه روی آن گوش می‌دهد. اکثر پلتفرم‌ها این را نادیده می‌گیرند و از پورت خود استفاده می‌کنند.
  1. ماندگاری داده‌ها
    پلتفرم‌هایی که Volume ماندگار پشتیبانی می‌کنند، به شما اجازه می‌دهند پایگاه داده را بین راه‌اندازی‌های مجدد حفظ کنید. برای پلتفرم‌هایی که فاقد این قابلیت هستند (یا اگر امنیت بیشتری می‌خواهید)، یک پایگاه داده خارجی PostgreSQL با تنظیم متغیر محیطی DATABASE_URL متصل کنید.

  2. دسترسی به پنل
    پس از دیپلوی، آدرس عمومی برنامه خود را باز کرده و به /panel بروید. با رمز تعیین‌شده در ADMIN_PASSWORD وارد شوید.

📌 نکات خاص هر پلتفرم

🔹 Railway
  • Volume ماندگار: بله. یک Volume در مسیر /data متصل کنید.
  • حالت Keep‑Alive: Simple بهترین عملکرد را دارد.
🔹 Render
  • دیسک ماندگار: بله. یک دیسک در مسیر /data متصل کنید.
  • حالت Keep‑Alive: Simple. (Render بعد از ۱۵ دقیقه می‌خوابد، اما Keep‑Alive آن را بیدار خواهد کرد.)
🔹 Dockfly
  • Volume ماندگار: بله، ولی باید آن را در تنظیمات سرویس با مسیر /data پیکربندی کنید.
  • حالت Keep‑Alive: Advanced برای جلوگیری از خواب کانتینر اکیداً توصیه می‌شود.
🔹 Back4app
  • Volume ماندگار: خیر. توصیه می‌شود DB_PATH را /tmp/panel.db بگذارید و از یک PostgreSQL خارجی (DATABASE_URL) برای داده‌های تولیدی استفاده کنید.
  • Keep‑Alive: طرح رایگان بیدار می‌ماند. حالت Simple کافی است.
🔹 Scalingo
  • ذخیره‌سازی ماندگار: خیر در دوره آزمایشی. اگر به ذخیره‌سازی دائمی نیاز دارید، از DATABASE_URL خارجی استفاده کنید.
  • دوره ۳۰ روزه آزمایشی فقط با ایمیل فعال می‌شود. پس از آن سرویس پولی می‌شود.
  • حالت Keep‑Alive: Simple.

☁️ پلتفرم‌های پشتیبانی‌شده

پلتفرم طرح رایگان WebSocket خوابیدن Volume ماندگار نیاز به کارت نیاز به شماره
Railway ۵ دلار اعتبار/ماه خیر (با Keep‑Alive) ✅ (1 GB) خیر خیر
Render ۷۵۰ ساعت/ماه بله (۱۵ دقیقه) ✅ (1 GB) خیر خیر
Dockfly ۱ پروژه (۲۵۶ MB) خیر خیر خیر
Back4app ۰.۲۵ CPU, ۲۵۶ MB خیر خیر خیر خیر
Scalingo ۳۰ روز آزمایشی خیر خیر خیر خیر

Note

محدودیت‌های طرح رایگان و قیمت‌ها ممکن است تغییر کنند. همواره وب‌سایت رسمی ارائه‌دهنده را برای اطلاعات به‌روز بررسی کنید.
برای پلتفرم‌هایی که فضای ذخیره‌سازی ماندگار ارائه نمی‌دهند، می‌توانید با تنظیم متغیر محیطی DATABASE_URL یک پایگاه داده PostgreSQL خارجی متصل کنید. این کار فایل SQLite را لغو کرده و داده‌هایتان را برای همیشه امن نگه می‌دارد.


📁 ساختار مخزن

فایل هدف
main.py برنامه اصلی – بک‌اند FastAPI، تونل‌های WebSocket، و فرانت‌اند HTML/JS تعبیه‌شده.
Dockerfile ساخت کانتینر – یک ایمیج سبک Python 3.11 ایجاد کرده و پنل را راه‌اندازی می‌کند.
requirements.txt وابستگی‌های پایتون – نسخه‌های ثابت برای ساخت‌های پایدار.
render.yaml نقشه Render – دیپلوی خودکار روی Render.
Procfile دستور شروع Heroku/Railway (اختیاری) – در صورت استفاده از دیپلوی غیر Docker.
.gitignore قوانین نادیده گرفتن گیت – لاگ‌ها، کش و پایگاه داده را از نسخه‌بندی خارج نگه می‌دارد.

💸 راهنمای پهنای باند و هزینه

Important

پنل SulgX کاملاً رایگان است. با این حال، ارائه‌دهنده ابری شما هزینه پهنای باند خروجی مصرف‌شده توسط کاربرانتان را دریافت می‌کند.
ارقام زیر تقریبی هستند و ممکن است متفاوت باشند. همواره به صفحه قیمت‌گذاری رسمی ارائه‌دهنده مراجعه کنید.

پلتفرم پهنای باند رایگان (تقریبی) هزینه هر گیگابایت اضافه (تقریبی)
Railway پرداخت به‌ازای مصرف $0.10 / GB
Render ۵ GB / ماه $0.10 / GB
Dockfly مشخص نشده بررسی با ارائه‌دهنده
Back4app ۱۰۰ GB / ماه بررسی با ارائه‌دهنده
Scalingo مشخص نشده (دوره آزمایشی) بررسی با ارائه‌دهنده

داشبورد صورتحساب ارائه‌دهنده خود را زیر نظر داشته باشید و از محدودیت‌های ترافیک ماهانه پنل برای کنترل مصرف استفاده کنید.


⚖️ سلب مسئولیت

Warning

پیش از دیپلوی با دقت بخوانید

  • رایگان و غیرتجاری: این نرم‌افزار کاملاً رایگان ارائه می‌شود. فروش آن ممنوع است.
  • VPN تجاری ممنوع: از این پنل برای فروش اشتراک VPN استفاده نکنید. این ابزار صرفاً برای اهداف شخصی، آموزشی و آزمایشی طراحی شده است.
  • سوءاستفاده از پلتفرم ممنوع: از طرح‌های رایگان سرویس‌های ابری با ایجاد حساب‌های متعدد با ایمیل‌های موقت سوءاستفاده نکنید.
  • گزارش تخلف: اگر مشاهده کردید شخصی دسترسی به این پنل را می‌فروشد یا از زیرساخت سوءاستفاده می‌کند، لطفاً به ارائه‌دهنده میزبانی مربوطه گزارش دهید.
  • عدم مسئولیت: توسعه‌دهنده هیچ‌گونه مسئولیتی در قبال خسارات، هزینه‌های اضافی صورتحساب یا نقض شرایط سرویس ندارد. شما به‌تنهایی مسئول ترافیک خود هستید.

🙏 قدردانی

تشکر فراوان از پلتفرم‌ها و جوامعی که ابزارهای رایگان اینترنت را ممکن می‌سازند:


تقدیم به مردم سرزمینم ایران، از طرف SulgX