github.com/ddev/ddev@v1.23.2-0.20240519125000-d824ffe36ff3/docs/content/users/usage/commands.md (about)

     1  # Commands
     2  
     3  You can tell DDEV what to do by running its commands. This page details each of the available commands and their options, or flags.
     4  
     5  Run DDEV without any commands or flags to see this list in your terminal:
     6  
     7  ```
     8  →  ddev
     9  Create and maintain a local web development environment.
    10  Docs: https://ddev.readthedocs.io
    11  Support: https://ddev.readthedocs.io/en/stable/users/support
    12  
    13  Usage:
    14    ddev [command]
    15  
    16  Available Commands:
    17    auth             A collection of authentication commands
    18    blackfire        Enable or disable blackfire.io profiling (global shell web container command)
    19    clean            Removes items ddev has created
    20    composer         Executes a composer command within the web container
    21  ...
    22  ```
    23  
    24  Use [`ddev help`](#help) to learn more about a specific command, like this example for [`ddev describe`](#describe):
    25  
    26  ```
    27  →  ddev help describe
    28  Get a detailed description of a running ddev project. Describe provides basic
    29  information about a ddev project, including its name, location, url, and status.
    30  It also provides details for MySQL connections, and connection information for
    31  additional services like Mailpit. You can run 'ddev describe' from
    32  a project directory to describe that project, or you can specify a project to describe by
    33  running 'ddev describe <projectname>'.
    34  
    35  Usage:
    36    ddev describe [projectname] [flags]
    37  
    38  Aliases:
    39    describe, status, st, desc
    40  
    41  Examples:
    42  ddev describe
    43  ddev describe <projectname>
    44  ddev status
    45  ddev st
    46  
    47  Flags:
    48    -h, --help   help for describe
    49  
    50  Global Flags:
    51    -j, --json-output   If true, user-oriented output will be in JSON format.
    52  ```
    53  
    54  ## Global Flags
    55  
    56  Two flags are available for every command:
    57  
    58  * `--help` or `-h`: Outputs more information about a command rather than executing it.
    59  * `--json-output` or `-j`: Format user-oriented output in JSON.
    60  
    61  ---
    62  
    63  ## `auth`
    64  
    65  Authentication commands.
    66  
    67  ### `auth ssh`
    68  
    69  Add [SSH key authentication](../usage/cli.md#ssh-into-containers) to the `ddev-ssh-agent` container.
    70  
    71  Example:
    72  
    73  ```shell
    74  # Add your SSH keys to the SSH agent container
    75  ddev auth ssh
    76  ```
    77  
    78  Flags:
    79  
    80  * `--ssh-key-path`, `-d`: Full path to SSH key directory.
    81  
    82  ## `artisan`
    83  
    84  Run the `artisan` command; available only in projects of type `laravel`, and only available if `artisan` is in the project root.
    85  
    86  ```shell
    87  # Show all artisan subcommands
    88  ddev artisan list
    89  ```
    90  
    91  ## `blackfire`
    92  
    93  Enable or disable [Blackfire profiling](../debugging-profiling/blackfire-profiling.md) (global shell web container command).
    94  
    95  ```shell
    96  # Display Blackfire profiling status
    97  ddev blackfire status
    98  
    99  # Start Blackfire profiling
   100  ddev blackfire on
   101  
   102  # Stop Blackfire profiling
   103  ddev blackfire off
   104  ```
   105  
   106  !!!tip
   107      There are synonyms for the `on` and `off` arguments that have the exact same effect:
   108  
   109      * `on`: `start`, `enable`, `true`
   110      * `off`: `stop`, `disable`, `false`
   111  
   112  ## `cake`
   113  
   114  Run the `cake` command; available only in projects of type `cakephp`, and only available if `cake.php` is in bin folder.
   115  
   116  ```shell
   117  # Show all cake subcommands
   118  ddev cake
   119  ```
   120  
   121  ## `clean`
   122  
   123  Removes items DDEV has created. (See [Uninstalling DDEV](../usage/uninstall.md).)
   124  
   125  Flags:
   126  
   127  * `--all`, `-a`: Clean all DDEV projects.
   128  * `--dry-run`: Run the clean command without deleting.
   129  
   130  Example:
   131  
   132  ```shell
   133  # Preview cleaning all projects without actually removing anything
   134  ddev clean --dry-run --all
   135  
   136  # Clean all projects
   137  ddev clean --all
   138  
   139  # Clean my-project and my-other-project
   140  ddev clean my-project my-other-project
   141  ```
   142  
   143  ## `composer`
   144  
   145  Executes a [Composer command](../usage/developer-tools.md#ddev-and-composer) within the web container.
   146  
   147  `ddev composer create` is a special command that is an adaptation of `composer create-project`. See [DDEV and Composer](../usage/developer-tools.md#ddev-and-composer) for more information.
   148  
   149  Example:
   150  
   151  ```shell
   152  # Install Composer packages
   153  ddev composer install
   154  ```
   155  
   156  Example of `ddev composer create`:
   157  
   158  ```shell
   159  # Create a new Drupal project in the current directory
   160  ddev composer create drupal/recommended-project
   161  ```
   162  
   163  ## `config`
   164  
   165  Create or modify a DDEV project’s configuration in the current directory. By default, `ddev config` will not change configuration that already exists in your `.ddev/config.yaml`, it will only make changes you specify with flags. However, if you want to autodetect everything, `ddev config --update` will usually do everything you need.
   166  
   167  !!!tip "You can also set these via YAML!"
   168      These settings, plus a few more, can be set by editing stored [Config Options](../configuration/config.md).
   169  
   170  Example:
   171  
   172  ```shell
   173  # Start interactive project configuration
   174  ddev config
   175  
   176  # Accept defaults on a new project. This is the same as hitting <RETURN>
   177  # on every question in `ddev config`
   178  ddev config --auto
   179  
   180  ## Detect docroot, project type, and expected defaults for an existing project
   181  ddev config --update
   182  
   183  # Configure a Drupal project with a `web` document root
   184  ddev config --docroot=web --project-type=drupal
   185  
   186  # Switch the project’s default `nginx-fpm` to `apache-fpm`
   187  ddev config --webserver-type=apache-fpm
   188  ```
   189  
   190  Flags:
   191  
   192  * `--additional-fqdns`: Comma-delimited list of project FQDNs.
   193  * `--additional-hostnames`: Comma-delimited list of project hostnames.
   194  * `--auto`: Automatically run config without prompting.
   195  * `--bind-all-interfaces`: Bind host ports on all interfaces, not only on localhost network interface.
   196  * `--composer-root`: Overrides the default Composer root directory for the web service.
   197  * `--composer-root-default`: Unsets a web service Composer root directory override.
   198  * `--composer-version`: Specify override for Composer version in the web container. This may be `""`, `"1"`, `"2"`, `"2.2"`, `"stable"`, `"preview"`, `"snapshot"`, or a specific version.
   199  * `--database`: Specify the database type:version to use. Defaults to `mariadb:10.11`.
   200  * `--db-image`: Sets the db container image.
   201  * `--db-image-default`: Sets the default db container image for this DDEV version.
   202  * `--db-working-dir`: Overrides the default working directory for the db service.
   203  * `--db-working-dir-default`: Unsets a db service working directory override.
   204  * `--dbimage-extra-packages`: A comma-delimited list of Debian packages that should be added to db container when the project is started.
   205  * `--default-container-timeout`: Default time in seconds that DDEV waits for all containers to become ready on start. (default `120`)
   206  * `--disable-settings-management`: Prevent DDEV from creating or updating CMS settings files.
   207  * `--disable-upload-dirs-warning`: Suppresses warning when a project is using `performance_mode: mutagen` but does not have `upload_dirs` set.
   208  * `--docroot`: Provide the relative docroot of the project, like `docroot` or `htdocs` or `web`. (defaults to empty, the current directory)
   209  * `--fail-on-hook-fail`: Decide whether `ddev start` should be interrupted by a failing hook.
   210  * `--host-db-port`: The db container’s localhost-bound port.
   211  * `--host-https-port`: The web container’s localhost-bound HTTPS port.
   212  * `--host-webserver-port`: The web container’s localhost-bound port.
   213  * `--http-port`: The router HTTP port for this project.
   214  * `--https-port`: The router HTTPS port for this project.
   215  * `--image-defaults`: Sets the default web and db container images.
   216  * `--mailpit-http-port`: Router port to be used for Mailpit HTTP access.
   217  * `--mailpit-https-port`: Router port to be used for Mailpit HTTPS access.
   218  * `--ngrok-args`: Provide extra args to ngrok in `ddev share`.
   219  * `--no-project-mount`: Whether or not to skip mounting project code into the web container.
   220  * `--nodejs-version`: Specify the Node.js version to use if you don’t want the default version.
   221  * `--omit-containers`: Comma-delimited list of container types that should not be started when the project is started.
   222  * `--performance-mode`: Performance optimization mode, possible values are `global`, `none`, `mutagen`, `nfs`.
   223  * `--performance-mode-reset`: Reset performance mode to global configuration.
   224  * `--php-version`: PHP version that will be enabled in the web container.
   225  * `--project-name`: Provide the project name of project to configure. (normally the same as the last part of directory name)
   226  * `--project-tld`: Set the top-level domain to be used for projects. (default `"ddev.site"`)
   227  * `--project-type`: Provide the project type: `backdrop`, `drupal`, `drupal6`, `drupal7`, `laravel`, `magento`, `magento2`, `php`, `shopware6`, `silverstripe`, `typo3`, `wordpress`. This is autodetected and this flag is necessary only to override the detection.
   228  * `--show-config-location`: Output the location of the `config.yaml` file if it exists, or error that it doesn’t exist.
   229  * `--timezone`: Specify timezone for containers and PHP, like `Europe/London` or `America/Denver` or `GMT` or `UTC`.
   230  * `--update`: Automatically detect and update settings by inspecting the code.
   231  * `--upload-dirs`: Sets the project’s upload directories, the destination directories of the import-files command.
   232  * `--use-dns-when-possible`: Use DNS for hostname resolution instead of `/etc/hosts` when possible. (default `true`)
   233  * `--web-environment`: Set the environment variables in the web container: `--web-environment="TYPO3_CONTEXT=Development,SOMEENV=someval"`
   234  * `--web-environment-add`: Append environment variables to the web container: `--web-environment="TYPO3_CONTEXT=Development,SOMEENV=someval"`
   235  * `--web-image`: Sets the web container image.
   236  * `--web-image-default`: Sets the default web container image for this DDEV version.
   237  * `--web-working-dir`: Overrides the default working directory for the web service.
   238  * `--web-working-dir-default`: Unsets a web service working directory override.
   239  * `--webimage-extra-packages`: A comma-delimited list of Debian packages that should be added to web container when the project is started.
   240  * `--webserver-type`: Sets the project’s desired web server type: `nginx-fpm`, `nginx-gunicorn`, or `apache-fpm`.
   241  * `--working-dir-defaults`: Unsets all service working directory overrides.
   242  * `--xdebug-enabled`: Whether or not Xdebug is enabled in the web container.
   243  
   244  ### `config global`
   245  
   246  Change global configuration.
   247  
   248  ```shell
   249  # Opt out of sharing anonymized usage information
   250  ddev config global --instrumentation-opt-in=false
   251  
   252  # Skip the SSH agent for all projects
   253  ddev config global --omit-containers=ddev-ssh-agent
   254  ```
   255  
   256  * `--disable-http2`: Optionally disable http2 in `ddev-router`; `ddev config global --disable-http2` or `ddev config global --disable-http2=false`. This option is not available in the current Traefik-based `ddev-router`, but only in the deprecated `nginx-proxy` router.
   257  * `--fail-on-hook-fail`: If true, `ddev start` will fail when a hook fails.
   258  * `--instrumentation-opt-in`: `instrumentation-opt-in=true`.
   259  * `--internet-detection-timeout-ms`: Increase timeout when checking internet timeout, in milliseconds. (default `3000`)
   260  * `--letsencrypt-email`: Email associated with Let’s Encrypt; `ddev global --letsencrypt-email=me@example.com`.
   261  * `--mailpit-http-port`: The Mailpit HTTP port *default* for all projects; can be overridden by project configuration.
   262  * `--mailpit-https-port`: The Mailpit HTTPS port *default* for all projects; can be overridden by project configuration.
   263  * `--no-bind-mounts`: If `true`, don’t use bind-mounts. Useful for environments like remote Docker where bind-mounts are impossible. (default is equal to `--no-bind-mounts=true`)
   264  * `--omit-containers`: For example, `--omit-containers=ddev-ssh-agent`.
   265  * `--performance-mode`: Performance optimization mode, possible values are `none`, `mutagen`, `nfs`.
   266  * `--performance-mode-reset`: Reset performance optimization mode to operating system default (`none` for Linux and WSL2, `mutagen` for macOS and traditional Windows).
   267  * `--project-tld`: Set the default top-level domain to be used for all projects. (default `"ddev.site"`). Note that this will be overridden in a project that defines `project_tld`.
   268  * `--router-http-port`: The router HTTP port *default* for all projects; can be overridden by project configuration.
   269  * `--router-https-port`: The router HTTPS port *default* for all projects; can be overridden by project configuration.
   270  * `--simple-formatting`: If `true`, use simple formatting and no color for tables.
   271  * `--table-style`: Table style for list and describe, see `~/.ddev/global_config.yaml` for values.
   272  * `--traefik-monitor-port`: Can be used to change the Traefik monitor port in case of port conflicts, for example `ddev config global --traefik-monitor-port=11999`.
   273  * `--use-hardened-images`: If `true`, use more secure 'hardened' images for an actual internet deployment.
   274  * `--use-letsencrypt`: Enables experimental Let’s Encrypt integration; `ddev global --use-letsencrypt` or `ddev global --use-letsencrypt=false`.
   275  * `--web-environment`: Set the environment variables in the web container: `--web-environment="TYPO3_CONTEXT=Development,SOMEENV=someval"`
   276  * `--web-environment-add`: Append environment variables to the web container: `--web-environment="TYPO3_CONTEXT=Development,SOMEENV=someval"`
   277  
   278  ## `craft`
   279  
   280  Run a [Craft CMS command](https://craftcms.com/docs/4.x/console-commands.html) inside the web container (global shell web container command).
   281  
   282  Example:
   283  
   284  ```shell
   285  # Run pending Craft migrations and apply pending project config changes
   286  ddev craft up
   287  ```
   288  
   289  ## `dbeaver`
   290  
   291  Open [DBeaver](https://dbeaver.io/) with the current project’s database (global shell host container command). This command is only available if `DBeaver.app` is installed as `/Applications/DBeaver.app` for macOS, if `dbeaver.exe` is installed to all users as `C:/Program Files/dbeaver/dbeaver.exe` for WSL2, and if `dbeaver` (or another binary like `dbeaver-ce`) available inside `/usr/bin` for Linux (Flatpak and snap support included).
   292  
   293  Example:
   294  
   295  ```shell
   296  # Open the current project’s database in DBeaver
   297  ddev dbeaver
   298  ```
   299  
   300  ## `debug`
   301  
   302  *Aliases: `d`, `dbg`.*
   303  
   304  A collection of debugging commands, often useful for [troubleshooting](troubleshooting.md).
   305  
   306  ### `debug capabilities`
   307  
   308  Show capabilities of this version of DDEV.
   309  
   310  Example:
   311  
   312  ```shell
   313  # List capabilities of the current project
   314  ddev debug capabilities
   315  
   316  # List capabilities of `my-project`
   317  ddev debug capabilities my-project
   318  ```
   319  
   320  ### `debug check-db-match`
   321  
   322  Verify that the database in the db server matches the configured [type and version](../extend/database-types.md).
   323  
   324  Example:
   325  
   326  ```shell
   327  # Check whether project’s running database matches configuration
   328  ddev debug check-db-match
   329  ```
   330  
   331  ### `debug compose-config`
   332  
   333  Prints the current project’s docker-compose configuration.
   334  
   335  Example:
   336  
   337  ```shell
   338  # Print docker-compose config for the current project
   339  ddev debug compose-config
   340  
   341  # Print docker-compose config for `my-project`
   342  ddev debug compose-config my-project
   343  ```
   344  
   345  ### `debug configyaml`
   346  
   347  Prints the project [`config.*.yaml`](../configuration/config.md) usage.
   348  
   349  Example:
   350  
   351  ```shell
   352  # Print config for the current project
   353  ddev debug configyaml
   354  
   355  # Print config specifically for `my-project`
   356  ddev debug configyaml my-project
   357  ```
   358  
   359  ### `debug dockercheck`
   360  
   361  Diagnose DDEV Docker/Colima setup.
   362  
   363  Example:
   364  
   365  ```shell
   366  # Output contextual details for the Docker provider
   367  ddev debug dockercheck
   368  ```
   369  
   370  ### `debug download-images`
   371  
   372  Download the basic Docker images required by DDEV. This can be useful on a new machine to prevent `ddev start` or other commands having to download the various images.
   373  
   374  Example:
   375  
   376  ```shell
   377  # Download DDEV’s basic Docker images
   378  ddev debug download-images
   379  ```
   380  
   381  ### `debug fix-commands`
   382  
   383  Refreshes [custom command](../extend/custom-commands.md) definitions without running [`ddev start`](#start).
   384  
   385  Example:
   386  
   387  ```shell
   388  # Refresh the current project’s custom commands
   389  ddev debug fix-commands
   390  ```
   391  
   392  ### `debug get-volume-db-version`
   393  
   394  Get the database type and version found in the `ddev-dbserver` database volume, which may not be the same as the configured database [type and version](../extend/database-types.md).
   395  
   396  Example:
   397  
   398  ```shell
   399  # Print the database volume’s engine and version
   400  ddev debug get-volume-db-version
   401  ```
   402  
   403  ### `debug migrate-database`
   404  
   405  Migrate a MySQL or MariaDB database to a different `dbtype:dbversion`. Works only with MySQL and MariaDB, not with PostgreSQL.
   406  
   407  Example:
   408  
   409  ```shell
   410  # Migrate the current project’s database to MariaDB 10.7
   411  ddev debug migrate-database mariadb:10.7
   412  ```
   413  
   414  ### `debug mutagen`
   415  
   416  Allows access to any [Mutagen command](https://mutagen.io/documentation/introduction).
   417  
   418  Example:
   419  
   420  ```shell
   421  # Run Mutagen’s `sync list` command
   422  ddev debug mutagen sync list
   423  ```
   424  
   425  ### `debug nfsmount`
   426  
   427  Checks to see if [NFS mounting](../install/performance.md#nfs) works for current project.
   428  
   429  Example:
   430  
   431  ```shell
   432  # See if NFS is working as expected for the current project
   433  ddev debug nfsmount
   434  ```
   435  
   436  ### `debug refresh`
   437  
   438  Refreshes the project’s Docker cache.
   439  
   440  Example:
   441  
   442  ```shell
   443  # Refresh the current project’s Docker cache
   444  ddev debug refresh
   445  ```
   446  
   447  ### `debug router-nginx-config`
   448  
   449  Prints the router’s [nginx config](../extend/customization-extendibility.md#custom-nginx-configuration).
   450  
   451  Example:
   452  
   453  ```shell
   454  # Output router nginx configuration
   455  ddev debug router-nginx-config
   456  ```
   457  
   458  ### `debug test`
   459  
   460  Run diagnostics using the embedded [test script](https://github.com/ddev/ddev/blob/master/cmd/ddev/cmd/scripts/test_ddev.sh).
   461  
   462  Example:
   463  
   464  ```shell
   465  # Run DDEV’s diagnostic suite
   466  ddev debug test
   467  ```
   468  
   469  ### `debug testcleanup`
   470  
   471  Removes all diagnostic projects created with `ddev debug test`.
   472  
   473  Example:
   474  
   475  ```shell
   476  # Remove all DDEV’s diagnostic projects
   477  ddev debug testcleanup
   478  ```
   479  
   480  ## `delete`
   481  
   482  Remove all information, including the database, for an existing project.
   483  
   484  Flags:
   485  
   486  * `--all`, `-a`: Delete all projects.
   487  * `--clean-containers`: Clean up all DDEV Docker containers not required by this version of DDEV. (default `true`)
   488  * `--omit-snapshot`, `-O`: Omit/skip database snapshot.
   489  * `--yes`, `-y`: Skip confirmation prompt.
   490  
   491  Example:
   492  
   493  ```shell
   494  # Delete my-project and my-other-project
   495  ddev delete my-project my-other-project
   496  
   497  # Delete the current project without taking a snapshot or confirming
   498  ddev delete --omit-snapshot --yes
   499  ```
   500  
   501  ### `delete images`
   502  
   503  With `--all`, it deletes all `ddev/ddev-*` Docker images.
   504  
   505  Flags:
   506  
   507  * `--all`, `-a`: If set, deletes all Docker images created by DDEV.
   508  * `--yes`, `-y`: Skip confirmation prompt.
   509  
   510  Example:
   511  
   512  ```shell
   513  # Delete images
   514  ddev delete images
   515  
   516  # Delete images and skip confirmation
   517  ddev delete images -y
   518  
   519  # Delete all DDEV-created images
   520  ddev delete images --all
   521  ```
   522  
   523  ## `describe`
   524  
   525  *Aliases: `status`, `st`, `desc`.*
   526  
   527  Get a detailed description of a running DDEV project.
   528  
   529  Example:
   530  
   531  ```shell
   532  # Display details for the current project
   533  ddev describe
   534  
   535  # Display details for my-project
   536  ddev describe my-project
   537  ```
   538  
   539  ## `drush`
   540  
   541  Run the `drush` command; available only in projects of type `drupal*`, and only available if `drush` is in the project. On projects of type `drupal`, `drush` should be installed in the project itself, (`ddev composer require drush/drush`). On projects of type `drupal7` `drush` 8 is provided by DDEV.
   542  
   543  ```shell
   544  # Show drush status/configuration
   545  ddev drush st
   546  ```
   547  
   548  ## `exec`
   549  
   550  *Alias: `.`.*
   551  
   552  [Execute a shell command in the container](../usage/cli.md#executing-commands-in-containers) for a service. Uses the web service by default.
   553  
   554  To run your command in a different service container, run `ddev exec --service <service> <cmd>`. Use the `--raw` flag if you’d like to run a raw, uninterpreted command in a container.
   555  
   556  Flags:
   557  
   558  * `--dir`, `-d`: Defines the execution directory within the container.
   559  * `--raw`: Use raw exec (do not interpret with Bash inside container). (default `true`)
   560  * `--service`, `-s`: Defines the service to connect to. (e.g. `web`, `db`) (default `"web"`)
   561  
   562  Example:
   563  
   564  ```shell
   565  # List the web container’s docroot contents
   566  ddev exec ls /var/www/html
   567  
   568  # List the web container’s vendor directory contents
   569  ddev exec --dir /var/www/html/vendor ls
   570  
   571  # Output a long, recursive list of the files in the web container
   572  ddev exec --raw -- ls -lR
   573  ```
   574  
   575  ## `export-db`
   576  
   577  Dump a database to a file or to stdout.
   578  
   579  Flags:
   580  
   581  * `--bzip2`: Use bzip2 compression.
   582  * `--database`, `-d`: Target database to export from (default `"db"`)
   583  * `--file`, `-f`: Path to a SQL dump file to export to
   584  * `--gzip`: Use gzip compression (default `true`)
   585  * `--xz`: Use xz compression.
   586  
   587  Example:
   588  
   589  ```shell
   590  # Dump and compress the current project’s database to `/tmp/db.sql.gz`
   591  ddev export-db --file=/tmp/db.sql.gz
   592  
   593  # Dump the current project’s database, without compressing it, to `/tmp/db.sql`
   594  ddev export-db --gzip=false --file /tmp/db.sql
   595  
   596  # Dump and compress the current project’s `foo` database instead of `db`
   597  ddev export-db --database=foo --file=/tmp/db.sql.gz
   598  
   599  # Output the current project’s database and use `>` to write to `/tmp/db.sql.gz`
   600  ddev export-db > /tmp/db.sql.gz
   601  
   602  # Dump my-project’s database, without compressing it, to `/tmp/my-project.sql`
   603  ddev export-db my-project --gzip=false --file=/tmp/my-project.sql
   604  ```
   605  
   606  ## `get`
   607  
   608  Download an [add-on](../extend/additional-services.md) (service, provider, etc.).
   609  
   610  Flags:
   611  
   612  * `--all`: List unofficial *and* official add-ons. (default `true`)
   613  * `--list`: List official add-ons. (default `true`)
   614  * `--installed`: List installed add-ons
   615  * `--remove <add-on>`: Remove an installed add-on
   616  * `--version <version>`: Specify a version to download
   617  * `--verbose`, `-v`: Output verbose error information with Bash `set -x` (default `false`)
   618  
   619  Environment variables:
   620  
   621  * `DDEV_GITHUB_TOKEN`: A [GitHub token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token) may be used for `ddev get` requests (which result in GitHub API queries). It's unusual for casual users to need this, but if you're doing lots of `ddev get` requests you may run into rate limiting. The token you use requires no privileges at all. Example:
   622  
   623  ```bash
   624  export DDEV_GITHUB_TOKEN=<your github token>
   625  ddev get --list --all
   626  ```
   627  
   628  Example:
   629  
   630  ```shell
   631  # List official add-ons
   632  ddev get --list
   633  
   634  # List official and third-party add-ons
   635  ddev get --list --all
   636  
   637  # Download the official Redis add-on
   638  ddev get ddev/ddev-redis
   639  
   640  # Get debug info about `ddev get` failure
   641  ddev get ddev/ddev-redis --verbose
   642  
   643  # Download the official Redis add-on, version v1.0.4
   644  ddev get ddev/ddev-redis --version v1.0.4
   645  
   646  # Download the Drupal Solr add-on from its v1.2.3 release tarball
   647  ddev get https://github.com/ddev/ddev-drupal-solr/archive/refs/tags/v1.2.3.tar.gz
   648  
   649  # Copy an add-on available in another directory
   650  ddev get /path/to/package
   651  
   652  # Copy an add-on from a tarball in another directory
   653  ddev get /path/to/tarball.tar.gz
   654  
   655  # View installed add-ons
   656  ddev get --installed
   657  
   658  # Remove an add-on can be done with the full name, the short name of repo
   659  # or with owner/repo format
   660  ddev get --remove redis
   661  ddev get --remove ddev-redis
   662  ddev get --remove ddev/ddev-redis
   663  ```
   664  
   665  In general, you can run `ddev get` multiple times without doing any damage. Updating an add-on can be done by running `ddev get <add-on-name>`. If you have changed an add-on file and removed the `#ddev-generated` marker in the file, that file will not be touched and DDEV will let you know about it.
   666  
   667  ## `heidisql`
   668  
   669  Open [HeidiSQL](https://www.heidisql.com/) with the current project’s database (global shell host container command). This command is only available if `Heidisql.exe` is installed as `C:\Program Files\HeidiSQL\Heidisql.exe`.
   670  
   671  Example:
   672  
   673  ```shell
   674  # Open the current project’s database in HeidiSQL
   675  ddev heidisql
   676  ```
   677  
   678  ## `help`
   679  
   680  Help about any command.
   681  
   682  Example:
   683  
   684  ```shell
   685  # Illuminate the virtues of the `describe` command
   686  ddev help describe
   687  ```
   688  
   689  ## `hostname`
   690  
   691  Manage your hostfile entries.
   692  
   693  Flags:
   694  
   695  * `--remove`, `-r`: Remove the provided hostname - ip correlation.
   696  * `--remove-inactive`, `-R`: Remove hostnames of inactive projects.
   697  
   698  Example:
   699  
   700  ```shell
   701  ddev hostname somesite.ddev.local 127.0.0.1
   702  ```
   703  
   704  ## `import-db`
   705  
   706  [Import a SQL file](database-management.md) into the project.
   707  
   708  Flags:
   709  
   710  * `--database`, `-d`: Target database to import into (default `"db"`)
   711  * `--extract-path`: Path to extract within the archive
   712  * `--file`, `-f`: Path to a SQL dump in `.sql`, `.tar`, `.tar.gz`, `.tar.bz2`, `.tar.xz`, `.tgz`, or `.zip` format
   713  * `--no-drop`: Do not drop the database before importing
   714  * `--no-progress`: Do not output progress
   715  
   716  Example:
   717  
   718  ```shell
   719  # Start the interactive import utility
   720  ddev import-db
   721  
   722  # Import the `.tarballs/db.sql` dump to the project database
   723  ddev import-db --file=.tarballs/db.sql
   724  
   725  # Import the compressed `.tarballs/db.sql.gz` dump to the project database
   726  ddev import-db --file=.tarballs/db.sql.gz
   727  
   728  # Import the compressed `.tarballs/db.sql.gz` dump to a `other_db` database
   729  ddev import-db --database=additional_db --file=.tarballs/db.sql.gz
   730  
   731  # Import the `db.sql` dump to the project database
   732  ddev import-db < db.sql
   733  
   734  # Import the `db.sql` dump to the `my-project` default database
   735  ddev import-db my-project < db.sql
   736  
   737  # Uncompress `db.sql.gz` and pipe the result to the `import-db` command
   738  gzip -dc db.sql.gz | ddev import-db
   739  ```
   740  
   741  ## `import-files`
   742  
   743  Pull the uploaded files directory of an existing project to the default public upload directory of your project. More usage information and a description of the Tar or ZIP archive is in the [usage section](../usage/cli.md#ddev-import-files).
   744  
   745  Flags:
   746  
   747  * `--extract-path`: Path to extract within the archive.
   748  * `--source`, `-s`: Path to the source directory or source archive in `.tar`, `.tar.gz`, `.tar.bz2`, `.tar.xz`, `.tgz`, or `.zip` format.
   749  * `--target`, `-t`: Target upload dir, defaults to the first upload dir.
   750  
   751  Example:
   752  
   753  ```shell
   754  # Extract+import `/path/to/files.tar.gz` to the project’s first upload directory
   755  ddev import-files --source=/path/to/files.tar.gz
   756  
   757  # Import `/path/to/dir` contents to the project’s first upload directory
   758  ddev import-files --source=/path/to/dir
   759  
   760  # Import `.tarballs/files.tar.xz` contents to the project’s `../private` upload directory
   761  ddev import-files --source=.tarballs/files.tar.xz --target=../private
   762  
   763  # Import `/path/to/dir` contents to the project’s `sites/default/files` upload directory
   764  ddev import-files -s=.tarballs/files.tar.gz -t=sites/default/files
   765  ```
   766  
   767  ## `launch`
   768  
   769  Launch a browser with the current site (global shell host container command).
   770  
   771  Flags:
   772  
   773  * `--mailpit`, `-m`: Open Mailpit.
   774  
   775  !!!tip "How to disable HTTP redirect to HTTPS?"
   776      Recommendations for:
   777  
   778      * [Google Chrome](https://stackoverflow.com/q/73875589)
   779      * [Mozilla Firefox](https://stackoverflow.com/q/30532471)
   780      * [Safari](https://stackoverflow.com/q/46394682)
   781  
   782  Example:
   783  
   784  ```shell
   785  # Open your project’s base URL in the default browser
   786  ddev launch
   787  
   788  # Open Mailpit in the default browser
   789  ddev launch --mailpit
   790  
   791  # Open your project’s base URL appended with `temp/phpinfo.php`
   792  ddev launch temp/phpinfo.php
   793  
   794  # Open the full URL (any website) in the default browser
   795  ddev launch https://your.ddev.site
   796  
   797  # Open your project’s base URL using a specific port
   798  ddev launch :3000
   799  ```
   800  
   801  ## `list`
   802  
   803  *Aliases: `l`, `ls`.*
   804  
   805  List projects.
   806  
   807  Flags:
   808  
   809  * `--active-only`, `-A`: If set, only currently active projects will be displayed.
   810  * `--continuous`: If set, project information will be emitted until the command is stopped.
   811  * `--continuous-sleep-interval`, `-I`: Time in seconds between `ddev list --continuous` output lists. (default `1`)
   812  * `--type`, `-t`: Show only projects of this type (e.g. `drupal`, `wordpress`, `php`).
   813  * `--wrap-table`, `-W`: Display table with wrapped text if required.
   814  
   815  Example:
   816  
   817  ```shell
   818  # List all projects
   819  ddev list
   820  
   821  # List all running projects
   822  ddev list --active-only
   823  
   824  # List all WordPress projects
   825  ddev list --type wordpress
   826  ```
   827  
   828  ## `logs`
   829  
   830  Get the logs from your running services.
   831  
   832  Flags:
   833  
   834  * `--follow`, `-f`: Follow the logs in real time.
   835  * `--service`, `-s`: Defines the service to retrieve logs from (e.g. `web`, `db`). (default `"web"`)
   836  * `--tail`: How many lines to show.
   837  * `--time`, `-t`: Add timestamps to logs.
   838  
   839  Example:
   840  
   841  ```shell
   842  # Display recent logs from the current project’s web server
   843  ddev logs
   844  
   845  # Stream logs from the current project’s web server in real time
   846  ddev logs -f
   847  
   848  # Display recent logs from the current project’s database server
   849  ddev logs -s db
   850  
   851  # Display recent logs from my-project’s database server
   852  ddev logs -s db my-project
   853  ```
   854  
   855  ## `mailpit`
   856  
   857  Launch a browser with mailpit for the current project (global shell host container command).
   858  
   859  Example:
   860  
   861  ```shell
   862  # Open Mailpit in the default browser
   863  ddev mailpit
   864  ```
   865  
   866  ## `magento`
   867  
   868  Run the `magento` command; available only in projects of type `magento2`, and only works if `bin/magento` is in the project.
   869  
   870  ```shell
   871  # Show all magento subcommands
   872  ddev magento list
   873  ```
   874  
   875  ## `mutagen`
   876  
   877  Commands for [Mutagen](../install/performance.md#mutagen) status and sync, etc.
   878  
   879  ### `mutagen logs`
   880  
   881  Show Mutagen logs for debugging.
   882  
   883  Flags:
   884  
   885  * `--verbose`: Show full Mutagen logs.
   886  
   887  Example:
   888  
   889  ```shell
   890  # Stream Mutagen’s logs in real time
   891  ddev mutagen logs
   892  
   893  # Stream Mutagen’s more detailed logs in real time
   894  ddev mutagen logs --verbose
   895  ```
   896  
   897  ### `mutagen monitor`
   898  
   899  Monitor Mutagen status.
   900  
   901  Example:
   902  
   903  ```shell
   904  # Start Mutagen’s sync process and monitor its status in real time
   905  ddev mutagen sync && ddev mutagen monitor
   906  ```
   907  
   908  ### `mutagen reset`
   909  
   910  Stops a project and removes the Mutagen Docker volume.
   911  
   912  ```shell
   913  # Reset Mutagen data for the current project
   914  ddev mutagen reset
   915  
   916  # Reset Mutagen data for my-project
   917  ddev mutagen reset my-project
   918  ```
   919  
   920  ### `mutagen status`
   921  
   922  Shows Mutagen sync status.
   923  
   924  Flags:
   925  
   926  * `--verbose`, `-l`: Extended/verbose output for Mutagen status.
   927  
   928  Example:
   929  
   930  ```shell
   931  # Display Mutagen sync status for the current project
   932  ddev mutagen status
   933  
   934  # Display Mutagen sync status for my-project
   935  ddev mutagen status my-project
   936  ```
   937  
   938  ### `mutagen sync`
   939  
   940  Explicit sync for Mutagen.
   941  
   942  Flags:
   943  
   944  * `--verbose`: Extended/verbose output for Mutagen status.
   945  
   946  Example:
   947  
   948  ```shell
   949  # Initiate Mutagen sync for the current project
   950  ddev mutagen sync
   951  
   952  # Initiate Mutagen sync for my-project
   953  ddev mutagen sync my-project
   954  ```
   955  
   956  ## `mysql`
   957  
   958  Run MySQL client in the database container (global shell db container command). This is only available on projects that use the `mysql` or `mariadb` database types.
   959  
   960  Example:
   961  
   962  ```shell
   963  # Run the database container’s MySQL client
   964  ddev mysql
   965  
   966  # Run the database container’s MySQL client as root user
   967  ddev mysql -uroot -proot
   968  
   969  # Pipe the `SHOW TABLES;` command to the MySQL client to see a list of tables
   970  echo 'SHOW TABLES;' | ddev mysql
   971  ```
   972  
   973  ## `npm`
   974  
   975  Run [`npm`](https://docs.npmjs.com/cli/v9/commands/npm) inside the web container (global shell web container command).
   976  
   977  Example:
   978  
   979  ```shell
   980  # Install JavaScript packages using `npm`
   981  ddev npm install
   982  
   983  # Update JavaScript packages using `npm`
   984  ddev npm update
   985  ```
   986  
   987  ## `nvm`
   988  
   989  Run [`nvm`](https://github.com/nvm-sh/nvm#usage) inside the web container (global shell web container command).
   990  
   991  !!!tip
   992      Use of `ddev nvm` is discouraged because `nodejs_version` is much easier to use, can specify any version, and is more robust than using `nvm`.
   993  
   994  Example:
   995  
   996  ```shell
   997  # Use `nvm` to switch to Node.js v20
   998  ddev nvm install 20
   999  
  1000  # Check the installed Node.js version
  1001  ddev nvm current
  1002  
  1003  # Reset Node.js to `nodejs_version`
  1004  ddev nvm alias default system
  1005  
  1006  # Switch between two installed Node.js versions
  1007  ddev nvm install 20
  1008  ddev nvm install 18
  1009  ddev nvm alias default 20
  1010  ddev nvm alias default 18
  1011  ```
  1012  
  1013  !!!warning "`nvm use` works only inside the web container after `ddev ssh`"
  1014      Use `ddev nvm alias default <version>` instead.
  1015  
  1016  ## `php`
  1017  
  1018  Run `php` inside the web container (global shell web container command).
  1019  
  1020  Example:
  1021  
  1022  ```shell
  1023  # Output the web container’s PHP version
  1024  ddev php --version
  1025  ```
  1026  
  1027  ## `poweroff`
  1028  
  1029  *Alias: `powerdown`.*
  1030  
  1031  Completely stop all projects and containers.
  1032  
  1033  !!!tip
  1034      This is the equivalent of running `ddev stop -a --stop-ssh-agent`.
  1035  
  1036  Example:
  1037  
  1038  ```shell
  1039  # Stop all projects and containers
  1040  ddev poweroff
  1041  ```
  1042  
  1043  ## `psql`
  1044  
  1045  Run PostgreSQL client in the database container (global shell db container command). This is only available on projects that use the `postgres` database type.
  1046  
  1047  Example:
  1048  
  1049  ```shell
  1050  # List available databases
  1051  ddev psql -l
  1052  
  1053  # List tables in the default 'db' database
  1054  echo "\dt;" | ddev psql
  1055  
  1056  ```
  1057  
  1058  ## `pull`
  1059  
  1060  Pull files and database using a configured [provider plugin](./../providers/index.md).
  1061  
  1062  Flags:
  1063  
  1064  * `--environment=ENV1=val1,ENV2=val2`
  1065  * `--skip-confirmation`, `-y`: Skip confirmation step.
  1066  * `--skip-db`: Skip pulling database archive.
  1067  * `--skip-files`: Skip pulling file archive.
  1068  * `--skip-import`: Download archive(s) without importing than.
  1069  
  1070  Example:
  1071  
  1072  ```shell
  1073  # Pull a backup from the configured Pantheon project to use locally
  1074  ddev pull pantheon
  1075  
  1076  # Pull a backup from the configured Platform.sh project to use locally
  1077  ddev pull platform
  1078  
  1079  # Pull a backup from the configured Pantheon project without confirming
  1080  ddev pull pantheon -y
  1081  
  1082  # Pull the Platform.sh database archive *only* without confirming
  1083  ddev pull platform --skip-files -y
  1084  
  1085  # Pull the localfile integration’s files *only* without confirming
  1086  ddev pull localfile --skip-db -y
  1087  
  1088  # Pull from Platform.sh specifying the environment variables PLATFORM_ENVIRONMENT and PLATFORM_CLI_TOKEN on the command line
  1089  ddev pull platform --environment=PLATFORM_ENVIRONMENT=main,PLATFORMSH_CLI_TOKEN=abcdef
  1090  ```
  1091  
  1092  ## `push`
  1093  
  1094  Push files and database using a configured [provider plugin](./../providers/index.md).
  1095  
  1096  Example:
  1097  
  1098  ```shell
  1099  # Push local files and database to the configured Pantheon project
  1100  ddev push pantheon
  1101  
  1102  # Push local files and database to the configured Platform.sh project
  1103  ddev push platform
  1104  
  1105  # Push files and database to Pantheon without confirming
  1106  ddev push pantheon -y
  1107  
  1108  # Push database only to Platform.sh without confirming
  1109  ddev push platform --skip-files -y
  1110  
  1111  # Push files only to Acquia without confirming
  1112  ddev push acquia --skip-db -y
  1113  ```
  1114  
  1115  ## `python`
  1116  
  1117  Runs `python` inside the web container in the same relative directory you're in on the host.
  1118  
  1119  `ddev python` is only available on Python-based project types like Django and Python.
  1120  
  1121  Example:
  1122  
  1123  ```shell
  1124  # Run manage.py
  1125  ddev python manage.py migrate
  1126  ```
  1127  
  1128  ## `querious`
  1129  
  1130  Open [Querious](https://www.araelium.com/querious) with the current project’s MariaDB or MySQL database (global shell host container command). This is only available if `Querious.app` is installed as `/Applications/Querious.app`, and only for projects with `mysql` or `mariadb` databases.
  1131  
  1132  Example:
  1133  
  1134  ```shell
  1135  # Open the current project’s database in Querious
  1136  ddev querious
  1137  ```
  1138  
  1139  ## `restart`
  1140  
  1141  Restart one or several projects.
  1142  
  1143  Flags:
  1144  
  1145  * `--all`, `-a`: Restart all projects.
  1146  
  1147  Example:
  1148  
  1149  ```shell
  1150  # Restart the current project
  1151  ddev restart
  1152  
  1153  # Restart my-project and my-other-project
  1154  ddev restart my-project my-other-project
  1155  
  1156  # Restart all projects
  1157  ddev restart --all
  1158  ```
  1159  
  1160  ## `sake`
  1161  
  1162  Run the `sake` command, only available for Silverstripe projects and if the Silverstripe `sake` command is
  1163  available in the `vendor/bin` folder.
  1164  
  1165  Common commands:
  1166  
  1167  * Build database: `ddev sake dev/build`
  1168  * List of available tasks: `ddev sake dev/tasks`
  1169  
  1170  ## `self-upgrade`
  1171  
  1172  Output instructions for updating or upgrading DDEV. The command doesn’t perform the upgrade, but tries to provide instructions relevant to your installation.
  1173  
  1174  Example:
  1175  
  1176  ```
  1177  →  ddev self-upgrade
  1178  
  1179  DDEV appears to have been installed with install_ddev.sh, you can run that script again to update.
  1180  curl -fsSL https://ddev.com/install.sh | bash
  1181  ```
  1182  
  1183  ## `sequelace`
  1184  
  1185  Open [SequelAce](https://sequel-ace.com/) with the current project’s database (global shell host container command). This command is only available if `Sequel Ace.app` is installed as `/Applications/Sequel ace.app`, and only for projects with `mysql` or `mariadb` databases.
  1186  
  1187  Example:
  1188  
  1189  ```shell
  1190  # Open the current project’s database in SequelAce
  1191  ddev sequelace
  1192  ```
  1193  
  1194  ## `sequelpro`
  1195  
  1196  !!!warning "Sequel Pro is abandoned!"
  1197      The project is abandoned and doesn’t work with MySQL 8. We recommend Sequel Ace, Querious, TablePlus, and DBeaver.
  1198  
  1199  Open Sequel Pro with the current project’s database (global shell host container command). This command is only available if `Sequel Pro.app` is installed as `/Applications/Sequel pro.app`, and only for projects with `mysql` or `mariadb` databases.
  1200  
  1201  Example:
  1202  
  1203  ```shell
  1204  # Open the current project’s database in Sequel Pro
  1205  ddev sequelpro
  1206  ```
  1207  
  1208  ## `service`
  1209  
  1210  Add or remove, enable or disable [extra services](../extend/additional-services.md).
  1211  
  1212  ### `service disable`
  1213  
  1214  Disable a service.
  1215  
  1216  Example:
  1217  
  1218  ```shell
  1219  # Disable the Solr service
  1220  ddev service disable solr
  1221  ```
  1222  
  1223  ### `service enable`
  1224  
  1225  Enable a service.
  1226  
  1227  Example:
  1228  
  1229  ```shell
  1230  # Enable the Solr service
  1231  ddev service enable solr
  1232  ```
  1233  
  1234  ## `share`
  1235  
  1236  [Share the current project](../topics/sharing.md) on the internet via [ngrok](https://ngrok.com).
  1237  
  1238  !!!tip
  1239      Any ngrok flag can also be specified in the [`ngrok_args` config setting](../configuration/config.md#ngrok_args).
  1240  
  1241  Flags:
  1242  
  1243  * `--ngrok-args`: Accepts any flag from `ngrok http --help`.
  1244  
  1245  Example:
  1246  
  1247  ```shell
  1248  # Share the current project with ngrok
  1249  ddev share
  1250  
  1251  # Share the current project with ngrok, using domain `foo.ngrok-free.app`
  1252  ddev share --ngrok-args "--domain foo.ngrok-free.app"
  1253  
  1254  # Share the current project using ngrok’s basic-auth argument
  1255  ddev share --ngrok-args "--basic-auth username:pass1234"
  1256  
  1257  # Share my-project with ngrok
  1258  ddev share my-project
  1259  ```
  1260  
  1261  ## `snapshot`
  1262  
  1263  Create a database snapshot for one or more projects.
  1264  
  1265  This uses `xtrabackup` or `mariabackup` to create a database snapshot in the `.ddev/db_snapshots` directory. These are compatible with server backups using the same tools and can be restored with the [`snapshot restore`](#snapshot-restore) command.
  1266  
  1267  See [Snapshotting and Restoring a Database](../usage/cli.md#snapshotting-and-restoring-a-database) for more detail, or [Database Management](../usage/database-management.md) for more on working with databases in general.
  1268  
  1269  Flags:
  1270  
  1271  * `--all`, `-a`: Snapshot all projects. (Will start stopped or paused projects.)
  1272  * `--cleanup`, `-C`: Cleanup snapshots.
  1273  * `--list`, `-l`: List snapshots.
  1274  * `--name`, `-n`: Provide a name for the snapshot.
  1275  * `--yes`, `-y`: Skip confirmation prompt.
  1276  
  1277  Example:
  1278  
  1279  ```shell
  1280  # Take a database snapshot for the current project
  1281  ddev snapshot
  1282  
  1283  # Take a database snapshot for the current project, named `my_snapshot_name`
  1284  ddev snapshot --name my_snapshot_name
  1285  
  1286  # Take a snapshot for the current project, cleaning up existing snapshots
  1287  ddev snapshot --cleanup
  1288  
  1289  # Take a snapshot for the current project, cleaning existing snapshots and skipping prompt
  1290  ddev snapshot --cleanup -y
  1291  
  1292  # List the current project’s snapshots
  1293  ddev snapshot --list
  1294  
  1295  # Take a snapshot for each project
  1296  ddev snapshot --all
  1297  ```
  1298  
  1299  ### `snapshot restore`
  1300  
  1301  Restores a database snapshot from the `.ddev/db_snapshots` directory.
  1302  
  1303  Flags:
  1304  
  1305  * `--latest`: Use the latest snapshot.
  1306  
  1307  Example:
  1308  
  1309  ```shell
  1310  # Restore the most recent snapshot
  1311  ddev snapshot restore --latest
  1312  
  1313  # Restore the previously-taken `my_snapshot_name` snapshot
  1314  ddev snapshot restore my_snapshot_name
  1315  ```
  1316  
  1317  ## `ssh`
  1318  
  1319  Starts a shell session in a service container. Uses the web service by default.
  1320  
  1321  Flags:
  1322  
  1323  * `--dir`, `-d`: Defines the destination directory within the container.
  1324  * `--service`, `-s`: Defines the service to connect to. (default `"web"`)
  1325  
  1326  Example:
  1327  
  1328  ```shell
  1329  # SSH into the current project’s web container
  1330  ddev ssh
  1331  
  1332  # SSH into the current project’s database container
  1333  ddev ssh -s db
  1334  
  1335  # SSH into the web container for my-project
  1336  ddev ssh my-project
  1337  
  1338  # SSH into the docroot of the current project’s web container
  1339  ddev ssh -d /var/www/html
  1340  ```
  1341  
  1342  ## `start`
  1343  
  1344  Start a DDEV project.
  1345  
  1346  Flags:
  1347  
  1348  * `--all`, `-a`: Start all projects.
  1349  * `--skip-confirmation`, `-y`: Skip any confirmation steps.
  1350  
  1351  Example:
  1352  
  1353  ```shell
  1354  # Start the current project
  1355  ddev start
  1356  
  1357  # Start my-project and my-other-project
  1358  ddev start my-project my-other-project
  1359  
  1360  # Start all projects
  1361  ddev start --all
  1362  ```
  1363  
  1364  ## `stop`
  1365  
  1366  *Aliases: `rm`, `remove`.*
  1367  
  1368  Stop and remove the containers of a project. Does not lose or harm anything unless you add `--remove-data`.
  1369  
  1370  Flags:
  1371  
  1372  * `--all`, `-a`: Stop and remove all running or container-stopped projects and remove from global projects list.
  1373  * `--omit-snapshot`, `-O`: Omit/skip database snapshot.
  1374  * `--remove-data`, `-R`: Remove stored project data (MySQL, logs, etc.).
  1375  * `--snapshot`, `-S`: Create database snapshot.
  1376  * `--stop-ssh-agent`: Stop the `ddev-ssh-agent` container.
  1377  * `--unlist`, `-U`: Remove the project from global project list, so it won’t appear in [`ddev list`](#list) until started again.
  1378  
  1379  Example:
  1380  
  1381  ```shell
  1382  # Stop the current project
  1383  ddev stop
  1384  
  1385  # Stop my-project, my-other-project, and my-third-project
  1386  ddev stop my-project my-other-project my-third-project
  1387  
  1388  # Stop all projects
  1389  ddev stop --all
  1390  
  1391  # Stop all projects and the `ddev-ssh-agent` container
  1392  ddev stop --all --stop-ssh-agent
  1393  
  1394  # Stop all projects and remove their data
  1395  ddev stop --remove-data
  1396  ```
  1397  
  1398  ## `tableplus`
  1399  
  1400  Open [TablePlus](https://tableplus.com) with the current project’s database (global shell host container command). This command is only available if `TablePlus.app` is installed as `/Applications/TablePlus.app`.
  1401  
  1402  Example:
  1403  
  1404  ```shell
  1405  # Open the current project’s database in TablePlus
  1406  ddev tableplus
  1407  ```
  1408  
  1409  ## `typo3`
  1410  
  1411  Run the `typo3` command; available only in projects of type `typo3`, and only works if `typo3` is in the `$PATH` inside the container; normally it's in `vendor/bin/typo3` so will be found.
  1412  
  1413  ```shell
  1414  # Show typo3 site configuration
  1415  ddev typo3 site:show
  1416  ```
  1417  
  1418  ## `version`
  1419  
  1420  Print DDEV and component versions.
  1421  
  1422  Example:
  1423  
  1424  ```shell
  1425  # Print DDEV and platform version details
  1426  ddev version
  1427  ```
  1428  
  1429  !!!tip
  1430      `ddev --version` is a more concise command that only outputs the DDEV version without component versions.
  1431  
  1432  ## `wp`
  1433  
  1434  Run the [WP-CLI `wp` command](https://wp-cli.org/); available only in projects of type `wordpress`.
  1435  
  1436  ```shell
  1437  # Install WordPress site using `wp core install`
  1438  ddev wp core install --url='$DDEV_PRIMARY_URL' --title='New-WordPress' --admin_user=admin --admin_email=admin@example.com --prompt=admin_password
  1439  
  1440  ```
  1441  
  1442  ## `xdebug`
  1443  
  1444  Enable or disable [Xdebug](../debugging-profiling/step-debugging.md) (global shell web container command).
  1445  
  1446  * The `on` argument is equivalent to `enable` and `true`.
  1447  * The `off` argument is equivalent to `disable` and `false`.
  1448  
  1449  ```shell
  1450  # Display whether Xdebug is running
  1451  ddev xdebug status
  1452  
  1453  # Turn Xdebug on
  1454  ddev xdebug
  1455  
  1456  # Turn Xdebug on
  1457  ddev xdebug on
  1458  
  1459  # Turn Xdebug off
  1460  ddev xdebug off
  1461  
  1462  # Toggle Xdebug on and off
  1463  ddev xdebug toggle
  1464  ```
  1465  
  1466  ## `xhprof`
  1467  
  1468  Enable or disable [Xhprof](../debugging-profiling/xhprof-profiling.md) (global shell web container command).
  1469  
  1470  * The `on` argument is equivalent to `enable` and `true`.
  1471  * The `off` argument is equivalent to `disable` and `false`.
  1472  
  1473  ```shell
  1474  # Display whether Xhprof is running
  1475  ddev xhprof status
  1476  
  1477  # Turn Xhprof on
  1478  ddev xhprof
  1479  
  1480  # Turn Xhprof on
  1481  ddev xhprof on
  1482  
  1483  # Turn Xhprof off
  1484  ddev xhprof off
  1485  ```
  1486  
  1487  ## `yarn`
  1488  
  1489  Run [`yarn` commands](https://yarnpkg.com/cli) inside the web container in the root of the project (global shell host container command).
  1490  
  1491  !!!tip
  1492      Use `--cwd` for another directory, or you can change directories to the desired directory and `ddev yarn` will act on the same relative directory inside the container.
  1493  
  1494  !!!tip
  1495      If you want to define your Yarn version on a per project basis, set `corepack_enable: true` in `.ddev/config.yaml` or `ddev config --corepack-enable`
  1496  
  1497  Example:
  1498  
  1499  ```shell
  1500  # Use Yarn to install JavaScript packages
  1501  ddev yarn install
  1502  
  1503  # Use Yarn to add the Lerna package
  1504  ddev yarn add lerna
  1505  
  1506  # Use yarn in a relative directory
  1507  cd web/core && ddev yarn add lerna
  1508  
  1509  # Use Yarn to add the Lerna package from the `web/core` directory
  1510  ddev yarn --cwd web/core add lerna
  1511  
  1512  # Use latest yarn or specified yarn
  1513  ddev config --corepack-enable && ddev restart
  1514  ddev yarn set version stable
  1515  ddev yarn --version
  1516  ```