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
On Windows (PowerShell):
irm https://dbpod.io/install.ps1 | iex
Or plain cmd, no PowerShell needed (curl and tar are bundled with Windows 10+):
curl -fsSL https://dbpod.io/install.bat -o "%TEMP%\dbpod-install.bat" && call "%TEMP%\dbpod-install.bat"
The script detects your platform (macOS, Linux, or Windows) and downloads the matching single binary from GitHub Releases, verifying it against the published checksums. Verify it:
dbpod version
GitHub not reachable?
On networks where github.com cannot be reached, the installers automatically fall back to the
https://dl.dbpod.io mirror. To pin a different source yourself (for example a release proxy),
set DBPOD_DOWNLOAD_BASE — it takes the GitHub Releases URL of any mirror that serves the same
layout:
curl -fsSL https://dbpod.io/install.sh | DBPOD_DOWNLOAD_BASE="https://mirror.ghproxy.com/https://github.com/dbpod-io/dbpod/releases" sh
The built-in fallback (https://dl.dbpod.io, a CI-synced mirror of the GitHub releases) can be
pinned the same way and needs no third-party proxy.
A plain proxy also works, without changing the source: export HTTPS_PROXY=http://127.0.0.1:7890
(or set HTTPS_PROXY=... on Windows). The same env vars are honored by install.ps1 and
install.bat.
Re-running an installer upgrades in place — an existing binary is simply replaced, on Windows even while an older dbpod process is still running.
One-shot install with a database
To install the CLI and a database engine in a single command, pass --engine:
curl -fsSL https://dbpod.io/install.sh | sh -s -- --engine mysql@8.0
This installs dbpod, then immediately runs dbpod engine install mysql@8.0 for you — the
engine is cached and ready before you type anything else. Repeat --engine (or use
DBPOD_ENGINES="mysql@8.0 postgres@17") for multiple engines:
curl -fsSL https://dbpod.io/install.sh | sh -s -- --engine mysql@8.0 --engine postgres@17
The same works from cmd:
curl -fsSL https://dbpod.io/install.bat -o "%TEMP%\dbpod-install.bat" && call "%TEMP%\dbpod-install.bat" --engine mysql@8.0
Other options: --version vX.Y.Z pins the CLI version, --install-dir overrides the install
location (default ~/.local/bin). See all of them with sh -s -- --help. Prefer a guided
setup? The install builder generates the one-shot command for your platform and
engines.
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.