Travo: A Modern Web UI for OpenWrt Travel Routers

What it is

Travo is a web interface for OpenWrt on compact travel routers—think GL.iNet Beryl AX (MT3000), Slate AXT1800, or any recent aarch64 or x86_64 OpenWrt 23.05+ image. The goal is a phone-friendly control surface for the things you actually touch on the road: WiFi, hotel captive portals, upstream connectivity, VPN, DNS filtering, and a few system knobs—without replacing LuCI for deep dives.

The stack is deliberately boring in a good way: a React single-page app (Vite, TanStack Query/Router, shared TypeScript types in a small shared/ package) talking to a Go API built with Fiber. The backend shells out to OpenWrt primitives—UCI, ubus, package management—so behavior stays aligned with how the device is meant to be administered.

Why a separate UI

LuCI remains the reference admin UI for OpenWrt, but on a small screen or when you only need “connect this repeater” or “turn on WireGuard,” a focused dashboard is easier. Travo is designed to coexist with LuCI: after the bundled install path, Travo can listen on port 80 while LuCI is moved to another port (for example 8080), and optional components such as AdGuard Home get predictable ports documented in the project README.

Features at a glance

For the authoritative, always-up-to-date list, see the repository README and the requirements docs in the same tree.

Try it on a router

The project publishes a one-line installer. SSH to the router and run:

wget -O- https://raw.githubusercontent.com/raydak-labs/travo/main/scripts/install.sh | sh

That sets up Travo, relocates LuCI as described in the README, and wires AdGuard Home with the documented ports. Change default credentials for any bundled service immediately after install.

Pre-built binaries and .ipk packages for aarch64 and x86_64 land on GitHub Releases when maintainers tag a version.

Hack on it locally

If you want to contribute or extend the UI:

  1. Clone https://github.com/raydak-labs/travo.
  2. Install Node (≥ 20), pnpm (≥ 9), and Go (≥ 1.23) as documented in the README.
  3. pnpm install, cd backend && go mod tidy, then make dev for the dev servers.
  4. Use make test, make lint, and make build before opening a PR (see CONTRIBUTING.md in the repo).

Docker Compose is also available for a containerized dev loop.

Travo is actively developed; treat this post as an orientation piece and rely on the GitHub README and deployment notes for port numbers, install flags, and security reminders.