# Termux Headless Setup (Slovenščina) 🌐 **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) · 🇷🇸 [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 se lahko izvaja kot brezglavi strežnik v sistemu Android prek Termuxa. Namizna aplikacija Electron v Termuxu ni podprta, vendar spletna nadzorna plošča in API, združljiv z OpenAI, delujeta v lokalnem brskalniku ali v drugih napravah v istem omrežju. ## Predpogoji Namestite Termux iz trgovine F-Droid ali iz izdaj na GitHubu, nato posodobite pakete in namestite orodja za gradnjo, ki jih zahtevajo izvorne odvisnosti, kot je `better-sqlite3`. ```bash pkg update pkg upgrade pkg install nodejs python build-essential git ``` > **Različica Node.js:** OmniRoute zahteva Node `>=22.22.2 <23 || >=24.0.0 <27` (ustreza `engines` v `package.json` / `SUPPORTED_NODE_RANGE`). Termuxov `nodejs-lts` običajno vsebuje Node 20 LTS, ki **ni več podprt** — namesto tega namestite `pkg install nodejs` (trenutna različica) in preverite, ali `node --version` izpiše različico iz veje 22.x/24.x+. Če prevajanje izvornih paketov ne uspe, znova zaženite zgornji ukaz `pkg install` in nato ponovite namestitev OmniRoute. ## Namestitev Neposredno zaženite najnovejši objavljeni paket: ```bash npx -y omniroute@latest ``` Namestite ga lahko tudi globalno: ```bash npm install -g omniroute omniroute ``` ## Zagon Zaženite OmniRoute v brezglavem strežniškem načinu: ```bash omniroute ``` ali: ```bash npx omniroute ``` Nadzorna plošča posluša na naslovu: ```text http://localhost:20128 ``` Ta URL odprite v brskalniku sistema Android. Če odjemalce izvajate znotraj Termuxa, za osnovni URL, združljiv z OpenAI, uporabite istega gostitelja in vrata. ## Izvajanje v ozadju Za preprost proces v ozadju: ```bash nohup omniroute > omniroute.log 2>&1 & ``` Za njegovo zaustavitev: ```bash pkill -f omniroute ``` Za samodejni zagon po zagonu naprave namestite dodatek Termux:Boot in ustvarite zagonski skript: ```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 ``` Androidova optimizacija porabe baterije lahko zaustavi dolgotrajne procese v ozadju. Če mora strežnik ostati dosegljiv, onemogočite optimizacijo porabe baterije za Termux. ## Dostop iz drugih naprav Poiščite naslov IP telefona v omrežju WiFi: ```bash ip addr show wlan0 ``` Nato odprite nadzorno ploščo iz druge naprave: ```text http://PHONE_IP:20128 ``` Na primer: ```text http://192.168.1.50:20128 ``` Telefon in odjemalec naj bosta v istem zaupanja vrednem omrežju. Če OmniRoute izpostavite zunaj telefona, omogočite ključe API in preverjanje pristnosti za nadzorno ploščo. ## Podatkovni imenik OmniRoute privzeto shranjuje podatke v Termuxovem domačem imeniku in uporablja enako obnašanje poti do strežniških podatkov kot v Linuxu. Če želite podatkovno zbirko shraniti na izrecno določeno mesto: ```bash export DATA_DIR="$HOME/.omniroute" omniroute ``` ## Omejitve - Electron se v Termuxu ne izvaja. - Sistemska vrstica in integracija z namizjem nista na voljo. - Ta nastavitev je namenjena samo strežniku: uporabljajte nadzorno ploščo v brskalniku. - Izvorne odvisnosti bo morda treba prevesti lokalno. - V napravah Android z malo pomnilnika bo morda treba zmanjšati število sočasnih zahtev. - Funkcije MITM/sistemskih potrdil lahko zahtevajo delo s shrambo zaupanja na ravni Androida zunaj Termuxa. ## Odpravljanje težav ### Nepodprta platforma: android (vsaka zahteva vrne HTTP 500) **Simptom:** `omniroute` / `omniroute serve` izpiše `✔ OmniRoute is running!`, vendar vsaka zahteva nadzorne plošče ali API-ja vrne goli odgovor `500 Internal Server Error`. Datoteka `~/.omniroute/logs/application/app.log` ostane prazna, `APP_LOG_LEVEL=debug` ne izpiše ničesar uporabnega, telo odgovora pa je navadno besedilo (`Internal Server Error`) brez podrobnosti JSON. **Vzrok:** Nekatere gradnje Termux/Node sporočijo `process.platform === "android"`. Funkcija `getCacheDirectory()` ogrodja Next.js te platforme ne obravnava: zahteva, da `~/.cache` (ali splošen začasni imenik) _že_ obstaja, sicer med nalaganjem instrumentacijskega kavlja ne uspe in prikaže: ```text Error: An error occurred while loading instrumentation hook: Unsupported platform: android ``` Ker se kavelj nikoli ne naloži, se beleženje dnevnikov nikoli ne začne — zato je napako 500 videti povsem nemogoče diagnosticirati. OmniRoute v vstopni točki CLI pred zagonom ogrodja Next.js ustvari `~/.cache` (in nastavi `XDG_CACHE_HOME`, če ni nastavljen), tako da je to preverjanje v sistemu Android/Termux uspešno. **Podprta rešitev (brez spreminjanja paketa):** ```bash mkdir -p ~/.cache omniroute serve ``` V trenutnih gradnjah OmniRoute CLI to v sistemu Android/Termux izvede samodejno — pri svežem zagonu `npx -y omniroute@latest` oziroma globalni namestitvi ročni korak ne bi smel biti potreben. Če se napaka po nadgradnji še vedno pojavlja, enkrat ustvarite `~/.cache`, kot je prikazano zgoraj, in znova zaženite storitev. **Ne** spreminjajte datoteke `dist/server.js`, da bi vsilili `process.platform = "linux"`. Takšna sprememba paketa se prepiše ob vsaki ponovni namestitvi ali nadgradnji in ni potrebna, ko imenik predpomnilnika obstaja. ### Napake pri gradnji better-sqlite3 Namestite Termuxovo verigo orodij za gradnjo: ```bash pkg install nodejs python build-essential ``` Nato znova zaženite: ```bash npx -y omniroute@latest ``` ### Vrata so že v uporabi Preverite, kaj posluša na privzetih vratih: ```bash ss -ltnp | grep 20128 ``` Zaustavite stari proces: ```bash pkill -f omniroute ``` ### Nadzorna plošča ni dosegljiva iz druge naprave Preverite, ali sta obe napravi v istem omrežju WiFi, nato izvedite preizkus iz Termuxa: ```bash curl http://localhost:20128 ``` Če lokalni dostop deluje, dostop iz omrežja LAN pa ne, preverite izolacijo dostopne točke/omrežja WiFi v sistemu Android ter morebitni požarni zid ali profil VPN v telefonu.