Skip to content

Latest commit

 

History

History
272 lines (200 loc) · 12.1 KB

File metadata and controls

272 lines (200 loc) · 12.1 KB

2S-UI

English · فارسی · Tiếng Việt · 简体中文 · 繁體中文 · Русский

یک پنل وب sing-box با نگهداری فعال برای مدیریت پراکسی چندپروتکلی، ارائه اشتراک، پایش ترافیک و استقرار خودمیزبان.

Docker Pulls Go Report Card Downloads License

سلب مسئولیت: این پروژه تنها برای یادگیری و تبادل نظر شخصی است؛ لطفاً از آن برای مقاصد غیرقانونی استفاده نکنید و آن را در محیط تولیدی (production) به کار نگیرید.

اگر فکر می‌کنید این پروژه برای شما مفید است، شاید بد نباشد یک ستاره بدهید🌟

مایل به مشارکت هستید؟ برای راه‌اندازی محیط توسعه، قراردادهای کدنویسی، تست و فرایند pull request به CONTRIBUTING.md مراجعه کنید.

2S-UI بر پایه alireza0/s-ui ساخته شده و به‌عنوان یک fork ادامه‌دار نگهداری می‌شود. این پروژه مسیر اصلی پنل را حفظ می‌کند و در همان حال پشتیبانی sing-box، قابلیت‌های چندپروتکلی، اسکریپت‌های استقرار و رفع اشکالات مستمر را به‌روزرسانی می‌کند. با تشکر از نویسنده اصلی و مشارکت‌کنندگان.

مرور سریع

