anchor.diff:  title: Droplet Execution Agent
   ---
   
  -The key functions of a Droplet Execution Agent (DEA) are:
  +A Droplet Execution Agent (DEA) performs the following key functions:
   
  -* Manage Warden containers --- The DEA stages applications and runs applications in [Warden](warden.html) containers.
  +* **Manage Warden containers**: The DEA stages applications and runs
  +    applications in [Warden](./warden.html) containers.
   
  -* Stage applications --- When a new application or a new version of an application is pushed to Cloud Foundry, the Cloud Controller selects a DEA from the pool of available DEAs to stage the application. The DEA uses the appropriate buildpack to stage the application. The result of this process is a droplet.
  +* **Stage applications**: When a new application or a new version of an
  +    application is pushed to Cloud Foundry, the Cloud Controller selects a DEA
  +    from the pool of available DEAs to stage the application.
  +    The DEA uses the appropriate buildpack to stage the application.
  +    The result of this process is a droplet.
   
  -* Run droplets --- A DEA manages the lifecycle of each application instance running in it, starting and stopping droplets upon request of the [Cloud Controller](./cloud-controller.html). The DEA monitors the state of a started application instance, and periodically broadcasts application state messages over [NATS](./messaging-nats.html) for consumption by
  -HM9000.
  -
  +* **Run droplets**: A DEA manages the lifecycle of each application instance
  +    running in it, starting and stopping droplets upon request of the [Cloud
  +    Controller](./cloud-controller.html).
  +    The DEA monitors the state of a started application instance, and
  +    periodically broadcasts application state messages over
  +    [NATS](./messaging-nats.html) for consumption byHM9000.
   
   ## <a id='directory-server'></a>Directory Server ##
   
  
positive.code: 
  ## <a id='dea-configuration'></a>DEA Configuration ##
  
  
  DEA behavior is configured in `dea.yml`.
  
  The following is a partial list of the keys that the DEA reads from the YAML file:
  
  * `logging` --- A [Steno configuration](http://github.com/cloudfoundry/steno#from-yaml-file).
  * `nats_uri` --- A URI of the form `nats://host:port` that the DEA uses to connect to NATS.
  * `warden_socket` --- The path to a unix domain socket that the DEA uses to communicate to a Warden server.
  
  
  A sample `dea.yml` file follows:
  
  <p class="note"><strong>Note</strong>: See <a href='https://github.com/cloudfoundry/dea_ng/blob/master/lib/dea/config.rb'>https://github.com/cloudfoundry/dea_ng/blob/master/lib/dea/config.rb</a> for optional configuration keys.</p>
  
  
  ```yaml
  
  # See src/lib/dea/config.rb for optional config values.
  
  # Base directory for dea, application directories, dea temp files, etc. are all relative to this.
  base_dir: /tmp/dea_ng
  
  logging:
  
negative.code: #   after_start: path/to/script
  #   before_stop: path/to/script
  #   after_stop: path/to/script
  ```
  
  ## <a id='run-standalone'></a>Running the DEA Standalone ##
  
  When you contribute to the DEA, we recommend that you run it as a standalone component. Follow the instructions below for running the DEA as a standalone component on Vagrant 1.1x.
  
  Refer to the [Vagrant documentation](http://docs.vagrantup.com/v2/installation/index.html) for instructions on installing Vagrant.
  
  <pre class="terminal">
  $ git clone http://github.com/cloudfoundry/dea_ng
  