Docs
Quickstart
Dashboard on :8000. RESP on :6380. The first RESP command must be AUTH <tenantID>:<keyID> <secret>.
Docker
export DBX_KEK="$(python -c "import secrets; print(secrets.token_hex(32))")" docker run --rm -p 8000:8000 -p 6380:6380 \ -e DBX_ADMIN_PASSWORD='replace-with-12-plus-characters' \ -e DBX_JWT_SECRET='replace-with-at-least-32-random-characters' \ -e DBX_INTERNAL_API_TOKEN='replace-with-a-random-service-token' \ -e DBX_KEK \ -e DBX_NODE_MEMORY_BUDGET=8gb \ ghcr.io/vanshjain-0702/dbx-orchestrator:v1.1.0
Open http://localhost:8000 and log in with admin / your password. Mint a writer key on Tenant keys. The image defaults to DBX_ISOLATION_MODE=strict, so DBX_KEK (64 hex characters) is required or the process exits. GitHub Actions publishes ghcr.io/vanshjain-0702/dbx-orchestrator on a GitHub Release (:v1.1.0 and :latest). To build the same Dockerfile: docker build -t dbx:dev -f deploy/Dockerfile . then run dbx:dev with the same -e flags. For a laptop try without envelope encryption, add -e DBX_ISOLATION_MODE=inprocess and omit DBX_KEK.
From source
Prerequisites: Go 1.25+, Node.js 20+, GNU Make. Windows does not ship make. A fresh clone has no operator UI until the dashboard is built (make run-dev runs npm ci && npm run build when dashboard/dist/index.html is missing).
git clone https://github.com/vanshjain-0702/DBX-Database-Extreme.git cd DBX-Database-Extreme make build make run-dev
Compose
Copy .env.example to a repo-root .env and set the secrets, including a 64-hex DBX_KEK. Pass --env-file .env: the compose file lives in deploy/ and will not auto-load the root file.
git clone https://github.com/vanshjain-0702/DBX-Database-Extreme.git cd DBX-Database-Extreme cp .env.example .env # set DBX_ADMIN_PASSWORD, DBX_JWT_SECRET, DBX_INTERNAL_API_TOKEN, DBX_KEK make docker-up # docker compose --env-file .env -f deploy/docker-compose.yml up --build
Python
pip install -e sdk/python from the clone. Dummy key_id / secret below are placeholders; mint a writer key after you provision.
from dbx import DBXClient
db = DBXClient(
host="localhost",
port=6380,
tenant="acme-corp",
key_id="key-id",
secret="one-time-key-secret",
)
db.set("session:42", '{"thread": "onboarding", "step": 3}')
db.vadd("memories", "doc:1", [0.1, 0.2, 0.9])
results = db.vsearch("memories", [0.1, 0.2, 0.8], top_k=5)
Node.js
import { createClient } from 'redis'; // RESP on-ramp, not a Redis replacement
const client = createClient({ url: 'redis://localhost:6380' });
await client.connect();
await client.sendCommand(['AUTH', 'acme-corp:key-id', 'one-time-key-secret']);
await client.set('session:abc', JSON.stringify({ userId: 42 }));
Provision
curl -s -X POST http://localhost:8000/api/login \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"YOUR_ADMIN_PASSWORD"}'
# Response: {"token":"..."} — export it as DBX_TOKEN
curl -X POST http://localhost:8000/api/provision \
-H "Authorization: Bearer $DBX_TOKEN" \
-H "Content-Type: application/json" \
-d '{"id": "acme-corp", "name": "Acme Corp"}'
Bearer token from POST /api/login. Backup, restore, export/import, hibernate/wake, and delete take the same token and a tenant id. Meter a customer with GET /api/v1/tenants/{id}/usage. The 15-minute Python path is examples/quickstart.py. LangChain: examples/langchain-rag. Next.js SETEX: examples/nextjs-cache. SDK tests: make python-check from the repo root. Full command list on the API page.