Skip to main content
Worlds self-hosting is available through the respective GitHub repositories. Use the repository README and package docs for the component you are deploying. For how hosted Worlds work, see Worlds.

Current status

Self-hosting is not part of the private beta. The supported path depends on which Worlds components you run:
  • worlds-api: the self-hostable Worlds data-plane service (search, SPARQL, import, export).
  • worlds-sdk-ts: local and embedded Worlds SDK usage.
  • worlds-client-ts: generated data-plane HTTP client for the hosted or self-hosted Worlds API.
  • worlds-libsql: durable SQLite-compatible storage through LibSQL/Turso-style backends.
  • worlds-postgres: durable PostgreSQL-backed storage.
  • worlds-vps: full-stack VPS deployment composition with Terraform and Docker Compose.
Private networking patterns such as Docker Compose, Tailscale, or Cloudflare Tunnel depend on your deployment environment and should be configured alongside the repository-specific setup.

Storage backends

Worlds storage drivers ship as standalone JSR packages. Pick the backend that matches your persistence needs. All five durable backends now ship full SDK factories with hybrid search and parity-green CI suites.

LibSQL / Turso

@worlds/libsql provides durable LibSQL storage with hybrid full-text and vector search. createLibsqlSdk assembles a quad store, search index, and SPARQL engine over a LibSQL connection:
Point the client at an embedded file or a remote Turso URL. The embedded file: backend stores worlds locally; the remote URL keeps them in a managed LibSQL database.

PostgreSQL

@worlds/postgres provides durable PostgreSQL storage with hybrid tsvector + pgvector search. createPostgresSdk assembles a quad store, search index, and SPARQL engine over a PostgreSQL connection:

SQLite (local file)

@worlds/sqlite provides durable SQLite storage via node:sqlite with hybrid FTS5 + sqlite-vec search. createSqliteSdk assembles a quad store, search index, and SPARQL engine:

Cloudflare D1

@worlds/cloudflare provides durable D1 storage with FTS5 keyword search. createCloudflareSdk assembles a quad store, search index, and SPARQL engine over a D1 binding:

IndexedDB (browser)

@worlds/indexeddb provides durable browser-native storage via IndexedDB with JS-side hybrid TF-IDF + cosine search. createIndexeddbSdk assembles a quad store, search index, and SPARQL engine:

VPS deployment

worlds-vps owns full-stack orchestration for running Wazoo services on a VPS: DigitalOcean droplet and firewall Terraform, cloud-init bootstrap, Caddy routing, and Docker Compose wiring for the service images. Copy .env.example to .env, set the values used by docker-compose.yml, then start the stack:
The compose file wires the ghcr.io/wazootech service images: wazoo-api, worlds-api, and wazoo-console, fronted by Caddy for HTTPS routing. The worlds-api service runs on a file-backed LibSQL database mounted as a Docker volume. For the DigitalOcean droplet, create do.auto.tfvars with the variables listed in the repository README, then apply the Terraform composition:

Deployment responsibilities

When you self-host, you own:
  • Worlds data services and storage.
  • Network ingress and access control.
  • Token issuance and rotation.
  • Backups, monitoring, and incident response.
Do not assume a compliance posture from these docs alone. Treat each self-hosted deployment as an architecture review for your environment.