Documentation

Quickstart

Install dbpod, start your first instance, run SQL, stop and clean up.

Install

One command, no root, no system services:

curl -fsSL https://dbpod.io/install.sh | sh

The script detects your platform (macOS, Linux, or Windows) and downloads the matching single binary from GitHub Releases. Verify it:

dbpod --version

Install an engine

Engines are handled like Docker images — you pick a series, dbpod resolves the exact version:

dbpod engine install mysql@8.0
✓ resolved mysql@8.0 → 8.0.46
✓ installed → ~/.dbpod/versions/mysql/8.0.46

The series notation mysql@8.0 resolves to the latest known patch release (here 8.0.46). The engine binaries are cached under DBPOD_HOME/versions and reused across projects.

Run your first instance

dbpod run --name dev --engine mysql@8.0
✓ dev is ready → 127.0.0.1:3306 · datadir ./.dbpod/dev

The command returns as soon as the server is ready to accept connections — the instance keeps running in the background, detached. All state (data, logs, socket, pid) lives inside the project’s ./.dbpod/ directory. Nothing leaks into system paths.

Run some SQL

exec drops you into the engine’s SQL shell with the instance target pre-connected:

dbpod exec dev
SELECT VERSION();

Or run a one-shot statement without opening a shell:

dbpod exec dev -e "SELECT 1"

Inspect, stop, clean up

dbpod ps          # instances in this project
dbpod stop dev    # graceful shutdown
dbpod rm dev      # remove the instance

Because the datadir is project-local, deleting ./.dbpod/ removes the database completely. That is the whole story: the host stays clean, and every project owns its data.

Next steps

  • Engines — series resolution, LTS/innovation, engine ls views
  • Instances — lifecycle, ports, monitors
  • Exec — the distribution as a toolbox