dbt UI

January 28, 2026 · View on GitHub

A modern web-based user interface for dbt-core projects.

CleanShot 2026-01-18 at 22 21 32@2x

Quick Start with Docker

The easiest way to run dbt UI is using Docker:

# Clone the repository
git clone https://github.com/data-diving/dbt-ui.git
cd dbt-ui

# Run with Docker Compose
docker-compose up --build

# Or use existing git repositories from your computer
GIT_REPOS_PATH=/path/to/your/repos docker-compose up --build

Volume Mount

Environment VariableDefaultDescription
GIT_REPOS_PATH./git-reposMount for git repositories - both cloned from URLs and existing local repos

Set GIT_REPOS_PATH to point to your existing repos folder to work with local repositories.

Open your browser and navigate to http://localhost

The backend API is available at http://localhost:8000

Architecture

This application consists of two parts:

  • Frontend: React + TypeScript web application (Vite) - served via nginx
  • Backend: FastAPI Python server for file system operations

Features

  • Project Browser: Browse your dbt project structure with an intuitive tree view
  • Code Editor: Edit SQL models, YML configurations, tests, and macros with Monaco Editor
  • Lineage Graph: Visualize model dependencies and data lineage
  • Quick Actions: Run dbt commands, compile models, and manage your project
  • Local File Access: No file uploads - backend reads files directly from your filesystem
  • Git Integration: View modified files, stage changes, commit, push/pull, and switch branches
  • MetaDV: Visual Data Vault modeling - map source columns to entities and generate Data Vault 2.0 models using metadv package

Note: Only git-based dbt projects are supported. The project must be a git repository.

Want to Contribute?

Like dbt-ui and want to help make it even better? Check out our Contributing Guide to get started with discussions, issues, and pull requests. Your contributions help improve the experience for everyone!

Project Structure

dbt-ui/
├── frontend/           # React frontend application
├── backend/            # FastAPI backend server
├── docker/             # Docker configuration
├── docker-compose.yml
└── README.md

License and Attribution

This project is licensed under the MIT License.

Third-Party Software

This project uses open-source libraries under various permissive licenses (MIT, Apache-2.0, BSD-3-Clause, ISC).

When you install dependencies via npm install and pip install or build a Docker image their license files are placed in:

  • Frontend: node_modules/ (view with npm ls)
  • Backend: Python site-packages (view with pip list)

For license texts and copyright information, check each package's GitHub repository

Frontend (npm)

PackageLicenseVersionRepository
@monaco-editor/reactMIT^4.7.0https://github.com/suren-atoyan/monaco-react
dagreMIT^0.8.5https://github.com/dagrejs/dagre
lucide-reactISC^0.294.0https://github.com/lucide-icons/lucide
reactMIT^18.2.0https://github.com/facebook/react
react-domMIT^18.2.0https://github.com/facebook/react
react-split-paneMIT^3.0.4https://github.com/tomkp/react-split-pane
reactflowMIT^11.11.4https://github.com/xyflow/xyflow
typescriptApache-2.0^5.2.2https://github.com/microsoft/TypeScript
viteMIT^5.0.8https://github.com/vitejs/vite
eslintMIT^8.55.0https://github.com/eslint/eslint

Backend (PyPI)

PackageLicenseVersionRepository
fastapiMIT0.109.0https://github.com/tiangolo/fastapi
uvicornBSD-3-Clause0.27.0https://github.com/encode/uvicorn
pydanticMIT2.5.3https://github.com/pydantic/pydantic
python-multipartApache-2.00.0.6https://github.com/Kludex/python-multipart
pyyamlMIT>=6.0https://github.com/yaml/pyyaml
packagingApache-2.0>=23.0https://github.com/pypa/packaging

Trademarks

  • dbt, dbt Core, and dbt Labs are trademarks of dbt Labs, Inc.
  • Docker and the Docker logo are trademarks or registered trademarks of Docker, Inc.

This project is not affiliated with, endorsed by, or sponsored by dbt Labs, Inc. or Docker, Inc.