WindowsmacOSLinux

Where Does DDEV Store Global and Project Config?

DDEV keeps one global .ddev folder in your home directory plus a .ddev folder per project. Locations on all platforms and overrides.

Last updated

DDEV stores configuration in exactly two places. The global ~/.ddev directory tracks your project list and settings that apply everywhere, led by global_config.yaml. Each project carries its own .ddev folder with config.yaml and optional config.*.yaml overrides for team-shared tweaks.

Run ddev version and look for global-ddev-dir to confirm which global folder your install actually uses. Overrides win in a fixed order: DDEV_XDG_CONFIG_HOME first, then ~/.ddev, then ~/.config/ddev on Linux. Never drop a config.yaml directly into the global folder. The source code deletes it on sight.

Where DDEV stores this, by platform

Windows
C:\Users\[Username]\.ddev

Global config and project registry. Per-project settings live in each project's own .ddev/config.yaml. Set DDEV_XDG_CONFIG_HOME to relocate the global folder.

macOS
~/.ddev

Same role as on Windows. Team overrides belong in the project's config.local.yaml, which stays gitignored. Check ddev version output if you customized the location.

Linux
~/.ddev

Prefers ~/.config/ddev when ~/.ddev is absent. On WSL2 the same rules apply inside the Linux home, not the Windows one. Use DDEV_XDG_CONFIG_HOME for anything exotic.

Frequently asked questions

How do I find which global DDEV folder is active?

Run ddev version and grep for global-ddev-dir. That line shows the exact path after all overrides resolve. Remove stale copies in the other standard spots to stop DDEV warning about multiple configs.

Where do per-project DDEV settings live?

In .ddev/config.yaml at the project root, with extra config.*.yaml files merged in alphabetical order. Keep machine-specific tweaks in config.local.yaml so they never get committed.

Notice an outdated path? Let us know.