Self-hosting NuRoute
NuRoute Enterprise runs on your own server. Your prompts, the answers, your provider API keys and your request logs stay on your infrastructure; NuRoute never sees them.
This section takes you from an empty Linux server to your first routed request, and then through running it: backups, upgrades, the licence and troubleshooting. You do not need to know NuRoute's internals. If a command is shown, you can copy it as is; where a command prints something, the guide shows what you should see.
| Page | What it covers |
|---|---|
| Requirements | The server, Docker, a domain name and the network access NuRoute needs |
| Install | One command to install, then activation and your first request |
| Configuration | Every setting in .env, running behind your own HTTPS proxy, email |
| Single sign-on | Sign-in with Entra ID, Okta, Google Workspace, Keycloak or Auth0 (OIDC), SSO only |
| Backups and upgrades | Backing up, restoring, upgrading (with automatic rollback), moving or removing NuRoute |
| Licence and updates | The licence check-in, what it sends, trials, renewals, routing-model updates |
| Security | Where your data lives, how to check the images, reporting a vulnerability |
| Troubleshooting | Every error message the installer and scripts can print, and what to do |
What you get
Everything NuRoute Cloud offers, on your server:
- The OpenAI-compatible API (
/v1/chat/completionsand the rest) with automatic model routing across the providers you connect. - The dashboard: projects, API keys, members and roles, provider keys, policies and PII redaction, prompt compression, request logs and usage.
- Routing-model and catalog updates: NuRoute's latest routing model and model catalog (models, prices, quality tiers) arrive with the licence check-in, without an upgrade.
What is different from Cloud:
- No billing. You pay your AI providers directly with your own keys, and NuRoute through your Enterprise contract. There are no credits and no Billing page.
fallback-router:apollodecides everyautorequest. Artemis Task is not part of self-hosted NuRoute yet, so NuRoute's fallback router decides each"model": "auto"request: the response'sX-Router-Versionheader (and_routing.routerVersion) saysv1, andX-Router-Fallbacksaysv2_disabled. The dashboard has no Speed setting.- One organization per install. The first admin creates it; everyone else joins by invitation. You can have as many projects, members and API keys as you like.
- You run the server: its uptime, its backups and its upgrades. NuRoute provides the software, updates and support under your contract.
How licensing works
Each install needs a licence: a licence key from your NuRoute contract, or a 14-day
trial you start from the setup screen with your work email. The install checks in with
license.nuroute.ai every 12 hours to renew a short-lived token. If the check-in fails (for
example, a firewall change), NuRoute keeps working for 5 days, and the dashboard shows a
banner so an admin can fix it. Details: Licence and updates.
What leaves your server
Only the check-in, which sends: the licence key, a random install ID, NuRoute's version numbers, the number of requests since the last check-in, and whether NuRoute's services are up. Never prompts, answers, API keys, user names, email addresses or costs. Your admins can see the exact last check-in on the Licence & system page.
Your AI requests go from your server straight to the providers you connect, as they would without NuRoute.
How the pieces fit together
NuRoute runs as a set of containers on one server, started by Docker Compose:
| Part | What it does |
|---|---|
| Caddy | The only part reachable from outside (ports 80 and 443). Obtains and renews the HTTPS certificate for your domain, serves the dashboard under /app and the API everywhere else |
| API gateway | Checks API keys and the licence, applies policies, routes each request and forwards it to the chosen provider |
| Routing services | Pick the model for each request (the trained routing model) and talk to your providers |
| Dashboard | The web app your team uses, at https://<your domain>/app |
| PostgreSQL, Redis, ClickHouse, NATS | Settings, sessions, request logs and usage, internal messages. Not reachable from outside |
| Policy and PII detection, prompt compression | The policy engine with Microsoft Presidio, and headroom |
All images are public, built by NuRoute, scanned for vulnerabilities and signed. The install kit (the files and scripts that set them up) is open source: github.com/NuRoute-ai/nuroute-selfhosted.
Ready? Start with the requirements.