3x-ui README

The project's README from github.com/x4gpanell/3x-ui. As one markdown file: README.md.

3x-ui روی Railway با یک پورت واحد (بدون TCP Proxy)

این ریپازیتوری، 3x-ui رو به همراه یک nginx reverse proxy اجرا می‌کند که هم پنل وب و هم اینباند VLESS/WebSocket شما را از طریق یک پورت واحد (همان پورتی که Railway اختصاص می‌دهد) در دسترس می‌گذارد — دقیقاً مثل معماری RVG.

چرا این کار لازم بود؟

به‌صورت پیش‌فرض، 3x-ui پنل وب را روی یک پورت و هر Inbound را روی پورت دیگری اجرا می‌کند. Railway Public Domain فقط به یک پورت داخلی وصل می‌شود، پس یا پنل در دسترس بود یا Inbound، نه هر دو. این نسخه با اضافه کردن nginx، هر دو را زیر یک پورت مدیریت می‌کند.

مراحل دیپلوی

۱. ریپازیتوری بسازید

یک ریپازیتوری جدید در گیت‌هاب بسازید (خصوصی یا عمومی، فرقی ندارد) و این سه فایل را در ریشه‌ی آن قرار دهید:

۲. در Railway

  1. New Project → Deploy from GitHub repo و همین ریپازیتوری را انتخاب کنید
  2. Railway به‌طور خودکار Dockerfile را تشخیص و بیلد می‌کند
  3. بعد از اتمام دیپلوی، به Settings → Networking بروید و Generate Domain بزنید (فقط همین یک دامنه لازم است، نیازی به Target Port خاص نیست چون nginx مستقیماً روی $PORT گوش می‌دهد)

۳. اولین ورود به پنل

آدرس پنل شما این خواهد بود:

https://دامنه‌شما.up.railway.app/managepanel/

یوزرنیم/پسورد پیش‌فرض 3x-ui را وارد کنید (admin/admin) و حتماً بلافاصله از بخش تنظیمات تغییرش دهید.

۴. ساخت Inbound

در پنل، یک Inbound جدید بسازید با این تنظیمات دقیق:

فیلد مقدار
Protocol VLESS
Listen Port 8080 (این عدد نباید تغییر کند، چون nginx دقیقاً به همین پورت وصل است)
Listen IP خالی یا 0.0.0.0
Network ws
Security none
Path هر مسیر دلخواه، مثلاً /cdn

⚠️ اگر بخواهید پورت Inbound را عددی غیر از 8080 بگذارید، باید داخل فایل nginx.conf.template هم مقدار 127.0.0.1:8080 را با همان عدد جدید هماهنگ کنید و دوباره Push/Deploy کنید.

۵. ساخت لینک کلاینت

vless://UUID@دامنه‌شما.up.railway.app:443?encryption=none&security=tls&sni=دامنه‌شما.up.railway.app&fp=chrome&type=ws&host=دامنه‌شما.up.railway.app&path=%2Fcdn#MyConfig

جای UUID و دامنه‌شما و path را با مقادیر واقعی خودتان جایگزین کنید.

تست سریع (قبل از تست با v2rayNG)

در مرورگر باز کنید:

https://دامنه‌شما.up.railway.app/cdn

باید پیام "Bad Request" ببینید (یعنی درخواست به Xray رسیده). اگر پنل هم به همین شکل جواب داد یعنی مسیر nginx سالم است:

https://دامنه‌شما.up.railway.app/managepanel/

نکات مهم

3x-ui (x4gpanell/3x-ui)

Searching Database…

405 ·GitHub
Что это?Это настройка развёртывания панели 3x-ui на Railway, добавляющая обратный прокси nginx, чтобы и веб-панель, и VLESS/WebSocket-инбаунд были доступны через единственный порт, который Railway выделяет вашему развёртыванию.
Это сам 3x-ui или просто обёртка для его развёртывания?Это обёртка вокруг 3x-ui: репозиторий содержит Dockerfile, nginx.conf.template и скрипт start.sh, которые запускают 3x-ui вместе с nginx, направляя трафик панели и инбаунда на один и тот же открытый порт.
Как развернуть это на Railway?Запушьте Dockerfile, nginx.conf.template и start.sh в новый репозиторий на GitHub, затем в Railway выберите New Project, затем Deploy from GitHub repo и укажите этот репозиторий; Railway сам обнаружит Dockerfile и соберёт его, после чего вы сгенерируете домен в Settings, затем Networking (конкретный целевой порт не нужен, так как nginx слушает $PORT напрямую).
Что нужно перед развёртыванием?Нужен репозиторий на GitHub (приватный или публичный) с этими тремя файлами и проект Railway, подключённый к этому репозиторию; больше ничего дополнительно не требуется.
На что обратить внимание после развёртывания?Все инбаунды должны слушать фиксированный внутренний порт 8080, потому что nginx проксирует только этот порт, а данные панели в /etc/x-ui живут во временной файловой системе контейнера — при повторном развёртывании они стираются, если не подключить Railway Volume к этому пути.
Какой логин у панели по умолчанию, и стоит ли его менять?Учётные данные 3x-ui по умолчанию — admin/admin, и README подчёркивает, что сразу после первого входа их нужно немедленно сменить в разделе настроек.
Почему бы просто не запустить 3x-ui напрямую на Railway без этого слоя nginx?Обычно 3x-ui раздаёт панель и каждый инбаунд на отдельных портах, но Public Domain в Railway пробрасывает только один внутренний порт — без этой обёртки nginx вы могли бы достучаться либо до панели, либо до прокси-инбаунда, но никогда не до обоих сразу.
Можно создать таким образом больше одного VLESS-инбаунда?Да, если каждый инбаунд слушает тот же внутренний порт 8080; разные инбаунды могут использовать разные WebSocket-пути, поскольку nginx различает их только по пути, а не по TCP-порту.
Creator
x4gpanell
Size
<0.1 MB
Stars
405
Updated
CommitSep 27
Age
2mo
Commits · 90 Days