Files
OmniRoute/docs/i18n/fa/docs/guides/TERMUX_GUIDE.md
Diego Rodrigues de Sa e Souza 8feea123bb feat(docs): mirror every docs/ page in all 65 locales (#14106)
* feat(docs): mirror every docs/ page in all 65 locales

Extends the documentation mirrors from the 22-page core set (#13940) to
every Markdown page under docs/: 152 sources x 65 locales = 9,880 mirrors
(6,208 new), language bars rewritten for the full locale list, state
adopted so the blocking drift gate now covers all 152 pages.

run-translation.mjs: an oversized block made only of table rows or list
items (PROVIDER_REFERENCE.md 244-row table, FREE_TIERS.md 71-item list) is
cut at item boundaries and rejoined without a blank line — the single
16-40 KB request outlived the backend socket for verbose scripts. 48
older mirrors whose tables had lost rows were retranslated with --force.

* docs(i18n): refresh mirrors for the sources the base changed since the branch cut

Section-level retranslation of the 29 docs (and README.md) whose source
or mirrors moved on release/v3.8.51 during the run, then state adoption;
the drift gate is green again on the merged tree.
2026-09-18 13:16:46 -03:00

12 KiB

Termux Headless Setup (فارسی)

🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW


OmniRoute میتواند از طریق Termux بهعنوان یک سرور بدون رابط گرافیکی روی Android اجرا شود. برنامه دسکتاپ Electron در Termux پشتیبانی نمیشود، اما داشبورد وب و API سازگار با OpenAI از طریق مرورگر محلی یا دستگاههای دیگر در همان شبکه قابل استفاده هستند.

پیشنیازها

Termux را از F-Droid یا نسخههای منتشرشده در GitHub نصب کنید، سپس بستهها را بهروزرسانی کرده و ابزارهای ساخت موردنیاز وابستگیهای بومی مانند better-sqlite3 را نصب کنید.

pkg update
pkg upgrade
pkg install nodejs python build-essential git

نسخه Node.js: OmniRoute به Node >=22.22.2 <23 || >=24.0.0 <27 نیاز دارد (مطابق با engines در package.json / SUPPORTED_NODE_RANGE). بسته nodejs-lts در Termux معمولاً Node 20 LTS را ارائه میکند که دیگر پشتیبانی نمیشود — بهجای آن pkg install nodejs (نسخه جاری) را نصب کنید و با اجرای node --version مطمئن شوید نسخهای از شاخه 22.x/24.x+ گزارش میشود.

اگر کامپایل بستههای بومی ناموفق بود، فرمان pkg install بالا را دوباره اجرا کنید و سپس نصب OmniRoute را مجدداً امتحان کنید.

نصب

آخرین بسته منتشرشده را مستقیماً اجرا کنید:

npx -y omniroute@latest

همچنین میتوانید آن را بهصورت سراسری نصب کنید:

npm install -g omniroute
omniroute

اجرا

OmniRoute را در حالت سرور بدون رابط گرافیکی اجرا کنید:

omniroute

یا:

npx omniroute

داشبورد روی آدرس زیر در دسترس است:

http://localhost:20128

این URL را در مرورگر Android باز کنید. اگر کلاینتها را داخل Termux اجرا میکنید، از همان میزبان و پورت بهعنوان URL پایه سازگار با OpenAI استفاده کنید.

اجرای پسزمینه

برای اجرای یک فرایند ساده در پسزمینه:

nohup omniroute > omniroute.log 2>&1 &

برای متوقف کردن آن:

pkill -f omniroute

برای راهاندازی خودکار پس از روشن شدن دستگاه، افزونه Termux:Boot را نصب کرده و یک اسکریپت راهاندازی ایجاد کنید:

mkdir -p ~/.termux/boot
cat > ~/.termux/boot/omniroute.sh <<'EOF'
#!/data/data/com.termux/files/usr/bin/sh
cd "$HOME"
nohup omniroute > "$HOME/omniroute.log" 2>&1 &
EOF
chmod +x ~/.termux/boot/omniroute.sh

بهینهسازی باتری Android میتواند فرایندهای پسزمینه طولانیمدت را متوقف کند. اگر انتظار دارید سرور آنلاین بماند، بهینهسازی باتری را برای Termux غیرفعال کنید.

دسترسی از دستگاههای دیگر

آدرس IP تلفن را در شبکه WiFi پیدا کنید:

ip addr show wlan0

سپس داشبورد را از دستگاه دیگری باز کنید:

http://PHONE_IP:20128

برای مثال:

http://192.168.1.50:20128

تلفن و کلاینت را در یک شبکه مورداعتماد نگه دارید. اگر OmniRoute را خارج از تلفن در دسترس قرار میدهید، کلیدهای API و احراز هویت داشبورد را فعال کنید.

دایرکتوری دادهها

OmniRoute بهطور پیشفرض دادهها را در دایرکتوری خانگی Termux ذخیره میکند و از همان رفتار مسیر داده سمت سرور در Linux پیروی میکند. برای قرار دادن پایگاه داده در مسیری مشخص:

export DATA_DIR="$HOME/.omniroute"
omniroute

محدودیتها

  • Electron در Termux اجرا نمیشود.
  • سینی سیستم یا یکپارچهسازی با دسکتاپ وجود ندارد.
  • این پیکربندی فقط برای سرور است: از داشبورد مرورگر استفاده کنید.
  • وابستگیهای بومی ممکن است به کامپایل محلی نیاز داشته باشند.
  • در دستگاههای Android با حافظه کم ممکن است لازم باشد تعداد درخواستهای همزمان را کاهش دهید.
  • قابلیتهای گواهی MITM/سیستم ممکن است به پیکربندی مخزن اعتماد در سطح Android و خارج از Termux نیاز داشته باشند.

عیبیابی

پلتفرم پشتیبانینشده: android (تمام درخواستها HTTP 500 برمیگردانند)

نشانه: اجرای omniroute / omniroute serve پیام ✔ OmniRoute is running! را نمایش میدهد، اما هر درخواست داشبورد یا API یک پاسخ خام 500 Internal Server Error برمیگرداند. فایل ~/.omniroute/logs/application/app.log خالی میماند، اجرای APP_LOG_LEVEL=debug اطلاعات مفیدی نمایش نمیدهد و بدنه پاسخ متنی ساده (Internal Server Error) و بدون جزئیات JSON است.

علت: برخی بیلدهای Termux/Node مقدار process.platform === "android" را گزارش میکنند. تابع getCacheDirectory() در Next.js از این پلتفرم پشتیبانی نمیکند: این تابع به وجود قبلی ~/.cache (یا یک دایرکتوری موقت عمومی) نیاز دارد؛ در غیر این صورت، هنگام بارگذاری قلاب ابزارسازی با خطای زیر مواجه میشود:

Error: An error occurred while loading instrumentation hook: Unsupported platform: android

از آنجا که قلاب هرگز بارگذاری نمیشود، ثبت گزارش نیز آغاز نمیشود — در نتیجه علت خطای 500 کاملاً غیرقابلتشخیص به نظر میرسد. OmniRoute پیش از شروع Next.js در نقطه ورود CLI، دایرکتوری ~/.cache را ایجاد میکند (و اگر XDG_CACHE_HOME تنظیم نشده باشد، آن را تنظیم میکند) تا این بررسی در Android/Termux موفق شود.

راهحل پشتیبانیشده (بدون وصلهکردن بسته):

mkdir -p ~/.cache
omniroute serve

در بیلدهای فعلی OmniRoute، رابط CLI این کار را بهطور خودکار در Android/Termux انجام میدهد — پس از اجرای تازه npx -y omniroute@latest / نصب سراسری، نباید به انجام دستی این مرحله نیاز باشد. اگر پس از ارتقا همچنان این خطا را مشاهده میکنید، یکبار ~/.cache را مطابق بالا ایجاد کرده و برنامه را مجدداً راهاندازی کنید.

برای اجبار مقدار process.platform = "linux"، فایل dist/server.js را وصله نکنید. چنین وصلهای با هر نصب مجدد/ارتقا بازنویسی میشود و پس از ایجاد دایرکتوری کش، غیرضروری است.

خطاهای ساخت better-sqlite3

زنجیرهابزار ساخت Termux را نصب کنید:

pkg install nodejs python build-essential

سپس دوباره اجرا کنید:

npx -y omniroute@latest

پورت از قبل در حال استفاده است

بررسی کنید چه چیزی روی پورت پیشفرض در حال گوشدادن است:

ss -ltnp | grep 20128

فرایند قدیمی را متوقف کنید:

pkill -f omniroute

داشبورد از دستگاه دیگری قابل دسترسی نیست

مطمئن شوید هر دو دستگاه به یک شبکه WiFi متصل هستند، سپس از داخل Termux آزمایش کنید:

curl http://localhost:20128

اگر دسترسی محلی کار میکند اما دسترسی LAN برقرار نیست، جداسازی دستگاهها در hotspot/WiFi و هرگونه نمایه فایروال یا VPN روی تلفن را بررسی کنید.