Skip to content

MotherDuck

MotherDuck is the shortest path to a remote DuckLake experiment. The canardstack process and Grafana still run where you start them. The DuckLake catalog lives in MotherDuck.

Use this when you want remote storage behavior without standing up a catalog service, object bucket, VPC, or load balancer.

  1. Log in to MotherDuck.
  2. Create a database and choose DuckLake under Advanced.
  3. Copy the connection string, usually md:your-database-name.
  4. Create a Read/Write token under Account Settings > Access Tokens.

Set the MotherDuck token and DuckLake attach URI:

Terminal window
export MOTHERDUCK_TOKEN='<your-motherduck-token>'
export CANARDSTACK_DUCKLAKE_ATTACH_URI='md:test-ducklake'

Then start the local stack:

Terminal window
docker compose up

The canardstack container uses CANARDSTACK_DUCKLAKE_ATTACH_URI and MOTHERDUCK_TOKEN for storage. Grafana stays local and queries canardstack through the provisioned Prometheus, Loki, and Tempo-compatible datasources.

This path does not run canardstack serve-catalog. MotherDuck provides the remote DuckLake catalog.

The local canardstack process still owns the OTLP ingest endpoint, raw spool, scheduler, and compatibility APIs. A 2xx ingest response still means the raw request was accepted after local spool durability, not that rows are already query-visible in DuckLake.

For a full cloud deployment with a managed app endpoint, use GCP Cloud Run or AWS ECS/Fargate.