# 🚀 پنل SulgX (نسخه ۱.۱.۰)
[](https://github.com/SulgX/SulgX-Panel/releases)
[](https://www.python.org/)
[](LICENSE)
[](https://github.com/SulgX/SulgX-Panel)
راهنما:
English |
فارسی



> **پنل مدیریت اشتراک سبک و خودمیزبان برای 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ها، [انتشار ۱.۱.۰](https://github.com/SulgX/SulgX-Panel/releases/tag/v1.1.0) را ببینید.
---
## 🚀 راهاندازی سریع و دیپلوی
> [!NOTE]
> پروژه اکنون بهطور بومی از طریق **Dockerfile** اجرا میشود. کافی است مخزن را فورک کنید، متغیرهای محیطی را تنظیم کنید و پلتفرم آن را برایتان بسازد.
> برای پلتفرمهای پیشنهادی نیازی به دستورهای دستی شروع یا پیکربندی Gunicorn نیست.
### 🍴 گام ۱: فورک و پیکربندی
1. این مخزن را در حساب گیتهاب خود فورک کنید.
2. (اختیاری) برای پایداری بیشتر، میتوانید دیپلویهای خود را به **تگ انتشار** `v1.1.0` محدود کنید.
### ☁️ گام ۲: انتخاب پلتفرم
هر پنج پلتفرم زیر از **WebSocket** پشتیبانی میکنند، میتوانند مستقیماً از **Dockerfile** دیپلوی شوند و **نیاز به کارت اعتباری یا شماره تلفن ندارند** – فقط ایمیل یا حساب گیتهاب.
- [**Railway**](https://railway.app/) ← توصیه اصلی (اعتبار رایگان، Volumeهای ماندگار)
- [**Render**](https://render.com/) ← طرح رایگان با دیسک ماندگار
- [**Dockfly**](https://dockfly.app/) ← ساده و کمینه
- [**Back4app**](https://www.back4app.com/) ← مبتنی بر Parse، طرح رایگان سخاوتمندانه
- [**Scalingo**](https://scalingo.com/) ← 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` | (اختیاری) پورتی که برنامه روی آن گوش میدهد. اکثر پلتفرمها این را نادیده میگیرند و از پورت خود استفاده میکنند. |
4. **ماندگاری دادهها**
پلتفرمهایی که Volume ماندگار پشتیبانی میکنند، به شما اجازه میدهند پایگاه داده را بین راهاندازیهای مجدد حفظ کنید. برای پلتفرمهایی که فاقد این قابلیت هستند (یا اگر امنیت بیشتری میخواهید)، یک **پایگاه داده خارجی PostgreSQL** با تنظیم متغیر محیطی `DATABASE_URL` متصل کنید.
5. **دسترسی به پنل**
پس از دیپلوی، آدرس عمومی برنامه خود را باز کرده و به `/panel` بروید. با رمز تعیینشده در `ADMIN_PASSWORD` وارد شوید.
### 📌 نکات خاص هر پلتفرم