A modern web-based user interface for dbt-core projects.
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| Environment Variable | Default | Description |
|---|---|---|
GIT_REPOS_PATH |
./git-repos |
Mount 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
This application consists of two parts:
- Frontend: React + TypeScript web application (Vite) - served via nginx
- Backend: FastAPI Python server for file system operations
- 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.
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!
dbt-ui/
├── frontend/ # React frontend application
├── backend/ # FastAPI backend server
├── docker/ # Docker configuration
├── docker-compose.yml
└── README.md
This project is licensed under the MIT License.
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 withnpm ls) - Backend: Python site-packages (view with
pip list)
For license texts and copyright information, check each package's GitHub repository
| Package | License | Version | Repository |
|---|---|---|---|
| @monaco-editor/react | MIT | ^4.7.0 | https://github.com/suren-atoyan/monaco-react |
| dagre | MIT | ^0.8.5 | https://github.com/dagrejs/dagre |
| lucide-react | ISC | ^0.294.0 | https://github.com/lucide-icons/lucide |
| react | MIT | ^18.2.0 | https://github.com/facebook/react |
| react-dom | MIT | ^18.2.0 | https://github.com/facebook/react |
| react-split-pane | MIT | ^3.0.4 | https://github.com/tomkp/react-split-pane |
| reactflow | MIT | ^11.11.4 | https://github.com/xyflow/xyflow |
| typescript | Apache-2.0 | ^5.2.2 | https://github.com/microsoft/TypeScript |
| vite | MIT | ^5.0.8 | https://github.com/vitejs/vite |
| eslint | MIT | ^8.55.0 | https://github.com/eslint/eslint |
| Package | License | Version | Repository |
|---|---|---|---|
| fastapi | MIT | 0.109.0 | https://github.com/tiangolo/fastapi |
| uvicorn | BSD-3-Clause | 0.27.0 | https://github.com/encode/uvicorn |
| pydantic | MIT | 2.5.3 | https://github.com/pydantic/pydantic |
| python-multipart | Apache-2.0 | 0.0.6 | https://github.com/Kludex/python-multipart |
| pyyaml | MIT | >=6.0 | https://github.com/yaml/pyyaml |
| packaging | Apache-2.0 | >=23.0 | https://github.com/pypa/packaging |
- 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.