Lux Docs

Build on Lux without guessing.

Lux Cloud + OSS core

Product docs for the Lux runtime: tables, cache, vectors, realtime, time series, auth, HTTP, SDK, CLI, and self-hosting.

Lux Cloud

Managed Lux projects with the same open-source runtime underneath: tables, cache, vectors, realtime, queues, time series, auth, snapshots, logs, and direct protocol access.

What Lux Cloud gives you

Lux Cloud is the hosted product surface for building apps on Lux. Self-hosting stays available, but Cloud adds project management, gateway keys, auth configuration, dashboard tooling, and operational automation.

IncludedWhy it matters
Managed projectsProvision Lux instances in seconds without handling infrastructure.
Explorer + consoleInspect keys, tables, vectors, and time series from the browser.
Project keys + Cloud gatewayUse publishable keys from browsers and secret keys from trusted servers.
Lux AuthApp users, sessions, OAuth providers, JWTs, and auth-owned system tables.
Snapshots + WALDurability and recovery without operational setup.
Logs + metricsObserve projects and troubleshoot without building separate tooling.

Create a project

Sign in to your dashboard, click New Project, choose a region and tier, and your instance is live in seconds.

Or create and link via the CLI:

CLI
lux create my-project --accept-charges
lux link my-project
lux env pull

Connect

There are two main connection surfaces. Use the SDK/Cloud gateway for application code. Use direct protocol access when you need low-level command access or Redis-compatible tooling.

SDK and Cloud gateway

The gateway is the normal app surface. Browser clients use publishable keys. Server clients use secret keys. Signed-in app users send a project key plus their Lux Auth JWT.

SDK gateway
import { createBrowserClient, createClient } from "@luxdb/sdk";

const lux = createBrowserClient(
  "https://api.luxdb.dev/v1/my-project",
  "lux_pub_..."
);

const { data, error } = await lux
  .table("messages")
  .select()
  .eq("channel_id", "general")
  .limit(50);

const admin = createClient(
  "https://api.luxdb.dev/v1/my-project",
  "lux_sec_..."
);

Direct Lux protocol

Cloud projects also expose a canonical TLS endpoint for direct protocol access:

Lux URI
luxs://:password@your-project.db.luxdb.dev:6380

For Redis-compatible clients that do not understand the luxs:// scheme, use the equivalent TLS URI:

Redis Client Compatibility
redis-cli --tls -u rediss://:password@your-project.db.luxdb.dev:6380

Best for: app servers, workers, migration runs, Redis-compatible tools, and anything that can safely hold the database password.

HTTP API

Every project is accessible via REST at api.luxdb.dev. Authenticate with a project key from the project settings page.

HTTP
curl -H "apikey: lux_pub_..." \
  -H "Authorization: Bearer lux_pub_..." \
  https://api.luxdb.dev/v1/my-project/kv/hello

The SDK uses these HTTP routes under the hood for project clients:

Routes
GET    /v1/:project/kv/:key                  # get a key
PUT    /v1/:project/kv/:key                  # set a key
DELETE /v1/:project/kv/:key                  # delete a key

GET    /v1/:project/tables/:table            # query rows
POST   /v1/:project/tables/:table            # insert row
PUT    /v1/:project/tables/:table/:id        # update row

POST   /v1/:project/ts/:key                  # add sample
GET    /v1/:project/ts/:key?agg=avg&bucket=60000  # range query

POST   /v1/:project/vectors/search           # vector search
POST   /v1/:project/exec                     # any command

Best for: browser apps, edge functions, serverless, MCP, and any environment where TCP sockets are awkward or unavailable. See the full HTTP API reference.

Dashboard

Every Lux Cloud project includes a full-featured dashboard:

FeatureDescription
TablesBrowse relational tables and inspect auth-owned system tables
RealtimeLive key change feed via KSUB
VectorsManage and query vector indexes
Time SeriesVisualize and query time series data
QueuesMonitor stream-based queues and consumer groups
AuthConfigure app auth users, sessions, and OAuth providers
ConsoleRun commands directly from the browser
LogsTail runtime logs in realtime
SnapshotsCreate, view, download, and manage point-in-time snapshots

CLI

Install the Lux CLI:

Install
curl -fsSL https://luxdb.dev/install.sh | sh
lux login

Common commands:

Commands
lux init
lux projects
lux create my-app --accept-charges
lux link my-app
lux env pull
lux migrate run
lux seed run
lux status my-app
lux destroy my-app --accept-consequences

SDK

The Lux SDK is the highest-level DX path when you want project auth, table queries, vectors, and direct Redis-compatible access from one package:

Install SDK
bun i @luxdb/sdk
SDK example
import { createBrowserClient, createClient, Lux } from "@luxdb/sdk";

// Browser/app access through the Cloud gateway.
const lux = createBrowserClient(
  "https://api.luxdb.dev/v1/my-project",
  "lux_pub_..."
);

const { data, error } = await lux
  .table("messages")
  .select()
  .eq("channel_id", "general")
  .limit(50);

// Trusted server access can use the secret key.
const admin = createClient("https://api.luxdb.dev/v1/my-project", "lux_sec_...");

// Direct SDK access is for local/self-hosted non-TLS Lux instances.
const direct = new Lux("lux://127.0.0.1:6379");

For simple edge/serverless calls, use the HTTP API directly:

Fetch example
const res = await fetch("https://api.luxdb.dev/v1/my-project/kv/hello", {
  headers: {
    apikey: "lux_pub_...",
    Authorization: "Bearer lux_pub_..."
  }
});
const { result } = await res.json();

Pricing

One simple price per project, billed monthly. Free for 14 days, no credit card required to start.

Standard

$10/mo per project

512 MB hot cache

5 GB storage

1000 ops/sec sustained

Snapshots, WAL, recovery

See /pricing for the full breakdown.

Operational notes

Lux uses WAL replay plus snapshots for durability. Cloud adds managed process restarts, metrics, logs, and snapshot storage. For production expectations and launch-stage limits, read Reliability and Limits.