MUH. IQRAM BAHRING a0bf2e3f96 fix(token-refresh): stop dead-token retry loop, lift block on refresh success
Unrecoverable refresh errors (invalid_grant/invalid_request) are persisted as
a refreshBlocked marker so the background scheduler stops hammering the
provider every 5 minutes and surfaces re-login required; the marker is lifted
automatically when a later refresh succeeds. Cooldown maps gained lazy pruning.
2026-08-07 03:51:38 +08:00
2026-08-05 16:49:14 +07:00
2026-08-05 16:49:14 +07:00
2026-01-05 09:58:59 +07:00
2026-03-09 16:30:39 +07:00

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.

S
Description
No description provided
Readme MIT
19 MiB
Languages
JavaScript 99.6%
CSS 0.3%