Files
OmniRoute/docs/i18n/th/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

15 KiB

Termux Headless Setup (ไทย)

🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 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 · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW


OmniRoute สามารถทำงานเป็นเซิร์ฟเวอร์แบบ headless บน Android ผ่าน Termux ได้ แอปเดสก์ท็อป Electron ไม่รองรับใน Termux แต่แดชบอร์ดเว็บและ API ที่เข้ากันได้กับ OpenAI สามารถใช้งานได้จากเบราว์เซอร์ภายในเครื่องหรือจากอุปกรณ์อื่นในเครือข่ายเดียวกัน

ข้อกำหนดเบื้องต้น

ติดตั้ง Termux จาก F-Droid หรือ GitHub releases จากนั้นอัปเดตแพ็กเกจและติดตั้งเครื่องมือสำหรับบิลด์ที่จำเป็นต่อ dependency แบบ native เช่น 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 ขึ้นไป

หากการคอมไพล์แพ็กเกจแบบ native ล้มเหลว ให้เรียกใช้คำสั่ง pkg install ข้างต้นอีกครั้ง แล้วลองติดตั้ง OmniRoute ใหม่

การติดตั้ง

เรียกใช้แพ็กเกจล่าสุดที่เผยแพร่โดยตรง:

npx -y omniroute@latest

คุณยังสามารถติดตั้งแบบ global ได้:

npm install -g omniroute
omniroute

การเรียกใช้

เริ่ม OmniRoute ในโหมดเซิร์ฟเวอร์แบบ headless:

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 key และการยืนยันตัวตนสำหรับแดชบอร์ด

ไดเรกทอรีข้อมูล

ตามค่าเริ่มต้น OmniRoute จะจัดเก็บข้อมูลไว้ภายใต้ไดเรกทอรี home ของ Termux โดยใช้ลักษณะการทำงานของพาธข้อมูลฝั่งเซิร์ฟเวอร์เช่นเดียวกับบน Linux หากต้องการจัดเก็บฐานข้อมูลไว้ในตำแหน่งที่ระบุอย่างชัดเจน:

export DATA_DIR="$HOME/.omniroute"
omniroute

ข้อจำกัด

  • Electron ไม่สามารถทำงานใน Termux ได้
  • ไม่มี system tray หรือการผสานรวมกับเดสก์ท็อป
  • การตั้งค่านี้เป็นแบบเซิร์ฟเวอร์เท่านั้น: ให้ใช้งานผ่านแดชบอร์ดบนเบราว์เซอร์
  • dependency แบบ native อาจต้องคอมไพล์ภายในเครื่อง
  • อุปกรณ์ Android ที่มีหน่วยความจำน้อยอาจต้องลดจำนวนคำขอที่ทำงานพร้อมกัน
  • ฟีเจอร์ใบรับรอง MITM/ระบบอาจต้องกำหนดค่า trust store ระดับ 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 (หรือไดเรกทอรี tmp ทั่วไป) อยู่ ก่อนแล้ว มิฉะนั้นจะล้มเหลวขณะโหลด instrumentation hook พร้อมข้อความ:

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

เนื่องจาก hook ไม่เคยโหลด ระบบบันทึก log จึงไม่เริ่มทำงาน ทำให้ข้อผิดพลาด 500 ดูเหมือนไม่สามารถวินิจฉัยได้เลย OmniRoute จะสร้าง ~/.cache (และตั้งค่า XDG_CACHE_HOME เมื่อยังไม่ได้กำหนด) ในจุดเริ่มต้นของ CLI ก่อนที่ Next.js จะเริ่มทำงาน เพื่อให้การตรวจสอบนี้สำเร็จบน Android/Termux

วิธีแก้ไขที่รองรับ (ไม่ต้องแก้ไขแพ็กเกจ):

mkdir -p ~/.cache
omniroute serve

ในบิลด์ OmniRoute ปัจจุบัน CLI จะดำเนินการนี้โดยอัตโนมัติบน Android/Termux — การติดตั้งใหม่ด้วย npx -y omniroute@latest / แบบ global ไม่ควรต้องทำขั้นตอนนี้ด้วยตนเอง หากคุณยังพบข้อผิดพลาดหลังจากอัปเกรด ให้สร้าง ~/.cache หนึ่งครั้งตามข้างต้นแล้วเริ่มใหม่

อย่า แก้ไข dist/server.js เพื่อบังคับให้ process.platform = "linux" การแก้ไขแพ็กเกจในลักษณะดังกล่าวจะถูกเขียนทับทุกครั้งที่ติดตั้งใหม่หรืออัปเกรด และไม่จำเป็นเมื่อมีไดเรกทอรีแคชแล้ว

ข้อผิดพลาดในการบิลด์ better-sqlite3

ติดตั้ง toolchain สำหรับบิลด์ของ 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 บน Android รวมถึงไฟร์วอลล์หรือโปรไฟล์ VPN บนโทรศัพท์