a443834f53c21dae0c132a20284bd057b7a4e962
Try ipwho.is -> ip-api.com -> ipapi.co -> ipinfo.io in order so a
rate-limited/broken provider falls through to the next; ipinfo (most
quota-bound) is last. Normalize each payload to {ip,country,region,city,org},
keep 15s timeout per endpoint, and support GEO_PROBE_URL to replace the
chain with a single custom endpoint.
9Router - FREE AI Router & Token Saver
9Router is a local AI routing gateway with provider fallback and token-saving features.
Quick Start
Install
Docker
cp .env.example .env
docker compose up -d
Dashboard: http://localhost:20128/dashboard
API endpoint: http://localhost:20128/v1
From Source
cp .env.example .env
npm install
PORT=20128 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run dev
Before starting, set at least JWT_SECRET and INITIAL_PASSWORD in .env.
Update
This fork follows decolua/9router through the upstream remote.
git fetch upstream
git checkout master
git merge upstream/master
git push origin master
To build and publish this fork's Docker image after updating the source:
git tag v1.0.0
git push origin v1.0.0
The GitHub Actions workflow builds and publishes:
mhiqrambhrng/9router-mibp-version
On the server, update the running container with:
docker compose pull 9router
docker compose up -d
Forks (9Router)
License
MIT License. See LICENSE for details.
Languages
JavaScript
99.6%
CSS
0.3%