Sign inSign up

hfmsio/dbxlite

By hfmsio

Updated about 2 months ago

Browser-native SQL workbench powered by DuckDB (WASM). Fully client-side, no backend.

Image
Developer tools
Data science
Databases & storage
2

514

hfmsio/dbxlite repository overview

dbxlite

A SQL workbench that runs DuckDB in your browser. No server, no database to manage, no data upload.

This image serves the dbxlite web app as static files. When you open it, DuckDB (compiled to WebAssembly) runs inside your browser tab and queries execute locally. Nothing you query is sent to the container or anywhere else.

Run it

docker run -p 8080:80 hfmsio/dbxlite

Open http://localhost:8080 and start querying. That is the whole setup: the page you just opened is running DuckDB in your browser (WASM mode).

Docker Compose:

services:
  dbxlite:
    image: hfmsio/dbxlite:latest
    ports:
      - "8080:80"
    restart: unless-stopped

Tags

  • latest - most recent release
  • X.Y.Z (e.g. 0.5.0) - pinned version
  • X.Y - latest patch in a minor line

Every tag is multi-arch: linux/amd64 and linux/arm64.

What you can do

  • Query local CSV, Parquet, Excel, JSON, and JSONL files. Local files are read on demand, so you can query files larger than browser memory.
  • Query remote files by URL (DuckDB httpfs).
  • Write full DuckDB SQL: window functions, CTEs, PIVOT, list/struct types, attach .db files.
  • Connect to BigQuery and Snowflake directly from the browser (optional; not needed for the DuckDB workflow).
  • Autocomplete, ten themes, multiple query tabs, and a built-in library of example queries.

Configuration

The container serves on port 80; map it wherever you want (-p 8080:80). No environment variables are required.

The bundled nginx sets three headers so DuckDB's OPFS persistence and file export work:

Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: credentialless
Cross-Origin-Resource-Policy: cross-origin

If you put dbxlite behind your own reverse proxy, preserve these headers. This is the reason to use this image instead of serving the files from a bare web server.

Optional: use a native DuckDB engine

Want native DuckDB (all extensions, unlimited memory, direct disk access) instead of the in-browser engine? Point a local duckdb at this container:

export ui_remote_url="http://localhost:8080"
duckdb -unsigned -ui   # then open http://localhost:4213

The container only serves the UI; the engine runs on your machine.

Tag summary

Content type

Image

Digest

sha256:1823fdcda

Size

38.1 MB

Last updated

about 2 months ago

docker pull hfmsio/dbxlite