Android Installation

Install RTW in Termux on an Android phone or tablet.

Status: available from source. Tested end to end on a Redmi Pad 2 Pro (Android 16): the one-command GitHub install, serving every section (including the 8.4 GB Arabic Wikipedia), copying content from a Mac over USB, other devices opening the library — both on the same Wi-Fi and over the tablet’s own hotspot — and downloading knowledge packs directly on the tablet with rtw fetch. Please report what works on your device.

RTW runs inside Termux, a terminal app for Android. There is no root, no custom firmware and no separate RTW app.

Requirements

  • A 64-bit ARM device (arm64-v8a)
  • Termux. The F-Droid / GitHub build supports Android 7 and newer. The Google Play build we tested requires Android 12L or newer.
  • Free storage for content
  • About 4 GB of RAM or more is comfortable

Install from GitHub (no computer)

Open Termux and run:

bash -c "$(curl -fsSL https://raw.githubusercontent.com/eslam-mahmoud/reinvent-the-wheel/main/bootstrap.sh)"

The installer:

  1. Asks for storage access — tap Allow. Content lives in the shared RTW folder (/sdcard/RTW).
  2. Installs nginx, kiwix-tools, python, git and a few utilities with pkg.
  3. Clones the project into ~/rtw.
  4. Downloads the map viewer assets and writes configuration.
  5. Asks you to choose an admin password.

Then:

rtw start

Install from a Mac over USB

Useful when the device has no internet. With USB debugging enabled and the device connected, on the Mac:

./rtw push

Then in Termux:

termux-setup-storage
bash ~/storage/shared/RTW/_setup/server/install-termux.sh
rtw start

Keep it running

  • Battery: Android Settings → Apps → Termux → Battery → No restrictions. Otherwise Android may stop the server in the background.
  • rtw start takes a Termux wakelock.
  • Start on boot requires the separate Termux:Boot add-on, installed from the same source as Termux. The installer already places its boot script.

Share it

Turn on the Android hotspot and give people the address rtw start prints. See Sharing over Local Wi-Fi.

Known limitations

  • Ports below 1024 aren’t available without root, so the library uses port 8080 (and 8443 for HTTPS).
  • External USB storage is not supported yet — see External USB Storage.