ui/), a FastAPI backend (api/), and a Pipecat-based voice pipeline (pipecat/, a git submodule), backed by Postgres, Redis, and MinIO.
Set up
You need Git, a local Docker engine (such as Docker Desktop), and VS Code with the Dev Containers extension.- Fork dograh-hq/dograh and clone your fork:
-
Open the folder in VS Code and run Dev Containers: Reopen in Container. The first build takes several minutes — it starts Postgres, Redis, and MinIO, seeds the Python venv, creates the
.envfiles, and installs UI dependencies. Later opens are fast. - Start the backend from a terminal inside the container. The script waits for the health check and prints a status summary, so when it exits successfully the backend is up:
- Start the UI from a second terminal inside the container:
- Open the app at
http://localhost:3000.
Cloned dograh-hq/dograh directly instead of your fork?
Cloned dograh-hq/dograh directly instead of your fork?
Run
bash scripts/setup_fork.sh once. It prompts for your fork URL, points origin at it, and adds upstream as dograh-hq/dograh. See Fork and upstream remotes.No VS Code? No devcontainer at all?
No VS Code? No devcontainer at all?
The devcontainer also runs headless via the Dev Container CLI, or you can run everything directly on your host.
Daily workflow
Debugging
The repo ships debug configurations in.vscode/launch.json for every backend service and for pytest. To run under the debugger instead of the start script:
- Stop the script-managed backend if it is running, so the ports are free:
- In VS Code’s Run and Debug panel, pick a configuration and press F5:
All configurations load
api/.env (test configs use api/.env.test) and set justMyCode: false, so you can step into FastAPI and pipecat code — breakpoints in the pipecat/ submodule work because it is installed editable. Inside the devcontainer the Python interpreter is preselected; on a host-managed setup, pick ./venv/bin/python via Python: Select Interpreter first.
Repository layout
Contributing a change
- Create a branch and make your change.
- Push to your fork (
origin) and open a pull request againstdograh-hq/dograh:main. - A maintainer reviews and merges.
good first issue are a good place to start. For questions while you’re working, use the Dograh Community Slack.
Deploying your own build instead of contributing upstream? See Deployments instead.