# Termux Headless Setup (தமிழ்) 🌐 **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) · 🇮🇳 [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) · 🇳🇬 [yo](../../../yo/docs/guides/TERMUX_GUIDE.md) · 🇨🇳 [zh-CN](../../../zh-CN/docs/guides/TERMUX_GUIDE.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/guides/TERMUX_GUIDE.md) --- OmniRoute-ஐ Termux மூலம் Android-இல் தலைப்பில்லா சேவையகமாக இயக்கலாம். Electron டெஸ்க்டாப் செயலி Termux-இல் ஆதரிக்கப்படவில்லை. ஆனால் வலை டாஷ்போர்டும் OpenAI-இணக்கமான API-யும் உள்ளூர் உலாவியிலிருந்தோ அதே பிணையத்திலுள்ள பிற சாதனங்களிலிருந்தோ செயல்படும். ## முன்நிபந்தனைகள் F-Droid அல்லது GitHub வெளியீடுகளிலிருந்து Termux-ஐ நிறுவவும். பின்னர் தொகுப்புகளைப் புதுப்பித்து, `better-sqlite3` போன்ற நேட்டிவ் சார்புகளுக்குத் தேவையான உருவாக்கக் கருவிகளை நிறுவவும். ```bash pkg update pkg upgrade pkg install nodejs python build-essential git ``` > **Node.js பதிப்பு:** OmniRoute-க்கு Node `>=22.22.2 <23 || >=24.0.0 <27` தேவை (`package.json` / `SUPPORTED_NODE_RANGE`-இல் உள்ள `engines` உடன் பொருந்துகிறது). Termux-இன் `nodejs-lts` பொதுவாக Node 20 LTS-ஐ வழங்குகிறது; அது **இனி ஆதரிக்கப்படுவதில்லை** — அதற்குப் பதிலாக `pkg install nodejs` (தற்போதைய பதிப்பு) என்பதை நிறுவி, `node --version` என்பது 22.x/24.x+ வரிசையைக் காட்டுகிறதா என்பதைச் சரிபார்க்கவும். நேட்டிவ் தொகுப்பைத் தொகுப்பதில் தோல்வி ஏற்பட்டால், மேலே உள்ள `pkg install` கட்டளையை மீண்டும் இயக்கி, பின்னர் OmniRoute நிறுவலை மீண்டும் முயற்சிக்கவும். ## நிறுவல் சமீபத்தில் வெளியிடப்பட்ட தொகுப்பை நேரடியாக இயக்கவும்: ```bash npx -y omniroute@latest ``` இதை உலகளாவிய முறையிலும் நிறுவலாம்: ```bash npm install -g omniroute omniroute ``` ## இயக்குதல் OmniRoute-ஐ தலைப்பில்லா சேவையகப் பயன்முறையில் தொடங்கவும்: ```bash omniroute ``` அல்லது: ```bash npx omniroute ``` டாஷ்போர்டு பின்வரும் முகவரியில் கோரிக்கைகளைக் கேட்கிறது: ```text http://localhost:20128 ``` அந்த URL-ஐ Android உலாவியில் திறக்கவும். Termux-க்குள் கிளையண்டுகளை இயக்கினால், OpenAI-இணக்கமான அடிப்படை URL-ஆக அதே ஹோஸ்டையும் போர்ட்டையும் பயன்படுத்தவும். ## பின்னணி இயக்கம் எளிய பின்னணி செயல்முறைக்கு: ```bash nohup omniroute > omniroute.log 2>&1 & ``` அதை நிறுத்த: ```bash pkill -f omniroute ``` சாதனம் துவங்கிய பிறகு தானாகத் தொடங்குவதற்கு, Termux:Boot துணை நிரலை நிறுவி, ஒரு துவக்க ஸ்கிரிப்டை உருவாக்கவும்: ```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 ``` Android பேட்டரி மேம்படுத்தல் நீண்ட நேரம் இயங்கும் பின்னணி செயல்முறைகளை நிறுத்தக்கூடும். சேவையகம் தொடர்ந்து இணையத்தில் இருக்க வேண்டுமெனில், Termux-க்கான பேட்டரி மேம்படுத்தலை முடக்கவும். ## பிற சாதனங்களிலிருந்து அணுகுதல் WiFi பிணையத்தில் தொலைபேசியின் IP முகவரியைக் கண்டறியவும்: ```bash ip addr show wlan0 ``` பின்னர் மற்றொரு சாதனத்திலிருந்து டாஷ்போர்டைத் திறக்கவும்: ```text http://PHONE_IP:20128 ``` எடுத்துக்காட்டாக: ```text http://192.168.1.50:20128 ``` தொலைபேசியையும் கிளையண்டையும் ஒரே நம்பகமான பிணையத்தில் வைத்திருக்கவும். OmniRoute-ஐ தொலைபேசிக்கு வெளியே அணுகக்கூடியதாக மாற்றினால், API விசைகளையும் டாஷ்போர்டு அங்கீகாரத்தையும் இயக்கவும். ## தரவு அடைவு இயல்புநிலையில், Linux-இல் பயன்படுத்தப்படும் அதே சேவையகப் பக்கத் தரவுப் பாதைச் செயல்பாட்டைப் பின்பற்றி, OmniRoute தரவை Termux முகப்பு அடைவின் கீழ் சேமிக்கிறது. தரவுத்தளத்தைத் தெளிவாகக் குறிப்பிடப்பட்ட ஓர் இடத்தில் வைக்க: ```bash export DATA_DIR="$HOME/.omniroute" omniroute ``` ## வரம்புகள் - Electron, Termux-இல் இயங்காது. - கணினித் தட்டு அல்லது டெஸ்க்டாப் ஒருங்கிணைப்பு எதுவும் இல்லை. - இந்த அமைப்பு சேவையகத்திற்கானது மட்டுமே: உலாவி டாஷ்போர்டைப் பயன்படுத்தவும். - நேட்டிவ் சார்புகளுக்கு உள்ளூர்த் தொகுப்பு தேவைப்படலாம். - குறைந்த நினைவகமுள்ள Android சாதனங்களில் ஒரே நேரத்தில் குறைவான கோரிக்கைகளைப் பயன்படுத்த வேண்டியிருக்கலாம். - MITM/கணினிச் சான்றிதழ் அம்சங்களுக்கு Termux-க்கு வெளியே Android-நிலை நம்பகச் சான்றிதழ் சேமிப்பகப் பணிகள் தேவைப்படலாம். ## சிக்கல் தீர்வு ### ஆதரிக்கப்படாத இயங்குதளம்: android (ஒவ்வொரு கோரிக்கையும் HTTP 500-ஐ வழங்குகிறது) **அறிகுறி:** `omniroute` / `omniroute serve` என்பது `✔ OmniRoute is running!` என்று அச்சிடுகிறது. ஆனால் ஒவ்வொரு டாஷ்போர்டு அல்லது API கோரிக்கையும் வெறும் `500 Internal Server Error` பதிலை வழங்குகிறது. `~/.omniroute/logs/application/app.log` காலியாகவே இருக்கும், `APP_LOG_LEVEL=debug` பயனுள்ள எதையும் அச்சிடாது, மேலும் பதிலின் உடல் JSON விவரங்கள் இல்லாத சாதாரண உரையாக (`Internal Server Error`) இருக்கும். **காரணம்:** சில Termux/Node உருவாக்கங்கள் `process.platform === "android"` எனத் தெரிவிக்கின்றன. Next.js `getCacheDirectory()` அந்த இயங்குதளத்தைக் கையாளாது: `~/.cache` (அல்லது பொதுவான tmp அடைவு) _ஏற்கனவே_ இருக்க வேண்டும்; இல்லையெனில், instrumentation hook-ஐ ஏற்றும்போது பின்வரும் பிழையுடன் தோல்வியடையும்: ```text Error: An error occurred while loading instrumentation hook: Unsupported platform: android ``` hook ஒருபோதும் ஏற்றப்படாததால், பதிவிடுதலும் தொடங்காது — இதனால் 500 பிழையைக் கண்டறிவது முற்றிலும் சாத்தியமற்றது போலத் தோன்றும். Android/Termux-இல் இந்தச் சோதனை வெற்றிபெறுவதற்காக, Next.js தொடங்குவதற்கு முன் CLI நுழைவுப் புள்ளியில் OmniRoute `~/.cache`-ஐ உருவாக்குகிறது (மேலும் `XDG_CACHE_HOME` அமைக்கப்படாதபோது அதை அமைக்கிறது). **ஆதரிக்கப்படும் தீர்வு (தொகுப்பைத் திருத்தத் தேவையில்லை):** ```bash mkdir -p ~/.cache omniroute serve ``` தற்போதைய OmniRoute உருவாக்கங்களில், Android/Termux-இல் CLI இதைத் தானாகவே செய்கிறது — புதிய `npx -y omniroute@latest` / உலகளாவிய நிறுவலுக்கு இந்தக் கைமுறை நடவடிக்கை தேவைப்படக்கூடாது. மேம்படுத்திய பிறகும் பிழை தொடர்ந்தால், மேலே காட்டியவாறு `~/.cache`-ஐ ஒருமுறை உருவாக்கி, மீண்டும் தொடங்கவும். `process.platform = "linux"` எனக் கட்டாயப்படுத்துவதற்காக `dist/server.js`-ஐத் திருத்த **வேண்டாம்**. ஒவ்வொரு மறுநிறுவல்/மேம்படுத்தலின்போதும் இவ்வகைத் தொகுப்புத் திருத்தம் மேலெழுதப்படும்; cache அடைவு உருவான பிறகு இது தேவையற்றது. ### better-sqlite3 உருவாக்கப் பிழைகள் Termux உருவாக்கக் கருவித்தொகுப்பை நிறுவவும்: ```bash pkg install nodejs python build-essential ``` பின்னர் மீண்டும் இயக்கவும்: ```bash npx -y omniroute@latest ``` ### போர்ட் ஏற்கனவே பயன்பாட்டில் உள்ளது இயல்புநிலை போர்ட்டில் எது கோரிக்கைகளைக் கேட்கிறது என்பதைச் சரிபார்க்கவும்: ```bash ss -ltnp | grep 20128 ``` பழைய செயல்முறையை நிறுத்தவும்: ```bash pkill -f omniroute ``` ### மற்றொரு சாதனத்திலிருந்து டாஷ்போர்டை அணுக முடியவில்லை இரண்டு சாதனங்களும் ஒரே WiFi பிணையத்தில் உள்ளனவா என்பதைச் சரிபார்த்து, பின்னர் Termux-இலிருந்து சோதிக்கவும்: ```bash curl http://localhost:20128 ``` உள்ளூர் அணுகல் செயல்பட்டு, ஆனால் LAN அணுகல் செயல்படவில்லை என்றால், Android hotspot/WiFi தனிமைப்படுத்தலையும் தொலைபேசியிலுள்ள firewall அல்லது VPN சுயவிவரத்தையும் சரிபார்க்கவும்.