[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-144":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":16,"stars30d":17,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":18,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":9,"pushedAt":9,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":15,"starSnapshotCount":15,"syncStatus":16,"lastSyncTime":26,"discoverSource":27},144,"XHTTPRelayECO","B3hnamR\u002FXHTTPRelayECO","B3hnamR","Low-overhead hardened XHTTP relay on Vercel Node runtime",null,"HTML",407,210,4,24,0,2,156,6.97,false,"master",true,[],"2026-06-12 02:00:08","﻿\u003Cdiv align=\"center\">\n\n# 🚀 XHTTP Relay ECO (VrcLIraniCore)\n\n**نسخه سبک و بهینه‌شده XHTTP Relay روی Node Runtime ورسل**\n\n[![Version](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FVersion-1.3.6--eco-blue.svg?style=for-the-badge)]()\n[![Runtime](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FVercel-Node_Runtime-black.svg?style=for-the-badge&logo=vercel)]()\n[![Profile](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FProfile-ECO_Throttle-2ea44f.svg?style=for-the-badge)]()\n\n**داستان این نسخه چیه؟** \n\u003Cbr>\n🟥 **نسخه ECO طوری تیون شده که علاوه بر امنیت سفت‌وسخت v1.3، کم‌هزینه‌ترین رفتار ممکن روی Vercel Pro رو داشته باشه؛ یعنی با کنترل هوشمند Timeout، Inflight، Throttle و Logها، مصرف منابع و هزینه نهایی تا جای ممکن پایین نگه داشته میشه.**\n\n📣 **جهت دریافت اطلاعات و نکات بیشتر به کانال تلگرامی من مراجعه کنید:** [B3hnamR@](https:\u002F\u002Ft.me\u002FB3hnamR).\n📌 **نکته مهم:** لطفاً این راهنما رو تا انتها و با دقت بخونید تا موقع ستاپ کردن هیچ مشکلی براتون پیش نیاد.\n\n**🔒 [برای ساخت اکانت، مطالعه این آموزش کاملاً ضروری است: Anti-Ban-Tutorial.md](.\u002FAnti-Ban-Tutorial.md)**\n\n**توجه خیلی مهم:** این پروژه به‌خودی‌خود هیچ تاثیری در بن شدن اکانت ندارد؛ عامل بن فقط فرآیند ساخت اکانت است و این موضوع 100% تست شده.\n\n**توجه خیلی مهم:** با ساخت رایگان اکانت پرو ترایال میتونید استفاده کنید ❤️\n\u003Cbr>\n\u003C\u002Fdiv>\n\n---\n\n> ⚠️ **هشدار خیلی مهم**\n> رفقا لطفا پروژه رو به هیچ‌وجه Fork نکنید. برای اینکه اکانتتون امن بمونه و شبکه‌تون شناسایی نشه، فقط از روش دستی (Vercel CLI) که پایین‌تر توضیح دادم برای دیپلوی استفاده کنید.\n\n---\n\n## ✨ تو نسخه ECO چه خبره؟\n\n- ⏱️ **کنترل تایم‌اوت:** `UPSTREAM_TIMEOUT_MS` رو پیش‌فرض گذاشتیم روی `25000` که واسه کانکشن‌های طولانی جواب بده.\n- 🛡️ **بستن متدهای اضافه:** فقط با `GET`، `HEAD` و `POST` کار می‌کنه تا امنیت بالاتر بره.\n- 🧹 **تمیزکاری هدرها:** هدرهای اضافی پلتفرم و hop-by-hop رو بی‌رحمانه فیلتر می‌کنیم.\n- 🔑 **قفل امنیتی:** احراز هویت فقط از طریق هدر `x-relay-key` انجام میشه (توی کوئری دیگه قبول نمی‌کنه).\n- 🛣️ **مسیر سفت‌وسخت:** متغیر `RELAY_PATH` اجباریه. اگر درست ست نشه کلا کانکشن بسته میشه.\n- 🌐 **ظاهر استاتیک خودکار:** موقع Build یک Frontend استاتیک تولید میشه تا دامنه فقط API-محور دیده نشه.\n- 🔀 **مسیر عمومی جدا:** با `PUBLIC_RELAY_PATH` می‌تونی مسیر عمومی (مثلاً `\u002Fapi`) رو از مسیر واقعی upstream جدا کنی.\n- 🎲 **تمپلیت رندم در هر بیلد:** لندینگ از `templates\u002Flanding\u002F*` انتخاب میشه (قابل قفل شدن با ENV).\n- 🐛 **لاگ‌های به درد بخور:** لاگ‌های مربوط به تایم‌اوت، ارورها و مدت‌زمان کانکشن رو واضح‌تر کردیم تا دیباگ راحت بشه.\n- 🐢 **سرعت دست‌ساز:** روی آپلود و دانلود محدودیت سرعت (Throttling) واقعی گذاشتیم.\n- 📉 **دوست‌دار منابع:** کلا بردیمش روی Node runtime با لیمیت ۱۲۸ مگابایت رم و مدیریت کانکشن‌های همزمان.\n\n---\n\n## 🧠 سیستم چطور کار می‌کنه؟\n\nاین برنامه روی سرورلس‌های Node اجرا میشه و سه تا لایه اصلی داره:\n\n۱. **لایه امنیت:** همون هسته v1.3 هست که مسیر، متدها و پسورد رو چک می‌کنه.\n۲. **لایه کنترل منابع:** با `MAX_INFLIGHT` نمی‌ذاریم یهو صدتا درخواست همزمان بریزه رو سر سرور و کرش کنه.\n۳. **لایه کنترل ترافیک:** با `MAX_UP_BPS` و `MAX_DOWN_BPS` پهنای باند رو محدود می‌کنیم. نتیجه‌اش میشه یه سرعت پایدار اما با مصرف خیلی کمتر.\n\n---\n\n## 🪟 نصب خودکار و بی‌دردسر روی ویندوز (One-Click)\n\nبرای رفقایی که حال و حوصله درگیری با ترمینال و تایپ کردن دستورات رو ندارن، یه اسکریپت خودکار (ویندوزی) آماده کردیم که صفر تا صد کار رو خودش انجام میده! دو تا فایل برای این کار اضافه شده: `Run-Deploy-Windows.bat` و `Deploy-Windows.ps1`.\n\n**چطور ازش استفاده کنیم؟**\n۱. فایل ZIP پروژه رو Extract کن.\n۲. حتماً فیلترشکنت رو روی حالت **TUN Mode** (تونل کل سیستم) روشن کن که موقع دانلود پیش‌نیازها به ارور تحریم نخوری.\n۳. روی فایل `Run-Deploy-Windows.bat` دابل‌کلیک کن.\n۴. اسکریپت ازت مقدارهای لازم (مثل دامنه و مسیر) رو می‌پرسه؛ واردشون کن و تمام!\n\n**این اسکریپت دقیقاً چیکار می‌کنه؟**\n- اگه `npm` یا `vercel` رو سیستمت نصب نباشه، خودش پیدا می‌کنه و نصب می‌کنه.\n- وضعیت لاگین اکانتت رو چک می‌کنه.\n- لیست پروژه‌های اکانت Vercel رو می‌خونه تا پروژه موجود انتخاب کنی یا NEW بسازی.\n- متغیرهای محیطی (ENV) رو اتوماتیک روی `production` ست می‌کنه.\n- دیپلوی نهایی رو انجام میده و همونجا لینک نهایی سایت رو تحویلت میده.\n- دیفالت اقتصادی `v1.3.6` رو هم اعمال می‌کنه: `MAX_INFLIGHT=128`، `MAX_UP_BPS=2621440`، `MAX_DOWN_BPS=2621440`، `UPSTREAM_TIMEOUT_MS=50000` (دیفالت اینستالر) و ENVهای کنترل لاگ (`SUCCESS_LOG_SAMPLE_RATE`، `SUCCESS_LOG_MIN_DURATION_MS`، `ERROR_LOG_MIN_INTERVAL_MS`).\n- مسیر عمومی API (`PUBLIC_RELAY_PATH`) رو هم ست می‌کنه تا ترافیک Relay همیشه از همون prefix رد بشه (دیفالت: `\u002Fapi`).\n- لندینگ استاتیک رو موقع Build از تمپلیت‌های داخل پروژه می‌سازه و پیش‌فرض به‌صورت رندم انتخاب می‌کنه.\n\n**حالت‌های لاگین داخل اسکریپت:**\n- `[1] Use existing login session`\n- `[2] Token mode` (پیشنهادی)\n\nدر Token mode می‌تونی توکن رو امن داخل همون پوشه پروژه ذخیره کنی (`.vercel-token.dpapi`) تا دفعه‌های بعد لازم نباشه دوباره واردش کنی.\n\n**رفتار اجرای اول (وقتی پروژه لینک نیست):**\n- اسکریپت لیست پروژه‌های اکانت Vercel رو می‌گیره.\n- گزینه‌ها رو شماره‌بندی‌شده نشون میده.\n- یه گزینه `Deploy as NEW project` هم آخر لیست میاره.\n- تا وقتی یک گزینه معتبر انتخاب نکنی، جلو نمیره.\n\n**پنل مدیریت بعد از دیپلوی:**\nحتی بعد از اینکه پروژه‌ت ساخته شد، باز هم می‌تونی این فایل رو باز کنی. یه منوی ترتمیز بهت میده که می‌تونی این کارا رو بکنی:\n- `Select project from Vercel list`: انتخاب پروژه از لیست اکانت.\n- `Redeploy selected project`: دیپلوی مجدد روی پروژه انتخاب‌شده.\n- `Update production env vars (selected project)`: آپدیت کردن متغیرها و سرعت‌ها.\n- `List recent deployments (selected project)`: دیدن لیست دیپلوی‌های اخیر.\n- `Deploy as NEW project`: ساختن یه پروژه کاملاً جدید.\n- `Run health + smoke checks`: تست سریع سلامت مسیرها بعد از دیپلوی.\n- `Show professional logs (translated\u002Fcompact)`: خلاصه‌ لاگ‌های خطامحور به شکل قابل‌فهم.\n- `Run load-test lite`: تست فشار سبک برای چک اولیه پایداری.\n- `ENV drift detector`: بررسی اینکه ENVهای لازم وجود دارند و از پروفایل انتخابی Drift نکرده باشند.\n- `Profile benchmark runner`: گرفتن یک بنچمارک جمع‌وجور روی پروفایل‌های آماده.\n- `Live logs (translated\u002Fcompact)`: نمایش زنده لاگ‌ها تا وقتی `Q` بزنی.\n- `View deployment ENV config (full)`: دیدن وضعیت کامل ENVهای پروژه.\n- `Delete selected project (DANGER)`: حذف پروژه انتخاب‌شده از Vercel (با تایید نهایی).\n\n**تغییر ماهیت ریز هر Deploy (Randomization):**\nبرای اینکه همه با Fingerprint یکسان دیپلوی نکنن، اسکریپت قبل از Deploy این‌ها رو **موقت** رندوم می‌کنه:\n- `package.json`: `name`، `version`، `description`\n- `vercel.json`: `name`\n\nبعد از پایان Deploy (حتی اگر Fail بشه)، فایل‌های لوکال به حالت اصلی برمی‌گردن.\n\n> 💡 **نکته:** هر جای کار خواستی اسکریپت رو متوقف کنی کافیه `Ctrl + C` رو بزنی. `RELAY_PATH` باید دقیقاً با Path تنظیمات سرور خارجت یکی باشه. `PUBLIC_RELAY_PATH` فقط مسیر عمومی روی دامنه Vercel خودته (دیفالت: `\u002Fapi`).\n\n**مودهای دیپلوی داخل اینستالر (Preset):**\n- `ECO_MIN_COST`: حالت اقتصادی (Node + Fluid OFF) با کمترین هزینه پایدار.\n- `BALANCED_LOW_TIMEOUT`: بالانس سرعت\u002Fهزینه (Node + Fluid ON).\n- `MAX_STABILITY_HIGH_CONN`: برای اتصال همزمان بالاتر و پایداری بیشتر (Node + Fluid ON).\n- `STRESS_TEST`: حالت تهاجمی برای تست فشار (Node + Fluid ON).\n- `FAST_PIPE_REWRITE_SECURE`: حالت Rewrite سریع با قفل اختیاری هدر `x-relay-key`.\n- `CUSTOM_BUILD`: همه‌چی دستی، برای کسی که تنظیم اختصاصی می‌خواد.\n\n**نکته مهم درباره Rewrite mode:**\n- اگر `RELAY_KEY` رو خالی بزاری، Rewrite بدون قفل هدر deploy میشه.\n- اگر `RELAY_KEY` بدی، فقط درخواست‌هایی که هدر `x-relay-key` درست داشته باشن عبور می‌کنن.\n- اگر Rewrite رو با `RELAY_KEY` ساختی، توی کلاینت باید هدر رو دستی بفرستی؛ وگرنه معمولاً `403` یا `404` می‌گیری.\n- جای این هدر در اغلب کلاینت‌ها بخش `XHTTP Extra` هست.\n\n**تنظیم کلاینت برای Rewrite Secure (وقتی RELAY_KEY ست شده):**\nدر قسمت `XHTTP Extra` این JSON رو وارد کن (کلید رو با مقدار خودت جایگزین کن):\n\n```json\n{\n  \"headers\": {\n    \"x-relay-key\": \"YourStrongKey\"\n  }\n}\n```\n\n**خلاصه خیلی ساده Rewrite mode:**\n- `Address` و `SNI`: دامنه فرانت (مثل `nextjs.org`)\n- `Host`: دامنه Vercel پروژه خودت\n- `Path`: همون `PUBLIC_RELAY_PATH` (مثلاً `\u002Fapi`)\n- اگر `RELAY_KEY` فعاله: حتماً هدر `x-relay-key` رو در `XHTTP Extra` بفرست\n\n**هوشمندسازی Region در اینستالر:**\n- اسکریپت از روی `TARGET_DOMAIN`، DNS رو چک می‌کنه و یک Region پیشنهادی میده.\n- اگر DNS لوکال و DNS عمومی متفاوت باشن، هشدار میده و پیشنهاد رو با DNS عمومی می‌سازه.\n- انتخاب نهایی Region همیشه دست خود کاربره.\n\n**سینک خودکار Deployment Protection:**\n- هنگام دیپلوی، اسکریپت تلاش می‌کنه `Vercel Authentication` پروژه رو خودکار خاموش کنه تا دسترسی عمومی درست کار کنه.\n- اگر API اجازه نده، پیام شفاف میده که از Dashboard خاموشش کنی.\n\n**لندینگ رندم چطور کار می‌کنه؟**\n- تمپلیت‌ها داخل مسیر `templates\u002Flanding\u002F` هستند.\n- هر تمپلیت حداقل باید `index.html` داشته باشد (و معمولاً `styles.css` هم دارد).\n- در هر Build یک تمپلیت انتخاب می‌شود و به `public\u002F` کپی می‌شود.\n- توکن‌های زیر داخل تمپلیت‌ها به‌صورت خودکار جایگزین می‌شوند:\n  `{{BUILD_CODE}}` ، `{{PUBLIC_RELAY_PATH}}` ، `{{RELAY_PATH}}` ، `{{GENERATED_AT}}` ، `{{TEMPLATE_NAME}}`\n\n---\n\n## ⚙️ راهنمای دیپلوی دستی (برای لینوکس\u002Fمک یا کسانی که اسکریپت نمی‌خوان)\n\n### ۱. آماده‌سازی فایل‌ها\nفایل پروژه رو به صورت ZIP دانلود و اکسترکت کن. \n*(راستی، بعد از اکسترکت کردن می‌تونی فایل‌های `.gitignore` و `README.md` رو کلاً از تو پوشه پاک کنی، نیازی بهشون نیست).*\n\n### ۲. نصب ابزار ورسل و ورود\nاول ابزار ورسل رو نصب کن:\n```bash\nnpm i -g vercel\n```\nحالا با دستور `cd` برو به همون مسیری که فایل‌های پروژه رو اکسترکت کردی:\n```bash\ncd \u002FYour\u002FPath\u002FTo\u002FFolder\n```\nو وارد اکانتت بشو:\n```bash\nvercel login\n```\n\n### ۳. شروع دیپلوی\nتو همون مسیر این دستور رو بزن و سوالات رو با زدن Enter رد کن تا پروژه بره بالا:\n```bash\nvercel deploy\n```\n\n### ۴. تنظیم متغیرها (ENV)\nدر صفحه اصلی ورسل، روی پروژه‌ای که ساختی کلیک کن تا وارد صفحه‌اش بشی. \nحالا از نوار سمت راست روی گزینه **Environment Variables** کلیک کن و دکمه **Add Environment Variable** رو بزن.\n\nدر صفحه‌ای که باز میشه، مقادیر `TARGET_DOMAIN` و `RELAY_PATH` رو باید به‌صورت **اجباری** وارد کنی:\n\n- **تنظیم TARGET_DOMAIN:**\n  در فیلد `Key` عبارت `TARGET_DOMAIN` رو بنویس و در فیلد `Value`، آدرس دامنه خودت رو به همراه پورت اینباند وارد کن. به این صورت:\n  `https:\u002F\u002FYOUR-DOMAIN-ADDRESS:INBOUNDPORT`\n\n- **تنظیم RELAY_PATH:**\n  مجدداً دکمه Add رو بزن. در فیلد `Key` عبارت `RELAY_PATH` رو بنویس و در قسمت `Value`، همون مقداری رو وارد کن که تو پنل XUI برای بخش Path اینباندت ست کردی (مثلاً `\u002Fapi` یا `\u002Fyourpath`). اگر تا الان Path نذاشتی، اینباندت رو ویرایش کن و یه Path براش بذار و همون رو اینجا بنویس.\n\n- **تنظیم PUBLIC_RELAY_PATH (پیشنهادی):**\n  برای اینکه مسیر عمومی Relay روی دامنه ورسل ثابت و طبیعی بمونه، یک ENV با `Key` برابر `PUBLIC_RELAY_PATH` بساز و مقدارش رو معمولاً `\u002Fapi` بذار.\n\n- **تنظیم LANDING_TEMPLATE (اختیاری):**\n  اگر می‌خوای در هر Deploy دقیقاً یک تمپلیت ثابت بیاد بالا، `LANDING_TEMPLATE` رو برابر نام پوشه تمپلیت بذار (مثل `forge-stack`). اگر نذاری، هر بیلد رندم انتخاب میشه.\n\n> 💡 **مهم:** اگر می‌خوای مقادیر ENV در ابزار Inspector اینستالر قابل‌نمایش باشند، متغیرها رو `Sensitive` نساز. بعضی اکانت‌ها\u002Fتیم‌ها با Policy داخلی مقدارها رو Mask می‌کنن که در این حالت Inspector فقط `(hidden\u002Fsensitive)` نشون میده.\n\nمقادیر ENV رو می‌تونی دقیقاً طبق جدول زیر ست کنی:\n\n| متغیر | وضعیت | مقدار دیفالت v1.3.6 | توضیح |\n| :--- | :---: | :---: | :--- |\n| `TARGET_DOMAIN` | 🔴 اجباری | - | آدرس Upstream مثل `https:\u002F\u002Fdomain:port` |\n| `RELAY_PATH` | 🔴 اجباری | - | مسیر اینباند؛ باید دقیقاً با مسیر سرور خارج یکی باشه (مثلاً `\u002Fapi`) |\n| `PUBLIC_RELAY_PATH` | ⚪ اختیاری | `\u002Fapi` | مسیر عمومی روی دامنه Vercel که درخواست Relay ازش وارد میشه |\n| `LANDING_TEMPLATE` | ⚪ اختیاری | - | اگر ست کنی، همون تمپلیت انتخاب میشه (مثلاً `forge-stack`) |\n| `AUTO_FRONTEND` | ⚪ اختیاری | `1` | اگر `0` بشه، تولید خودکار لندینگ غیرفعال میشه |\n| `UPSTREAM_TIMEOUT_MS` | ⚪ اختیاری | `25000` | سقف انتظار برای پاسخ upstream؛ کمترش یعنی قطع سریع‌تر و مصرف کمتر |\n| `MAX_INFLIGHT` | ⚪ اختیاری | `128` | سقف درخواست همزمان داخل هر instance |\n| `MAX_UP_BPS` | ⚪ اختیاری | `2621440` | سقف آپلود به بایت بر ثانیه (حدود 20Mbps) |\n| `MAX_DOWN_BPS` | ⚪ اختیاری | `2621440` | سقف دانلود به بایت بر ثانیه (حدود 20Mbps) |\n| `SUCCESS_LOG_SAMPLE_RATE` | ⚪ اختیاری | `0` | نرخ نمونه‌گیری لاگ موفق‌ها (برای کاهش هزینه لاگ) |\n| `SUCCESS_LOG_MIN_DURATION_MS` | ⚪ اختیاری | `3000` | فقط درخواست‌های کندتر از این مقدار لاگ موفق می‌خورند |\n| `ERROR_LOG_MIN_INTERVAL_MS` | ⚪ اختیاری | `5000` | حداقل فاصله بین لاگ خطاها (جلوگیری از انفجار لاگ) |\n| `RELAY_KEY` | ⚪ اختیاری | - | اگر ست بشه، فقط با `x-relay-key` معتبر اجازه عبور میده |\n\n> ℹ️ **نکته مهم درباره Timeout:** دیفالت هسته پروژه `25000` هست، ولی اینستالر ویندوز برای پایداری بیشتر مقدار اولیه `50000` پیشنهاد میده.\n\n**دیفالت اقتصادی هسته پروژه (اگر ENV ست نکنی):**\n```text\nMAX_INFLIGHT=128\nMAX_UP_BPS=2621440\nMAX_DOWN_BPS=2621440\nUPSTREAM_TIMEOUT_MS=25000\n```\n\n**دیفالت پیشنهادی اینستالر ویندوز (برای استفاده واقعی):**\n```text\nMAX_INFLIGHT=128\nMAX_UP_BPS=2621440\nMAX_DOWN_BPS=2621440\nUPSTREAM_TIMEOUT_MS=50000\n```\n\n*(توجه: نیازی به ست کردن `RELAY_KEY` نیست مگه اینکه واقعاً بخوای رو پروژه‌ت پسورد بذاری).*\n\n### ۵. دیپلوی نهایی (Redeploy)\nخبر خوب اینه که دیگه نیازی به ترمینال نیست! همون لحظه که متغیرها رو تو سایت ورسل Save می‌کنی، یه پاپ‌آپ (Pop-up) همون پایین صفحه میاد که دکمه **Redeploy** داره. همون رو بزن تا پروژه با تنظیمات جدیدت دوباره ساخته بشه و آماده کار بشه.\n\n---\n\n## 🧪 تست و دیباگ بعد از دیپلوی (با خود اینستالر)\n\nبعد از اینکه Deploy تموم شد، اینستالر خودش می‌تونه تست‌های ضروری رو بگیره:\n\n- `Health Check`:\n  - `Root: 200` یعنی روت دامنه بالا هست.\n  - `API: 400` در تست خام معمولاً **طبیعیه** و به معنی خراب بودن تونل نیست (چون Probe ساده‌ست، نه هندشیک کامل کلاینت).\n- `Smoke Tests`:\n  - مسیر اشتباه باید `404` بده.\n  - متد اشتباه باید `405` بده.\n  - مسیر درست Relay باید `non-404` باشه (معمولاً `400` یا `200` می‌بینی که هر دو در تست خام قابل قبوله).\n\nبرای عیب‌یابی سریع:\n- گزینه `Show professional logs` رو با پنجره زمانی بزرگ‌تر اجرا کن.\n- گزینه `Live logs` رو باز کن و همزمان از کلاینت ping\u002Ftest بزن.\n- گزینه `ENV drift detector` رو بزن تا بفهمی ENVهای پروفایل درست ست شدن یا نه.\n- گزینه `View deployment ENV config` رو بزن تا وضعیت ENVها و زمان آخرین آپدیت رو ببینی.\n\n---\n\n## 🧮 چطور سرعتم رو به بایت محاسبه کنم؟\n\nمتغیرهای `MAX_UP_BPS` و `MAX_DOWN_BPS` بر اساس «بایت بر ثانیه» کار می‌کنن. اگه می‌خوای سرعتت رو بر اساس مگابیت (Mbps) تنظیم کنی، فرمولش اینه:\n\n**فرمول:** `سرعت مد نظر شما (به مگابیت) × 131072`\n\nمثلاً اگه می‌خوای سرعتت رو روی ۵۰ مگابیت قفل کنی: `50 × 131072 = 6553600`\n\n**چند تا مثال آماده برای کپی کردن:**\n- 10 Mbps → `1310720`\n- 12 Mbps → `1572864`\n- 15 Mbps → `1966080`\n- 20 Mbps → `2621440`\n\n---\n\n## 💸 محاسبه هزینه روی Vercel Pro (نسخه 1.3.6)\n\nاین نسخه با هدف «اقتصادی‌ترین حالت پایدار» تیون شده.  \nدیفالت فعلی پروژه روی این مقادیره:\n\n```text\nMAX_INFLIGHT=128\nMAX_UP_BPS=2621440\nMAX_DOWN_BPS=2621440\nUPSTREAM_TIMEOUT_MS=25000\nSUCCESS_LOG_SAMPLE_RATE=0\nSUCCESS_LOG_MIN_DURATION_MS=3000\nERROR_LOG_MIN_INTERVAL_MS=5000\n```\n\n### هزینه از چه بخش‌هایی میاد؟\n- `Function Invocations` (تعداد فراخوانی‌ها)\n- `Fluid Active CPU` (زمان واقعی اجرای CPU)\n- `Fluid Provisioned Memory` (زمان فعال بودن مموری)\n- `Fast Origin Transfer` (ترافیک رفت\u002Fبرگشت بین CDN و Function)\n- `Observability Events` (حجم لاگ‌ها)\n\n### فرمول‌های ساده\n- هزینه Invocation:  \n  `invocations \u002F 1,000,000 × $0.60`\n- هزینه Fast Origin Transfer (تقریبی):  \n  `origin_gb × نرخ منطقه`\n- هزینه CPU و Memory:  \n  `active_cpu_hours × نرخ CPU منطقه + provisioned_gb_hours × نرخ Memory منطقه`\n\n### مثال حدودی (بر اساس نرخ‌های پایه Pro)\n- `Invocations`: حدود `$0.60 \u002F 1M`\n- `Fast Origin Transfer`: شروع از حدود `$0.06 \u002F GB` (وابسته به ریجن)\n- `Active CPU`: شروع از حدود `$0.128 \u002F ساعت`\n- `Provisioned Memory`: شروع از حدود `$0.0106 \u002F GB-hour`\n\nیعنی اگر مصرفت مثل تست‌های سبک روزانه باشه، معمولاً فشار هزینه اصلی از **تعداد Invocation + Origin Transfer + لاگ زیاد** میاد؛  \nبرای همین توی `v1.3.6` لاگ‌ها Rate-limit و Sample شدن تا هزینه Observability هم تا حد ممکن بیاد پایین.\n\n---\n\n## 🎚️ تنظیمات آماده (Presets)\n\nاین اعداد صرفاً پیشنهادن. همونی که به کارت میاد رو کپی کن:\n\n### ۱. تمرکز روی سرعت (برای تک‌کاربر یا مصرف کم)\n```text\nMAX_INFLIGHT=16\nMAX_UP_BPS=1310720\nMAX_DOWN_BPS=1310720\n```\n\n### ۲. حالت متعادل (بهترین بالانس سرعت و مصرف)\n```text\nMAX_INFLIGHT=48\nMAX_UP_BPS=1572864\nMAX_DOWN_BPS=1572864\n```\n\n### ۳. حالت ECO (تعداد یوزر بالا، سرعت پایین - هدف اصلی این پروژه)\n```text\nMAX_INFLIGHT=128\nMAX_UP_BPS=2621440\nMAX_DOWN_BPS=2621440\n```\n\n### ۴. شلوغی زیاد (سرعت فدای پایداری کانکشن)\n```text\nMAX_INFLIGHT=192\nMAX_UP_BPS=1966080\nMAX_DOWN_BPS=1966080\n```\n\n### ۵. بقا! (کم‌مصرف‌ترین حالت، فقط واسه اینکه وصل باشن)\n```text\nMAX_INFLIGHT=256\nMAX_UP_BPS=1310720\nMAX_DOWN_BPS=1310720\n```\n\n---\n\n## 🧪 بررسی عملکرد و تیونینگ از روی Logs\n\nبرای اینکه ببینی کانفیگی که ست کردی چطور داره کار می‌کنه، توی همون داشبورد ورسل روی پروژه‌ات کلیک کن و برو به تب **Logs**. \nبعد از اینکه مقادیر زیر رو ست کردی:\n```text\nMAX_INFLIGHT=\nMAX_UP_BPS=\nMAX_DOWN_BPS=\n```\nشروع کن به استفاده از کانکشن. اگر تو بخش لاگ‌ها دیدی مدام داره ارور `503` میده، یعنی ترافیک گیر کرده و ظرفیتت پر شده. تو این حالت باید بری دوباره با این سه تا عدد بازی کنی و یکم ببریشون بالاتر تا مشکل حل بشه و به بهترین حالت برای سرورت برسی.\n\n---\n\n## 💻 نمونه کانفیگ برای کلاینت (v2ray \u002F xray)\n```text\nvless:\u002F\u002FUUID-HERE@vercel.com:443?encryption=none&security=tls&sni=vercel.com&fp=chrome&alpn=h2&insecure=0&allowInsecure=0&type=xhttp&host=YOUR-VERCEL-DOMAIN&path=%2Fapi&mode=auto#XHTTP-ECO\n```\n*(یادت نره دامنه ورسل خودت رو جایگزین کنی و `path` رو همون چیزی بذاری که تو `PUBLIC_RELAY_PATH` ست کردی. `%2F` همون کاراکتر اسلش `\u002F` هست).*\n\n---\n\n## 🛠️ معنی ارورها (Status Codes)\n\n- `200` : همه‌چی عالیه و وصلی.\n- `403` : پسوردی که تو `x-relay-key` زدی غلطه.\n- `404` : مسیری که تو کلاینت زدی با `PUBLIC_RELAY_PATH` هم‌خونی نداره.\n- `405` : متد درخواستی غیرمجازه.\n- `500` : متغیرهای محیطی (ENV) رو درست ست نکردی.\n- `502` : تونل نمی‌تونه به سرور اصلیت (Upstream) وصل بشه.\n- `503` : ترافیک همزمان بالاست و به سقف `MAX_INFLIGHT` رسیدی. (اگه زیاد دیدیش برو تو بخش Logs با اعداد بازی کن).\n- `504` : سرور اصلیت جواب نمیده (تایم‌اوت).\n\n---\n\n## 💖 تشکر ویژه و منبع اصلی (Credits)\nباید یادی کنیم از منبع اصلی این حرکت؛ این پروژه در واقع فورک و توسعه‌یافته از ایده‌های ناب و زحمات بچه‌های کانال تلگرامی [Avaco Cloud](https:\u002F\u002Ft.me\u002Favaco_cloud) هست. دم تیم آواکو کلاود گرم که این مسیر رو برای وب‌گردی آزاد و توسعه ابزارهای این‌چنینی باز کردن. حتماً به کانالشون سر بزنید و از محتواشون حمایت کنید! 🤝\n\n---\n\n## ☕ حمایت از پروژه (Donate)\nاگر این پروژه براتون مفید بود و دوست داشتید از ادامه توسعه‌اش حمایت کنید، می‌تونید از آدرس‌های زیر استفاده کنید:\n\n**Tron (TRX) \u002F USDT (TRC-20) :**\n```text\nTTfYReJ7aJEvx4CfwgtY3UV8hJHXTrTwnn\n```\n\n**BNB \u002F USDT (BEP-20) :**\n```text\n0x25CAc03F80C12FFc30D8264e4b90423AFfA2E6Ac\n```\n\n---\n\n## License\n\nMIT\n\n","XHTTP Relay ECO 是一个基于 Vercel Node 运行时的低开销强化 XHTTP 中继服务。该项目的核心功能包括智能控制超时、并发请求、限流和日志记录，以实现资源消耗和成本的最小化；支持通过 `x-relay-key` 头进行身份验证，并且仅允许 GET、HEAD 和 POST 方法来提高安全性；同时，它还提供了自动静态前端生成、随机模板选择等功能，确保服务在视觉上不显眼的同时保持高效运行。此外，该中继服务对上传下载速度进行了真实限制，适合需要在 Vercel Pro 环境下以低成本方式部署安全可靠的 HTTP 代理服务的场景使用。","2026-06-11 02:31:06","CREATED_QUERY"]