امکانات فعال؟
چندپروتکلی ✔️
چندزبانه ✔️
چند کلاینت/ورودی ✔️
رابط پیشرفته مسیریابی ترافیک ✔️
وضعیت کلاینت و ترافیک و سیستم ✔️
لینک اشتراک (link/json/clash + info) ✔️
HTTPS خودکار (ACME / Let's Encrypt) ✔️
تم تیره/روشن ✔️
رابط API ✔️

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

پلتفرم معماری وضعیت
Linux amd64, arm64, armv7, armv6, armv5, 386, s390x ✅ پشتیبانی‌شده
Windows amd64, 386, arm64 ✅ پشتیبانی‌شده
macOS amd64, arm64 🚧 آزمایشی

تصاویر

"Main"

سایر تصاویر رابط کاربری

مستندات API

ویکی مستندات API

اطلاعات نصب پیش‌فرض

  • پورت پنل: 2095
  • مسیر پنل: /app/
  • پورت اشتراک: 2096
  • مسیر اشتراک: /sub/
  • نام کاربری/رمز عبور: admin

نصب و ارتقا به آخرین نسخه

Linux/macOS

bash <(curl -Ls https://raw.githubusercontent.com/shenaba/2s-ui/main/install.sh)

Windows

  1. آخرین نسخه ویندوز را از GitHub Releases دانلود کنید
  2. فایل ZIP را استخراج کنید
  3. install-windows.bat را به‌عنوان Administrator اجرا کنید
  4. مراحل جادوگر نصب (wizard) را دنبال کنید

نصب نسخه قدیمی

گام ۱: برای نصب نسخه قدیمی موردنظرتان، نسخه را به انتهای دستور نصب اضافه کنید. برای مثال نسخه 1.0.0:

VERSION=1.0.0 && bash <(curl -Ls https://raw.githubusercontent.com/shenaba/2s-ui/$VERSION/install.sh) $VERSION

نصب دستی

Linux/macOS

  1. آخرین نسخه 2S-UI متناسب با سیستم‌عامل/معماری خود را از GitHub دریافت کنید: https://github.com/shenaba/2s-ui/releases/latest
  2. اختیاری آخرین نسخه s-ui.sh را دریافت کنید https://raw.githubusercontent.com/shenaba/2s-ui/main/s-ui.sh
  3. اختیاری s-ui.sh را در /usr/bin/s-ui کپی کنید و chmod +x /usr/bin/s-ui را اجرا کنید.
  4. فایل tar.gz مربوط به s-ui را در دایرکتوری دلخواه استخراج کنید و به دایرکتوری‌ای که فایل tar.gz را در آن استخراج کرده‌اید بروید.
  5. فایل‌های *.service را در /etc/systemd/system/ کپی کنید و systemctl daemon-reload را اجرا کنید.
  6. اجرای خودکار را فعال کرده و سرویس 2S-UI را با systemctl enable s-ui --now راه‌اندازی کنید
  7. سرویس sing-box را با systemctl enable sing-box --now راه‌اندازی کنید

Windows

  1. آخرین نسخه ویندوز را از GitHub دریافت کنید: https://github.com/shenaba/2s-ui/releases/latest
  2. بسته مناسب ویندوز را دانلود کنید (برای مثال s-ui-windows-amd64.zip)
  3. فایل ZIP را در دایرکتوری دلخواه استخراج کنید
  4. install-windows.bat را به‌عنوان Administrator اجرا کنید
  5. مراحل جادوگر نصب (wizard) را دنبال کنید
  6. به پنل از طریق http://localhost:2095/app دسترسی پیدا کنید

حذف 2S-UI

sudo -i

systemctl disable s-ui  --now

rm -f /etc/systemd/system/sing-box.service
systemctl daemon-reload

rm -fr /usr/local/s-ui
rm /usr/bin/s-ui

نصب با استفاده از Docker

برای جزئیات کلیک کنید

نحوه استفاده

گام ۱: نصب Docker

curl -fsSL https://get.docker.com | sh

گام ۲: نصب 2S-UI

روش Docker compose

mkdir 2s-ui && cd 2s-ui
wget -q https://raw.githubusercontent.com/shenaba/2s-ui/main/docker-compose.yml
docker compose up -d

استفاده از docker

mkdir 2s-ui && cd 2s-ui
docker run -itd \
    -p 2095:2095 -p 2096:2096 -p 443:443 \
    -v $PWD/db/:/app/db/ \
    -v $PWD/cert/:/root/cert/ \
    --name s-ui --restart=unless-stopped \
    ghcr.io/shenaba/2s-ui:latest

ساخت image اختصاصی خودتان

git clone https://github.com/shenaba/2s-ui
git submodule update --init --recursive
docker build -t 2s-ui .

اجرای دستی ( مشارکت )

برای جزئیات کلیک کنید

ساخت و اجرای کل پروژه

./runSUI.sh

کلون کردن مخزن

# clone repository
git clone https://github.com/shenaba/2s-ui
# clone submodules
git submodule update --init --recursive

- Frontend

برای کد frontend به 2s-ui-frontend مراجعه کنید

- Backend

لطفاً ابتدا یک‌بار frontend را بسازید!

برای ساخت backend:

# remove old frontend compiled files
rm -fr web/html/*
# apply new frontend compiled files
cp -R frontend/dist/ web/html/
# build
go build -o sui main.go

برای اجرای backend (از پوشه ریشه مخزن):

./sui

زبان‌ها

  • انگلیسی
  • فارسی
  • ویتنامی
  • چینی (ساده‌شده)
  • چینی (سنتی)
  • روسی

امکانات

  • پروتکل‌های پشتیبانی‌شده:
    • عمومی: Mixed, SOCKS, HTTP, HTTPS, Direct, Redirect, TProxy
    • مبتنی بر V2Ray: VLESS, VMess, Trojan, Shadowsocks
    • سایر پروتکل‌ها: ShadowTLS, Hysteria, Hysteria2, Naive, TUIC
  • پشتیبانی از پروتکل‌های XTLS
  • رابطی پیشرفته برای مسیریابی ترافیک، شامل PROXY Protocol، پراکسی External و Transparent، گواهی SSL و پورت
  • رابطی پیشرفته برای پیکربندی inbound و outbound
  • سقف ترافیک و تاریخ انقضای کلاینت‌ها
  • نمایش کلاینت‌های آنلاین، inboundها و outboundها همراه با آمار ترافیک، و پایش وضعیت سیستم
  • سرویس اشتراک با قابلیت افزودن لینک‌ها و اشتراک‌های خارجی
  • HTTPS برای دسترسی امن به پنل وب و سرویس اشتراک (دامنه شخصی + گواهی SSL)
  • گواهی‌های SSL خودکار — کافی است یک دامنه وارد کنید و 2S-UI به‌صورت خودکار یک گواهی رایگان Let's Encrypt را برای شما صادر و تمدید می‌کند (بدون certbot، بدون cron job)
  • تم تیره/روشن

متغیرهای محیطی

برای جزئیات کلیک کنید

نحوه استفاده

متغیر نوع پیش‌فرض
SUI_LOG_LEVEL "debug" | "info" | "warn" | "error" "info"
SUI_DEBUG boolean false
SUI_BIN_FOLDER string "bin"
SUI_DB_FOLDER string "db"
SINGBOX_API string -

گواهی SSL

🔐 گواهی‌های خودکار (ACME / Let's Encrypt) — توصیه‌شده

کافی است یک دامنه را در تنظیمات پنل وارد کنید (حالت گواهی ← ACME) و 2S-UI به‌صورت خودکار یک گواهی رایگان Let's Encrypt را صادر و تمدید می‌کند — بدون certbot، بدون cron job. پنل وب و سرویس اشتراک را می‌توان به‌صورت مستقل فعال کرد. پس از انجام این کار، پنل از طریق https://<your-domain>:2095/app در دسترس خواهد بود.

نیازمند دسترس‌پذیری پورت TCP 80 از اینترنت است (چالش HTTP-01). برای انتشار پورت ۸۰ در Docker: در روش docker compose خط 80:80 را در docker-compose.yml از حالت کامنت خارج کنید، یا در روش docker run گزینه -p 80:80 را اضافه کنید. گواهی‌ها در پوشه cert/ ذخیره می‌شوند و پس از راه‌اندازی مجدد باقی می‌مانند. اگر دامنه/پورت نادرست پیکربندی شده باشد، 2S-UI به HTTP بازمی‌گردد.

ترجیح می‌دهید گواهی‌ها را خودتان مدیریت کنید؟ (Certbot)

Certbot

snap install core; snap refresh core
snap install --classic certbot
ln -s /snap/bin/certbot /usr/bin/certbot

certbot certonly --standalone --register-unsafely-without-email --non-interactive --agree-tos -d <Your Domain Name>

ستاره‌دهندگان در طول زمان

Stargazers over time