Server Mode

Connect dbxlite to your local DuckDB CLI for full native performance and all extensions.

What is Server Mode?

Server Mode connects dbxlite to your local DuckDB CLI via HTTP. This gives you the full power of native DuckDB - all extensions, unlimited memory, and direct filesystem access.

Why Use Server Mode?

FeatureServer ModeBrowser Mode
MemoryUnlimited~4GB limit
ExtensionsAll (httpfs, spatial, iceberg, etc.)Limited subset
FilesystemDirect accessFile handles only
PerformanceNative speedWASM overhead

Quick Start

Step 1: Start the Asset Server

npx dbxlite-ui

This starts a local server on port 8080 that serves the dbxlite UI.

Step 2: Launch DuckDB with dbxlite

In a new terminal:

export ui_remote_url="http://localhost:8080"
duckdb -unsigned -ui

Step 3: Open Your Browser

Navigate to http://localhost:4213. You're now using dbxlite with full native DuckDB!

Alternative: Use Hosted Assets

If you don't want to run npx, you can use our hosted assets:

export ui_remote_url="https://sql.dbxlite.com"
duckdb -unsigned -ui

The hosted URL only serves static UI assets. All data and query execution stays local on your machine.

Working with Databases

In Server mode, you can attach and query local database files:

-- Attach a database
ATTACH 'sales.duckdb' AS sales;

-- Query across databases
SELECT * FROM sales.orders
JOIN memory.customers ON orders.customer_id = customers.id;

Using Extensions

Server mode has access to all DuckDB extensions:

-- Install and load httpfs for remote files
INSTALL httpfs;
LOAD httpfs;

-- Query remote Parquet files
SELECT * FROM read_parquet('s3://bucket/data.parquet');

-- Use spatial extension
INSTALL spatial;
LOAD spatial;

Managing Server Settings

In Server mode, the Settings panel shows a Server tab where you can:

  • Extensions - View installed extensions, load or install new ones
  • Settings - Configure threads, memory_limit, temp_directory
  • Secrets - View configured S3, GCS, Azure credentials
  • Variables - Monitor session variables

The -unsigned Flag

The -unsigned flag is required when using custom UI URLs. This is a DuckDB security measure to ensure users explicitly trust the UI source.

Permanent Setup

Add to your shell config (~/.zshrc or ~/.bashrc):

export ui_remote_url="http://localhost:8080"
# or for hosted: export ui_remote_url="https://sql.dbxlite.com"

Then just run duckdb -unsigned -ui anytime.

Next Steps