# Termux Headless Setup (Yorùbá) 🌐 **Languages:** 🇺🇸 [English](../../../../guides/TERMUX_GUIDE.md) · 🇪🇹 [am](../../../am/docs/guides/TERMUX_GUIDE.md) · 🇸🇦 [ar](../../../ar/docs/guides/TERMUX_GUIDE.md) · 🇦🇿 [az](../../../az/docs/guides/TERMUX_GUIDE.md) · 🇧🇬 [bg](../../../bg/docs/guides/TERMUX_GUIDE.md) · 🇧🇩 [bn](../../../bn/docs/guides/TERMUX_GUIDE.md) · 🇧🇦 [bs](../../../bs/docs/guides/TERMUX_GUIDE.md) · 🇨🇿 [cs](../../../cs/docs/guides/TERMUX_GUIDE.md) · 🇩🇰 [da](../../../da/docs/guides/TERMUX_GUIDE.md) · 🇩🇪 [de](../../../de/docs/guides/TERMUX_GUIDE.md) · 🇬🇷 [el](../../../el/docs/guides/TERMUX_GUIDE.md) · 🇪🇸 [es](../../../es/docs/guides/TERMUX_GUIDE.md) · 🇪🇪 [et](../../../et/docs/guides/TERMUX_GUIDE.md) · 🇮🇷 [fa](../../../fa/docs/guides/TERMUX_GUIDE.md) · 🇫🇮 [fi](../../../fi/docs/guides/TERMUX_GUIDE.md) · 🇫🇷 [fr](../../../fr/docs/guides/TERMUX_GUIDE.md) · 🇮🇪 [ga](../../../ga/docs/guides/TERMUX_GUIDE.md) · 🇮🇳 [gu](../../../gu/docs/guides/TERMUX_GUIDE.md) · 🇳🇬 [ha](../../../ha/docs/guides/TERMUX_GUIDE.md) · 🇮🇱 [he](../../../he/docs/guides/TERMUX_GUIDE.md) · 🇮🇳 [hi](../../../hi/docs/guides/TERMUX_GUIDE.md) · 🇭🇷 [hr](../../../hr/docs/guides/TERMUX_GUIDE.md) · 🇭🇺 [hu](../../../hu/docs/guides/TERMUX_GUIDE.md) · 🇦🇲 [hy](../../../hy/docs/guides/TERMUX_GUIDE.md) · 🇮🇩 [id](../../../id/docs/guides/TERMUX_GUIDE.md) · 🇳🇬 [ig](../../../ig/docs/guides/TERMUX_GUIDE.md) · 🇮🇹 [it](../../../it/docs/guides/TERMUX_GUIDE.md) · 🇯🇵 [ja](../../../ja/docs/guides/TERMUX_GUIDE.md) · 🇬🇪 [ka](../../../ka/docs/guides/TERMUX_GUIDE.md) · 🇰🇭 [km](../../../km/docs/guides/TERMUX_GUIDE.md) · 🇮🇳 [kn](../../../kn/docs/guides/TERMUX_GUIDE.md) · 🇰🇷 [ko](../../../ko/docs/guides/TERMUX_GUIDE.md) · 🇱🇹 [lt](../../../lt/docs/guides/TERMUX_GUIDE.md) · 🇱🇻 [lv](../../../lv/docs/guides/TERMUX_GUIDE.md) · 🇮🇳 [ml](../../../ml/docs/guides/TERMUX_GUIDE.md) · 🇮🇳 [mr](../../../mr/docs/guides/TERMUX_GUIDE.md) · 🇲🇾 [ms](../../../ms/docs/guides/TERMUX_GUIDE.md) · 🇲🇹 [mt](../../../mt/docs/guides/TERMUX_GUIDE.md) · 🇲🇲 [my](../../../my/docs/guides/TERMUX_GUIDE.md) · 🇳🇵 [ne](../../../ne/docs/guides/TERMUX_GUIDE.md) · 🇳🇱 [nl](../../../nl/docs/guides/TERMUX_GUIDE.md) · 🇳🇴 [no](../../../no/docs/guides/TERMUX_GUIDE.md) · 🇮🇳 [or](../../../or/docs/guides/TERMUX_GUIDE.md) · 🇮🇳 [pa](../../../pa/docs/guides/TERMUX_GUIDE.md) · 🇵🇭 [phi](../../../phi/docs/guides/TERMUX_GUIDE.md) · 🇵🇱 [pl](../../../pl/docs/guides/TERMUX_GUIDE.md) · 🇵🇹 [pt](../../../pt/docs/guides/TERMUX_GUIDE.md) · 🇧🇷 [pt-BR](../../../pt-BR/docs/guides/TERMUX_GUIDE.md) · 🇷🇴 [ro](../../../ro/docs/guides/TERMUX_GUIDE.md) · 🇷🇺 [ru](../../../ru/docs/guides/TERMUX_GUIDE.md) · 🇱🇰 [si](../../../si/docs/guides/TERMUX_GUIDE.md) · 🇸🇰 [sk](../../../sk/docs/guides/TERMUX_GUIDE.md) · 🇸🇮 [sl](../../../sl/docs/guides/TERMUX_GUIDE.md) · 🇷🇸 [sr](../../../sr/docs/guides/TERMUX_GUIDE.md) · 🇸🇪 [sv](../../../sv/docs/guides/TERMUX_GUIDE.md) · 🇰🇪 [sw](../../../sw/docs/guides/TERMUX_GUIDE.md) · 🇮🇳 [ta](../../../ta/docs/guides/TERMUX_GUIDE.md) · 🇮🇳 [te](../../../te/docs/guides/TERMUX_GUIDE.md) · 🇹🇭 [th](../../../th/docs/guides/TERMUX_GUIDE.md) · 🇹🇷 [tr](../../../tr/docs/guides/TERMUX_GUIDE.md) · 🇺🇦 [uk-UA](../../../uk-UA/docs/guides/TERMUX_GUIDE.md) · 🇵🇰 [ur](../../../ur/docs/guides/TERMUX_GUIDE.md) · 🇺🇿 [uz](../../../uz/docs/guides/TERMUX_GUIDE.md) · 🇻🇳 [vi](../../../vi/docs/guides/TERMUX_GUIDE.md) · 🇨🇳 [zh-CN](../../../zh-CN/docs/guides/TERMUX_GUIDE.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/guides/TERMUX_GUIDE.md) --- OmniRoute lè ṣiṣẹ́ gẹ́gẹ́ bí olupín aláìní ojú-iṣẹ́ lórí Android nípasẹ̀ Termux. Ìṣàfilọ́lẹ̀ tabili Electron kò ní àtìlẹ́yìn nínú Termux, ṣùgbọ́n pátákó ìṣàkóso wẹ́ẹ̀bù àti API tó bá OpenAI mu ń ṣiṣẹ́ láti inú aṣàwákiri abẹ́lẹ̀ tàbí láti àwọn ẹ̀rọ míì tó wà lórí nẹ́tíwọ́ọ̀kì kan náà. ## Àwọn Ohun Àkọ́kọ́ Tó Nílò Fi Termux sori ẹrọ láti F-Droid tàbí àwọn ìtújáde GitHub, lẹ́yìn náà ṣe ìmúdójúìwọ̀n àwọn package kí o sì fi àwọn irinṣẹ́ ìkọ́lé tí àwọn dependency abinibi bíi `better-sqlite3` nílò sori ẹrọ. ```bash pkg update pkg upgrade pkg install nodejs python build-essential git ``` > **Ẹ̀yà Node.js:** OmniRoute nílò Node `>=22.22.2 <23 || >=24.0.0 <27` (ó bá `engines` nínú `package.json` / `SUPPORTED_NODE_RANGE` mu). `nodejs-lts` ti Termux sábà máa ń pèsè Node 20 LTS, èyí tí **kò ní àtìlẹ́yìn mọ́** — fi `pkg install nodejs` (ẹ̀yà lọ́wọ́lọ́wọ́) sori ẹrọ dípò rẹ̀, kí o sì ṣàyẹ̀wò pé `node --version` ń fi ìlà 22.x/24.x+ hàn. Tí ìkójọpọ̀ package abinibi bá kùnà, tún àṣẹ `pkg install` tó wà lókè ṣiṣẹ́, lẹ́yìn náà tún gbìyànjú láti fi OmniRoute sori ẹrọ. ## Fífi Sori Ẹrọ Ṣi package tuntun tí a ti tẹ̀jáde ṣiṣẹ́ tààrà: ```bash npx -y omniroute@latest ``` O tún lè fi í sori ẹrọ káàkiri gbogbo ètò: ```bash npm install -g omniroute omniroute ``` ## Ṣíṣe Bẹ̀rẹ̀ OmniRoute ní ipò olupín aláìní ojú-iṣẹ́: ```bash omniroute ``` tàbí: ```bash npx omniroute ``` Pátákó ìṣàkóso ń tẹ́tí sí: ```text http://localhost:20128 ``` Ṣí URL yẹn nínú aṣàwákiri Android. Tí o bá ń ṣiṣẹ́ àwọn client nínú Termux, lo host àti port kan náà gẹ́gẹ́ bí URL ìpìlẹ̀ tó bá OpenAI mu. ## Ṣíṣiṣẹ́ Ní Abẹ́lẹ̀ Fún process abẹ́lẹ̀ tó rọrùn: ```bash nohup omniroute > omniroute.log 2>&1 & ``` Láti dá a dúró: ```bash pkill -f omniroute ``` Fún ìbẹ̀rẹ̀ aládàáṣiṣẹ́ lẹ́yìn tí ẹ̀rọ bá tan, fi àfikún Termux:Boot sori ẹrọ, kí o sì ṣẹ̀dá script ìbẹ̀rẹ̀: ```bash 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 ``` Ìṣàpéye bátírì Android lè dá àwọn process abẹ́lẹ̀ tó ń ṣiṣẹ́ fún ìgbà pípẹ́ dúró. Pa ìṣàpéye bátírì fún Termux tí a bá retí pé olupín náà yóò máa wà lórí ayélujára. ## Ìráyè Láti Àwọn Ẹ̀rọ Míì Wá àdírẹ́sì IP fóònù náà lórí nẹ́tíwọ́ọ̀kì WiFi: ```bash ip addr show wlan0 ``` Lẹ́yìn náà, ṣí pátákó ìṣàkóso láti ẹ̀rọ míì: ```text http://PHONE_IP:20128 ``` Fún àpẹẹrẹ: ```text http://192.168.1.50:20128 ``` Jẹ́ kí fóònù àti client wà lórí nẹ́tíwọ́ọ̀kì kan náà tí o fọkàn tán. Tí o bá ṣí OmniRoute síta fóònù náà, mú àwọn API key àti ìfàṣẹsí pátákó ìṣàkóso ṣiṣẹ́. ## Àkọsílẹ̀ Data Nípa àìyípadà, OmniRoute ń tọ́jú data sábẹ́ àkọsílẹ̀ home ti Termux, ní títẹ̀lé ìhùwàsí ọ̀nà data ẹgbẹ́ olupín kan náà tí a ń lò lórí Linux. Láti fi database sí ibi pàtó: ```bash export DATA_DIR="$HOME/.omniroute" omniroute ``` ## Àwọn Ààlà - Electron kò ṣiṣẹ́ nínú Termux. - Kò sí system tray tàbí ìṣọ̀kan pẹ̀lú tabili. - Àgbékalẹ̀ yìí jẹ́ ti olupín nìkan: lo pátákó ìṣàkóso aṣàwákiri. - Àwọn dependency abinibi lè nílò ìkójọpọ̀ lórí ẹ̀rọ náà. - Àwọn ẹ̀rọ Android tí ìrántí wọn kéré lè nílò àwọn ìbéèrè alájọṣiṣẹ́ díẹ̀. - Àwọn ẹ̀ya MITM/ẹ̀rí ìdánimọ̀ ètò lè nílò iṣẹ́ lórí ibi ìpamọ́ ìgbẹ́kẹ̀lé Android níta Termux. ## Yíyanjú Ìṣòro ### Platform tí kò ní àtìlẹ́yìn: android (gbogbo ìbéèrè ń dá HTTP 500 padà) **Àmì:** `omniroute` / `omniroute serve` ń tẹ̀jáde `✔ OmniRoute is running!`, ṣùgbọ́n gbogbo ìbéèrè pátákó ìṣàkóso tàbí API ń dá `500 Internal Server Error` lásán padà. `~/.omniroute/logs/application/app.log` ṣì ṣófo, `APP_LOG_LEVEL=debug` kò tẹ ohunkóhun tó wúlò jáde, ara ìdáhùn náà sì jẹ́ ọ̀rọ̀ lásán (`Internal Server Error`) láìsí àlàyé JSON. **Okùnfà:** Àwọn build Termux/Node kan ń fi `process.platform === "android"` hàn. `getCacheDirectory()` ti Next.js kò bójú tó platform yẹn: ó nílò kí `~/.cache` (tàbí àkọsílẹ̀ tmp gbogbogbòò kan) ti wà _tẹ́lẹ̀_, bí bẹ́ẹ̀ kọ́, yóò kùnà nígbà tó ń ṣàkójọpọ̀ hook instrumentation pẹ̀lú: ```text Error: An error occurred while loading instrumentation hook: Unsupported platform: android ``` Nítorí pé hook náà kò kójọpọ̀ rárá, logging kò bẹ̀rẹ̀ — 500 náà dà bí ohun tí kò ṣeé ṣe àyẹ̀wò rẹ̀ rárá. OmniRoute ń ṣẹ̀dá `~/.cache` (ó sì ń ṣètò `XDG_CACHE_HOME` nígbà tí a kò bá ṣètò rẹ̀) nínú ibi ìwọlé CLI kí Next.js tó bẹ̀rẹ̀, kí àyẹ̀wò yìí lè ṣàṣeyọrí lórí Android/Termux. **Ojútùú tó ní àtìlẹ́yìn (láìṣe àtúnṣe package):** ```bash mkdir -p ~/.cache omniroute serve ``` Lórí àwọn build OmniRoute lọ́wọ́lọ́wọ́, CLI máa ń ṣe èyí fúnra rẹ̀ lórí Android/Termux — `npx -y omniroute@latest` tuntun / fífi sori ẹrọ káàkiri kò yẹ kí ó nílò ìgbésẹ̀ ọwọ́ yìí. Tí o bá ṣì ń rí àṣìṣe náà lẹ́yìn ìmúdójúìwọ̀n, ṣẹ̀dá `~/.cache` lẹ́ẹ̀kan gẹ́gẹ́ bí ó ṣe wà lókè, kí o sì tún un bẹ̀rẹ̀. **Má ṣe** ṣàtúnṣe `dist/server.js` láti fipá mú `process.platform = "linux"`. Irú àtúnṣe package bẹ́ẹ̀ ni a ó kọ lé lórí ní gbogbo ìgbà tí a bá tún fi package sori ẹrọ/tún un ṣe ìmúdójúìwọ̀n, kò sì pọn dandan lẹ́yìn tí àkọsílẹ̀ cache bá ti wà. ### Àwọn Àṣìṣe Ìkọ́lé better-sqlite3 Fi toolchain ìkọ́lé Termux sori ẹrọ: ```bash pkg install nodejs python build-essential ``` Lẹ́yìn náà tún èyí ṣiṣẹ́: ```bash npx -y omniroute@latest ``` ### Port Ti Wà Ní Ìlò Tẹ́lẹ̀ Ṣàyẹ̀wò ohun tó ń tẹ́tí sí port àìyípadà: ```bash ss -ltnp | grep 20128 ``` Dá process àtijọ́ náà dúró: ```bash pkill -f omniroute ``` ### A Kò Lè Dé Pátákó Ìṣàkóso Láti Ẹ̀rọ Míì Jẹ́rìí pé àwọn ẹ̀rọ méjèèjì wà lórí nẹ́tíwọ́ọ̀kì WiFi kan náà, lẹ́yìn náà ṣe àdánwò láti Termux: ```bash curl http://localhost:20128 ``` Tí ìráyè abẹ́lẹ̀ bá ń ṣiṣẹ́ ṣùgbọ́n ìráyè LAN kò ṣiṣẹ́, ṣàyẹ̀wò ìyàsọ́tọ̀ hotspot/WiFi Android àti firewall tàbí profaili VPN èyíkéyìí lórí fóònù náà.