Lux Cloud
Managed Lux projects with the same open-source runtime underneath: tables, cache, vectors, realtime, queues, time series, auth, snapshots, logs, custom domains, 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.
| Included | Why it matters |
|---|---|
| Managed projects | Provision Lux projects in seconds without handling infrastructure. |
| Explorer + console | Inspect keys, tables, vectors, and time series from the browser. |
| Project keys + Cloud gateway | Use publishable keys from browsers and secret keys from trusted servers. |
| Lux Auth | App users, sessions, OAuth providers, JWTs, and auth-owned system tables. |
| Custom domains | Attach your own API/Auth or database protocol subdomains at no extra monthly charge. |
| Snapshots + WAL | Durability and recovery without operational setup. |
| Logs + metrics | Observe 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 project is live in seconds.
Or create and link via the CLI:
lux create my-project --accept-charges
lux link my-project
lux env pullConnect
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.
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:
luxs://:password@your-project.db.luxdb.dev:6380For Redis-compatible clients that do not understand the luxs:// scheme, use the equivalent TLS URI:
redis-cli --tls -u rediss://:password@your-project.db.luxdb.dev:6380Best 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.
curl -H "apikey: lux_pub_..." \
-H "Authorization: Bearer lux_pub_..." \
https://api.luxdb.dev/v1/my-project/kv/helloThe SDK uses these HTTP routes under the hood for project clients:
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 commandBest for: browser apps, edge functions, serverless, MCP, and any environment where TCP sockets are awkward or unavailable. See the full HTTP API reference.
Custom domains
Lux Cloud lets you attach your own subdomains to a project without a separate per-domain add-on. Use them for user-facing API/Auth endpoints, direct database protocol endpoints, or both.
| Domain type | Routes to | Use it for |
|---|---|---|
| API/Auth | /v1 and /auth/v1 | SDK clients, browser-safe project keys, auth redirects, edge/serverless calls, and app APIs. |
| DB protocol | :6380 over TLS | Trusted servers, workers, Redis-compatible tooling, migrations, and direct RESP clients. |
Open Dashboard -> Project -> Domains, choose a type, and enter a subdomain such as api.example.com or db.example.com. Lux shows the required CNAME and TXT verification records.
If the domain is hosted on Cloudflare, click Cloudflare to authorize Lux to create the DNS records for you. After approval, Lux redirects back to the dashboard, verifies DNS in the background, provisions routing, and emails the workspace owner when the domain becomes active.
# API/Auth custom domain
https://api.example.com/v1
https://api.example.com/auth/v1
# DB protocol custom domain
luxs://:password@db.example.com:6380
rediss://:password@db.example.com:6380Dashboard
Every Lux Cloud project includes a full-featured dashboard:
| Feature | Description |
|---|---|
| Tables | Browse relational tables and inspect auth-owned system tables |
| Realtime | Live key change feed via KSUB |
| Vectors | Manage and query vector indexes |
| Time Series | Visualize and query time series data |
| Queues | Monitor stream-based queues and consumer groups |
| Auth | Configure app auth users, sessions, and OAuth providers |
| Domains | Attach API/Auth and DB protocol custom domains with manual DNS or Cloudflare-assisted setup |
| Console | Run commands directly from the browser |
| Logs | Tail runtime logs in realtime |
| Snapshots | Create, view, download, and manage point-in-time snapshots |
CLI
Install the Lux CLI:
curl -fsSL https://luxdb.dev/install.sh | sh
lux loginCommon 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-consequencesSDK
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:
bun i @luxdb/sdkimport { 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 projects.
const direct = new Lux("lux://127.0.0.1:6379");For simple edge/serverless calls, use the HTTP API directly:
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.