Configuration
dde uses two YAML configuration files: a global config for system-wide defaults and a project config for per-project settings.
Global Configuration
Section titled “Global Configuration”Located at ~/.dde/config.yml. This file is not created automatically — create it manually when you need to override defaults. All settings are optional.
# Default output format (text or json)output: text
# Upstream DNS servers for non-.test queriesdns: forward: - 9.9.9.9 - 149.112.112.112
# SSH keys to load (empty = all keys in ~/.ssh/)ssh: keys: - ~/.ssh/id_ed25519
# Default service versionsservices: mariadb: version: "11.8" postgres: version: "18.3" valkey: version: "9"Project Configuration
Section titled “Project Configuration”Located at .dde/config.yml in the project root. Created by dde project:init.
name: my-appservices: - mariadb - valkeycontainers: web: shell: zshServices
Section titled “Services”Services can be specified as a simple string (uses the global default version) or with an explicit version:
services: - mariadb # uses default version - name: mariadb # pins a specific version version: "10.6"Available services: mariadb, postgres, valkey, mailpit.
Containers
Section titled “Containers”Per-container settings, keyed by the service name in your docker-compose.yml:
containers: web: shell: zsh # override shell for dde project:shellOverride Order
Section titled “Override Order”Settings are resolved with the following priority (highest first):
- CLI arguments (
--output=json) - Project config (
.dde/config.yml) - Global config (
~/.dde/config.yml) - Built-in defaults
Environment Variables
Section titled “Environment Variables”| Variable | Default | Description |
|---|---|---|
DDE_CONFIG_DIR | ~/.dde | Global configuration directory |
DDE_DATA_DIR | ~/.dde/data | Data directory (services, certs) |
DDE_UID | Current user’s UID | UID for the container user |
DDE_GID | Current user’s GID | GID for the container user |
DDE_SHELL | Auto-detected (zsh > bash > sh) | Override container shell |