50 lines
1.9 KiB
Markdown
50 lines
1.9 KiB
Markdown
# Termux installation path
|
|
|
|
NexusOS is packaged so its Python runtime, memory database, playbooks, and
|
|
compiled web UI can run without a source checkout or Node.js. Inference is
|
|
configured separately through an Ollama-compatible HTTP endpoint; NexusOS does
|
|
not attempt to manage that remote process.
|
|
|
|
## Bootstrap
|
|
|
|
After `nexusos-ai` and a compatible Android `pydantic-core` wheel are published:
|
|
|
|
```bash
|
|
curl -fsSLO https://git.enderofwings.com/enderofwings/NexusOS/raw/branch/main/scripts/install-termux.sh
|
|
chmod +x install-termux.sh
|
|
NEXUS_ANDROID_WHEEL_INDEX=https://packages.example.invalid/android/simple \
|
|
./install-termux.sh
|
|
```
|
|
|
|
For a local release artifact, pass the wheel path or URL as the first argument:
|
|
|
|
```bash
|
|
NEXUS_ANDROID_WHEEL_INDEX=https://packages.example.invalid/android/simple \
|
|
./scripts/install-termux.sh ./dist/nexusos_ai-1.0.0-py3-none-any.whl
|
|
```
|
|
|
|
Then configure inference and serve the UI:
|
|
|
|
```bash
|
|
nexus provider use remote --url http://192.168.1.20:11434
|
|
nexus serve
|
|
termux-open-url http://127.0.0.1:8000
|
|
```
|
|
|
|
## Native wheel gate
|
|
|
|
Current Termux Python is 3.14, so Pydantic 1 is not a safe fallback. Pydantic 2
|
|
depends on the Rust-based `pydantic-core`. PyPI publishes Linux, macOS, Windows,
|
|
and WebAssembly wheels but no Android wheel, while the current Termux Rust
|
|
package cannot build common Rust extensions on-device.
|
|
|
|
The bootstrap script therefore requires a binary `pydantic-core` and accepts a
|
|
trusted PEP 503 wheel index through `NEXUS_ANDROID_WHEEL_INDEX`. It fails early
|
|
with the detected Python ABI and CPU when that artifact is missing. The release
|
|
pipeline can publish the pure NexusOS wheel today; an Android wheel job/index is
|
|
the remaining prerequisite for a one-line public Termux install.
|
|
|
|
Do not work around this by downloading an unverified binary or by exposing the
|
|
NexusOS server with `--allow-lan`. Keep the UI on loopback and let the Android
|
|
browser connect to `127.0.0.1`.
|