github.com/drud/ddev@v1.21.5-alpha1.0.20230226034409-94fcc4b94453/docs/content/users/configuration/experimental.md (about)

     1  # Experimental Configurations
     2  
     3  ## Rancher Desktop on macOS
     4  
     5  [Rancher Desktop](https://rancherdesktop.io/) is another quickly-maturing Docker Desktop alternative for macOS. You can install it for many target platforms from the [release page](https://github.com/rancher-sandbox/rancher-desktop/releases).
     6  
     7  Rancher Desktop integration currently has no automated testing for DDEV integration.
     8  
     9  * By default, Rancher Desktop will provide a version of the Docker client if you don’t have one on your machine.
    10  * Rancher changes over the “default” context in Docker, so you’ll want to turn off Docker Desktop if you’re using it.
    11  * Rancher Desktop does not provide bind mounts, so use `ddev config global --no-bind-mounts` which also turns on Mutagen.
    12  * Use a non-`ddev.site` name, `ddev config --additional-fqdns=rancher` for example, because the resolution of `*.ddev.site` seems to make it not work.
    13  * Rancher Desktop does not seem to currently work with `mkcert` and `https`, so turn those off with `mkcert -uninstall && rm -r "$(mkcert -CAROOT)"`. This does no harm and can be undone with just `mkcert -install` again.
    14  
    15  ## Traefik Router
    16  
    17  DDEV’s router plays an important role in its [container architecture](../usage/architecture.md#container-architecture), receiving most HTTP and HTTPS traffic for requests like `*.ddev.site` and delivering them to the relevant project’s web container.
    18  
    19  `ddev-router` has been based on a forked, poorly-documented nginx reverse proxy. Versions after DDEV v1.21.3 add a new router based on the popular [Traefik Proxy](https://traefik.io/traefik/), available as an experimental feature until it becomes the default in a future release. Run the following to enable it:
    20  
    21  ```
    22  ddev poweroff && ddev config global --use-traefik
    23  ```
    24  
    25  Most DDEV projects will work fine out of the box, with the benefit of vastly more configuration options and ways to work with the router. (This will likely lead to more features in the future, and we’d love your feedback if you’re trying this out now!)
    26  
    27  ### Traefik Configuration
    28  
    29  You can fully customize the router’s [Traefik configuration](https://doc.traefik.io/traefik/).
    30  
    31  All Traefik configuration uses the *file* provider, not the *docker* provider. Even though the Traefik daemon itself is running inside the `ddev-router` container, it uses mounted files for configuration, rather than listening to the Docker socket.
    32  
    33  !!!tip
    34      Like other DDEV configuration, any file with `#ddev-generated` will be overwritten unless you choose to “take over” it yourself. You can do this by removing the `#ddev-generated` line. DDEV will stop making changes to that file and you’ll be responsible for updating it.
    35  
    36  #### Global Traefik Configuration
    37  
    38  Global configuration is automatically generated in the `~/.ddev/traefik` directory:
    39  
    40  * `static_config.yaml` is the base configuration.
    41  * `certs/default_cert.*` files are the default DDEV-generated certificates.
    42  * `config/default_config.yaml` contains global dynamic configuration, including pointers to the default certificates.
    43  
    44  #### Project Traefik Configuration
    45  
    46  Project configuration is automatically generated in the project’s `.ddev/traefik` directory.
    47  
    48  * The `certs` directory contains the `<projectname>.crt` and `<projectname>.key` certificate generated for the project.
    49  * The `config/<projectname>.yaml` file contains the configuration for the project, including information about routers, services, and certificates.
    50  
    51  ### Debugging Traefik Routing
    52  
    53  Traefik provides a dynamic description of its configuration you can visit at `http://localhost:9999`.
    54  When things seem to be going wrong, run [`ddev poweroff`](../usage/commands.md#poweroff) and then start your project again by running [`ddev start`](../usage/commands.md#start). Examine the router’s logs to see what the Traefik daemon is doing (or failing at) by running `docker logs ddev-router` or `docker logs -f ddev-router`.