LinuxCommandLibrary

ddev

Create and manage local development environments

TLDR

Start up a project

$ ddev start
copy

Configure a project's type and docroot
$ ddev config
copy

Follow the log trail
$ ddev logs [[-f|--follow]]
copy

Run composer within the container
$ ddev composer
copy

Install a specific Node.js version
$ ddev nvm install [version]
copy

Export a database
$ ddev export-db [[-f|--file]] [/tmp/db.sql.gz]
copy

Run a specific command within a container
$ ddev exec [echo 1]
copy

SYNOPSIS

ddev <command> [global-options] [command-options] [arguments]

PARAMETERS

--all, -a
    Operate on all projects in current directory

--debug
    Enable debug mode (includes --trace)

--json
    Output in JSON format instead of human-readable

--no-debug
    Disable debug output

--trace
    Print verbose debug traces

--version, -v
    Show DDEV version

--help, -h
    Display help for command

--web-image-extra
    Additional web image packages (e.g., 'imagemagick')

DESCRIPTION

DDEV is a powerful command-line tool for managing local development environments using Docker. It simplifies setting up fully-featured PHP stacks for projects like Drupal, WordPress, TYPOX, Laravel, and more.

Key features include automatic configuration of web servers (Nginx/Apache), databases (MySQL/MariaDB/PostgreSQL), PHP versions, and tools like Composer, MailHog, and Xdebug. DDEV handles DNS resolution, HTTPS certificates, and port management, allowing developers to focus on coding rather than infrastructure.

With a single ddev start command, it spins up a complete environment tied to your project directory. Supports mutli-project workflows, snapshots for backups, database imports/exports, and SSH access. Ideal for teams, as configs are committed to git.

DDEV runs on Linux, macOS, and WSL2, requiring Docker or Podman. It's open-source, actively maintained, and extends easily via custom recipes.

CAVEATS

Requires Docker or Podman installed and running.
Rootless mode recommended on Linux.
Large projects may need increased Docker resources.
Not for production use.

COMMON SUBCOMMANDS

start - Launch project environment
stop - Stop and remove containers
restart - Restart environment
config - Configure project settings
ssh - Access project container shell
logs - View container logs

INSTALLATION ON LINUX

curl -fsSL https://raw.githubusercontent.com/ddev/ddev/master/scripts/install_ddev.sh | bash
Requires mkcert for HTTPS.

HISTORY

Created in 2017 by Randy Fay for Drupal development. Evolved from Docksal; now supports 20+ CMS/frameworks. Major v1.0 in 2020; v1.22+ adds Apple Silicon, PostgreSQL. Maintained by DDEV community under Apache 2.0.

SEE ALSO

Copied to clipboard