Skip to main content
Dograh is a Next.js UI (ui/), a FastAPI backend (api/), and a Pipecat-based voice pipeline (pipecat/, a git submodule), backed by Postgres, Redis, and MinIO.
Using Claude Code or Codex? Install the Dograh setup skill (/plugin marketplace add dograh-hq/dograh-plugins, then /plugin install dograh@dograh) and ask your agent to “set up Dograh for development” — it runs the steps below for you and verifies the stack is healthy.

Set up

You need Git, a local Docker engine (such as Docker Desktop), and VS Code with the Dev Containers extension.
  1. Fork dograh-hq/dograh and clone your fork:
  1. 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 .env files, and installs UI dependencies. Later opens are fast.
  2. 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:
  1. Start the UI from a second terminal inside the container:
  1. Open the app at http://localhost:3000.
If these steps do not work for you, please open an issue on GitHub.
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.
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:
  1. Stop the script-managed backend if it is running, so the ports are free:
  1. 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

  1. Create a branch and make your change.
  2. Push to your fork (origin) and open a pull request against dograh-hq/dograh:main.
  3. A maintainer reviews and merges.
Bug reports and feature ideas go through GitHub Issues and Ideas. Issues tagged 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.