# 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) · 🇸🇰 [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) · 🇳🇬 [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 මත headless සේවාදායකයක් ලෙස ධාවනය කළ හැක. 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` හි `engines` / `SUPPORTED_NODE_RANGE` සමඟ ගැළපේ). 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 headless සේවාදායක ප්රකාරයෙන් ආරම්භ කරන්න: ```bash omniroute ``` හෝ: ```bash npx omniroute ``` උපකරණ පුවරුව පහත ලිපිනයේ සවන් දෙයි: ```text http://localhost:20128 ``` Android බ්රවුසරයේ එම URL එක විවෘත කරන්න. ඔබ Termux තුළ සේවාලාභීන් ධාවනය කරන්නේ නම්, OpenAI-අනුකූල මූලික URL එක ලෙස එම ධාරකය සහ port එක භාවිත කරන්න. ## පසුබිම් ක්රියාත්මක කිරීම සරල පසුබිම් ක්රියාවලියක් සඳහා: ```bash nohup omniroute > omniroute.log 2>&1 & ``` එය නැවැත්වීමට: ```bash pkill -f omniroute ``` උපාංගය boot වීමෙන් පසු ස්වයංක්රීයව ආරම්භ කිරීමට, Termux:Boot add-on එක ස්ථාපනය කර boot script එකක් සාදන්න: ```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 යතුරු සහ උපකරණ පුවරු සත්යාපනය සක්රීය කරන්න. ## දත්ත නාමාවලිය පෙරනිමියෙන් OmniRoute, Linux මත භාවිත වන එම සේවාදායක-පාර්ශ්වීය දත්ත මාර්ග හැසිරීම අනුගමනය කරමින්, Termux home නාමාවලිය යටතේ දත්ත ගබඩා කරයි. දත්ත සමුදාය නිශ්චිත ස්ථානයක තැබීමට: ```bash export DATA_DIR="$HOME/.omniroute" omniroute ``` ## සීමාවන් - Electron, Termux තුළ ධාවනය නොවේ. - system tray එකක් හෝ ඩෙස්ක්ටොප් ඒකාබද්ධ කිරීමක් නොමැත. - මෙම සැකසුම සේවාදායකය සඳහා පමණි: බ්රවුසර උපකරණ පුවරුව භාවිත කරන්න. - ස්වදේශීය පරායත්තතා දේශීයව සම්පාදනය කිරීමට අවශ්ය විය හැක. - අඩු මතකයක් සහිත Android උපාංග සඳහා සමගාමී ඉල්ලීම් ගණන අඩු කිරීමට අවශ්ය විය හැක. - MITM/system සහතික විශේෂාංග සඳහා Termux වලින් පිටත Android මට්ටමේ trust-store කටයුතු අවශ්ය විය හැක. ## දෝෂ නිරාකරණය ### සහාය නොදක්වන වේදිකාව: android (සෑම ඉල්ලීමක්ම HTTP 500 ලබා දෙයි) **රෝග ලක්ෂණය:** `omniroute` / `omniroute serve` මඟින් `✔ OmniRoute is running!` මුද්රණය කරන නමුත්, සෑම උපකරණ පුවරු හෝ API ඉල්ලීමක්ම හිස් `500 Internal Server Error` ප්රතිචාරයක් ලබා දෙයි. `~/.omniroute/logs/application/app.log` හිස්ව පවතින අතර, `APP_LOG_LEVEL=debug` මඟින් ප්රයෝජනවත් කිසිවක් මුද්රණය නොකරයි, ප්රතිචාර body එක JSON විස්තර නොමැති plain text (`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 එක කිසිවිටෙක පූරණය නොවන බැවින් logging ආරම්භ නොවේ — එබැවින් 500 දෝෂය සම්පූර්ණයෙන්ම හඳුනාගත නොහැකි ලෙස පෙනේ. Android/Termux මත මෙම පරීක්ෂාව සාර්ථක වීමට, Next.js ආරම්භ වීමට පෙර CLI ප්රවේශ ලක්ෂ්යයේදී OmniRoute විසින් `~/.cache` සාදයි (සහ `XDG_CACHE_HOME` සකසා නොමැති විට එය සකසයි). **සහාය දක්වන විසඳුම (පැකේජය patch කිරීමකින් තොරව):** ```bash mkdir -p ~/.cache omniroute serve ``` වත්මන් OmniRoute ගොඩනැගීම්වලදී CLI එක Android/Termux මත මෙය ස්වයංක්රීයව සිදු කරයි — නව `npx -y omniroute@latest` / ගෝලීය ස්ථාපනයක් සඳහා මෙම අතින් කරන පියවර අවශ්ය නොවිය යුතුය. උත්ශ්රේණි කිරීමෙන් පසුවත් ඔබට දෝෂය පෙනේ නම්, ඉහත පරිදි `~/.cache` එක් වරක් සාදා නැවත ආරම්භ කරන්න. `process.platform = "linux"` ලෙස බලහත්කාරයෙන් සැකසීමට `dist/server.js` patch **නොකරන්න**. එවැනි පැකේජ patch එකක් සෑම නැවත ස්ථාපනයකදීම/උත්ශ්රේණි කිරීමකදීම නැවත ලියවෙන අතර cache නාමාවලිය පවතින විට එය අනවශ්ය වේ. ### better-sqlite3 ගොඩනැගීමේ දෝෂ Termux ගොඩනැගීමේ මෙවලම් කට්ටලය ස්ථාපනය කරන්න: ```bash pkg install nodejs python build-essential ``` ඉන්පසු නැවත ධාවනය කරන්න: ```bash npx -y omniroute@latest ``` ### Port එක දැනටමත් භාවිතයේ ඇත පෙරනිමි port එකේ සවන් දෙන්නේ කුමක්දැයි පරීක්ෂා කරන්න: ```bash ss -ltnp | grep 20128 ``` පැරණි ක්රියාවලිය නවත්වන්න: ```bash pkill -f omniroute ``` ### වෙනත් උපාංගයකින් උපකරණ පුවරුවට ළඟා විය නොහැක උපාංග දෙකම එකම WiFi ජාලයේ ඇති බව තහවුරු කර, ඉන්පසු Termux වෙතින් පරීක්ෂා කරන්න: ```bash curl http://localhost:20128 ``` දේශීය ප්රවේශය ක්රියා කරන නමුත් LAN ප්රවේශය ක්රියා නොකරන්නේ නම්, Android hotspot/WiFi හුදකලා කිරීම සහ දුරකථනයේ ඇති firewall හෝ VPN පැතිකඩ පරීක්ෂා කරන්න.