diff --git a/src/Handler.php b/src/Handler.php
index 9f7efdfe8c8f95db1f7af2857c017cfde9b55a07..4f1bf15d88496a184e0a1fc01669e47a616a3423 100644
--- a/src/Handler.php
+++ b/src/Handler.php
@@ -222,6 +222,9 @@ class Handler {
     $extra = $this->composer->getPackage()->getExtra() + ['docker4drupal' => []];
     $options = $extra['docker4drupal'] + [
         'projectname' => str_replace([' ', '-', '_', '.'], '', basename(getcwd())),
+        'docker0' => [
+          'ip' => $this->getLocalIpv4('docker0'),
+        ],
         'drupal' => [
           'version' => '8',
         ],
@@ -259,4 +262,26 @@ class Handler {
     }
   }
 
+  private function getLocalIpv4($interface = NULL) {
+    $out = explode(PHP_EOL, shell_exec('LC_ALL=C /sbin/ifconfig'));
+    $local_addrs = array();
+    $ifname = 'unknown';
+    foreach ($out as $str) {
+      $matches = array();
+      if (preg_match('/^([a-z0-9]+)(:\d{1,2})?(\s)+Link/', $str, $matches)) {
+        $ifname = $matches[1];
+        if(strlen($matches[2])>0) {
+          $ifname .= $matches[2];
+        }
+      } elseif (preg_match('/inet addr:((?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:[.](?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3})\s/', $str, $matches)) {
+        $local_addrs[$ifname] = $matches[1];
+      }
+    }
+
+    if (!isset($interface)) {
+      return $local_addrs;
+    }
+    return isset($local_addrs[$interface]) ? $local_addrs[$interface] : '127.0.0.1';
+  }
+
 }
diff --git a/templates/docker-compose.yml.twig b/templates/docker-compose.yml.twig
index d6ae7cb29f56b17abdfae1fa6354919143fbaafc..d508628697500d8ce21d9ea2fbbe298902d429c5 100644
--- a/templates/docker-compose.yml.twig
+++ b/templates/docker-compose.yml.twig
@@ -16,6 +16,10 @@ services:
 {% if php.xdebug %}
       PHP_XDEBUG: 1
       PHP_XDEBUG_DEFAULT_ENABLE: 1
+      PHP_XDEBUG_REMOTE_AUTOSTART: 1
+      PHP_XDEBUG_REMOTE_HOST: {{ docker0.ip }}
+      PHP_IDE_CONFIG: serverName=Docker
+      PHP_XDEBUG_REMOTE_CONNECT_BACK: 1
 {% endif %}
     volumes:
       - ./:/var/www/html