DOCUMENTATION

Getting Started with NovaGate

From zero to a live, rate-limited, JWT-authenticated API gateway in under 10 minutes.

Overview

NovaGate has two components: the gateway node (a Docker container you run on your server) and the control plane (a cloud service we operate). The gateway handles all your live traffic. The control plane manages config and collects observability data.

Your Client → NovaGate Node (your VPS) → Your Microservices
↕ WSS (config + telemetry)
NovaGate Cloud (control plane)

Prerequisites

  • A server or VPS with Docker installed (1 vCPU, 512 MB RAM minimum)
  • A Redis instance reachable from your server (Redis Cloud free tier works)
  • A NovaGate account (free)

Step 1: Register

Create a free account at novagate.dev/register. After registration, you will be redirected to the setup flow where your Gateway API Key is shown. Copy it — it is shown only once.

Your Gateway API Key looks like: gw_abc123...xyz. Store it in a secrets manager or environment variable immediately.

Step 2: Deploy the Gateway

Run the gateway container on your server:

docker run -d --name novagate --restart unless-stopped \
-p 3000:3000 \
-e REDIS_URL=redis://your-redis:6379 \
-e JWT_SECRET=your-32-char-secret \
-e CONTROL_PLANE_URL=wss://ws.novagate.dev/gateway-ws \
-e GATEWAY_API_KEY=gw_your_key_here \
ghcr.io/rawatshahab/novagate/api:latest

Verify it started correctly:

curl http://localhost:3000/health
# {"status":"ok","configSource":"live","configVersion":1}

Step 3: Add a Service

In the dashboard, go to Services → Add Service. A service represents one of your downstream applications.

Field
Example
Name
users-api
Target URL
http://internal-ip:8080
Health Check Path
/health
Timeout (ms)
5000

Step 4: Add a Route

Go to Routes → Add Route. A route maps an incoming path pattern to a service.

Method
GET
Path Pattern
/api/users
Service
users-api
Auth Required
false
Rate Limit Override
(empty — uses global default)

The gateway receives this config update over WebSocket within milliseconds. No restart required.

Step 5: Test It

curl http://your-vps:3000/api/users
# Proxied to http://internal-ip:8080/api/users

Check the Logs page in the dashboard. You should see the request appear within a few seconds.

Next Steps