diff --git a/hieradata/env/production.yaml b/hieradata/env/production.yaml
index ffd27c13..6c69e425 100644
--- a/hieradata/env/production.yaml
+++ b/hieradata/env/production.yaml
@@ -29,6 +29,15 @@ metacpan::crons::general:
     metacpan_sitemaps:
       ensure : present
 
+metacpan::web::docker:
+
+  github-meets-cpan:
+    vhost_aliases:
+      - 'gh.metacpan.org'
+      - "gh.lo.metacpan.org"
+      - "gh.%{hostname}.metacpan.org"
+    docker_port: 5002
+
 metacpan::web::starman:
 
   metacpan-web:
@@ -49,19 +58,6 @@ metacpan::web::starman:
     git_enable: true
     starman_workers: 2
 
-  github-meets-cpan:
-    git_enable: true
-    starman_workers: 1
-    git_source: 'https://github.com/metacpan/github-meets-cpan.git'
-    git_revision: 'master'
-    vhost_bare: true
-    vhost_aliases:
-      - 'gh.metacpan.org'
-      - "gh.lo.metacpan.org"
-      - "gh.%{hostname}.metacpan.org"
-    starman_port: 5002
-    starman_workers: 1
-
   sco-redirect:
     git_enable: true
     starman_workers: 10
diff --git a/hieradata/nodes/lw-mc-02.yaml b/hieradata/nodes/lw-mc-02.yaml
index aa27bf9f..5d944ba9 100644
--- a/hieradata/nodes/lw-mc-02.yaml
+++ b/hieradata/nodes/lw-mc-02.yaml
@@ -9,10 +9,6 @@ minion_queue::service::ensure: running
 minion_queue::service::enable: true
 
 
-metacpan::crons::general:
-    github-meets-cpan:
-      ensure : present
-
 metacpan::crons::general:
     metacpan_sitemaps:
       minute : 25
diff --git a/hieradata/nodes/metacpan-dev.yaml b/hieradata/nodes/metacpan-dev.yaml
index 591048b6..296e8012 100644
--- a/hieradata/nodes/metacpan-dev.yaml
+++ b/hieradata/nodes/metacpan-dev.yaml
@@ -49,8 +49,6 @@ metacpan::fw_ports:
   metacpan_api:
     port: 5000
     source: '0.0.0.0/0'
-  github-meets-cpan:
-    port: 5002
-    source: '0.0.0.0/0'
+
 
 starman::config::plack_env: development
diff --git a/modules/metacpan/files/default/home/brad/ssh/authorized_keys b/modules/metacpan/files/default/home/brad/ssh/authorized_keys
index f730cd66..5bd2bd89 100644
--- a/modules/metacpan/files/default/home/brad/ssh/authorized_keys
+++ b/modules/metacpan/files/default/home/brad/ssh/authorized_keys
@@ -1,2 +1,4 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCvboGh/Ulrb6JzdNVwOEM1+YoixRxcJAK2KaY/a8Tm7S6PM0lcx5+IesG4nDV5zIA+6hikXTS4aE6itZJtXf4hH3vwWO+W7Tn/HcmduhbXmHvZ0/IuFaOU2xLMhSaDUMOmylytRTmFrnSppRErg0hpe5o6PE2zDFYCTwZu31YgDhgbgJKwDsEekp17VvwUo0sFeKdh72WAQ+sSzl7yVSZ6K+1RwsHn57Oq0aAJYJPfw1yRTCsqcNU8h+i1ul0AWt4+nzP6095jcTbXx7cfCcjfDcGXC/PleOo+aak0LiTf1EPI1WqcSqgec9y05RgdOfWAr895U+W6xTVB1dx3plrtwA7l+0ESiiEQQrc4Dft4Uws7jycODbL8UWPRroePNscDnqLG/FprD6Zz7/JG8iLwVhQS6T7bFHxKJPq0Q7VeTi2cQBt6yV1z35+3433cR2zR3vTtDkflbkBnbPwumXTCmaefcJP76yv/ZNkfYRM8rbqVLuUvzQOg8oepX/8TeevPdxHtkTkRnFc2wjN3ZXqMHlGDm6HaHsYdwHxixrZwm4TJM2lZD97e4S3QdLyr/j6ATrxizirzDBbTQVAZAbDWgHZk8vdAY5M1ZtuUz2fCV5nYTJ6CFvxHSVJXhYEYaVbirb7MbVm9Si8WQ5Tec23Ct1Nbig8Fc0LU4G5U6+XQPQ== Brad Lhotsky <brad@divisionbyzero.net>
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDL4q+2sevRNuJ4yM+fKbPVEhmZpqfetFJtb+PzRWPM2blPQvm0wXKzlzSk+I/7wDjrn7y9fZDcw7OBM5ywSvdkxERHpASnChr7dBHE/D7zZb8ek+/bOmnB2CqYb51hP26qExHo5aV99DmEjGLanmFZplTp8sKpcnCuJpD2G2BSQTvlQ1PVtsZZZN6MNI0L5a9aeHpWPZJkVgjfdz2RKsZ5G6ELgphOPBWEnURpreJZHpDHFWyNa1/ma9o13tizkFvf+v3aPEebEXJDt8aYRp0LXt40SG8XTjlD2a7Z6JsudmFcNJOcnRsJdz+EGDj2w/PplsqcV1MB/Z8a1ko6gPS1xFF25EekIYLA4ykCVVPwu82lbPOhQe5SxPK+TkNtGpL8gNqrZIoNqp1/Lufg1GGBB7rSN79MD9/c7eccfYW3DNRefqBje1ITNTs0qWtMOsuFNf6m5o8yTAyK+BAj/YPq8ItfVTlXFtPoFQ/LcOqkuM9/ZW1OGccdK93UuJSx8PXkOuoU1br8sQ6hJRFDb/hiGYffIwrZtB+HRAJeJ1dboZrt2JBls20VOiy1cbzoieFWAW9sSTyHBxTTxMi2WmYCcbr+lXDbtAouffKwrC1ZhKNgm2TqBfbMhMCV+F+JgMkoKmyO9TIOrrvuv0Sa3SvoUHNvgcYLO0G8K2lYSo+RjQ== Brad Lhotsky <blhotsky@craigslist.org>
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDLkwqliY0E+R9sqX20cAeRfSh+aRcliS5O6/xrgHXKhxCYSBldyXFZi9NJTnJSQsHoLPy7fr10wLGdFFZP+Rn+hh8Fx/4uMa8xxKShvpMyjsnrCsBmth/7S3AASa9LxS1rpJeTXUN0zwIkNvuB95orpSfH97OEoUXn3vOFn/oea2MwtJeaN/kMv9cJbmQmSQRE+1v408PK27T1TBawPTW9/QBntYcJAkp0dPpTL7RwkIS6P8fNNT/qZVxTZBmFMgk+Yn5akEWUt3hx+hPWaqzP0V/kLtjZt1Phq37HzbMqrxI4KiMkQVnjMjvYr9gTNu0wyN2H4xWZhaZ8IATQr/RbaR8CiCWrdnixB0cOEp6mJcpufDRf349E5B12amHaJAhF97d4Hsu9tpwpGC5pxF83TdA6p9+MX29PYPVmMlWL5/sFZj3A3gHWdeYkqZH3V5kRtD3JyF8vOu9Mrhct1qJ6kLcb9oeU9sXqVO0UB2J/XHfmVB0E2dJCiew+5MDQuw9bPlHfQQ9287pEYyX3MCEBxLBmstdLHoXvnihkUCYWT1Ljl3MQCSxfMjwJaafPqbYvHfDYeJ+X9S+4r+KM90fDTIzWZBurP2geNkh7wFxwzpaMxbMp15AmFQTKomda9TxYq35PYgaFJ18tg8GOhibdXVVrE0d7+N9usNEmUgVAqw== /Users/blhotsky/.ssh/blhotsky@spaceheater.rsa
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDIy3OrlYIivp3dosXzy1CCiCNcvEls/5fRcvFnU24Lc/G51yRIEtLImuH28lx4UWbqE88U8nVm16Fbu6pzh+cHv2cb5wZ0fXd8qYxQLnWMMA4xE0+BJ+bOU2WEHTIPZmWtQVTGpljYJQ9kGKjOr/25GYvbjJM/sRblracj4R5nu7ru+YZT4miU97+/el+2Ln4ln2qbrycmTdbse4JHOcP0r3k4jYDHLenH/XGKwJtN/aAZuv6gCHJkt2czk7NKwZTIocvlHSjMxhL9nRTZyUNGeHOpPWFGw+IMPLlaA7xzM0xwnpUe5CyabYJVwpNaoM722EbQJYiCWZQDCIWOKJTj0PHdnxxP19IRHpTnrgzzuJSjXFc7K6qugtS1c82fd4a3Bb0vMzG+O9ka/lnNqDmm2WyuBOuuEcyASLyB7fyoPA3ucvz6eI4dKnTU7DCSl5+AMnLSq72YkT1QcOb9KJF7tsRgBHQzdiUfJJDAUe5/Wbd+H2MgU3q2UwWt4+lDNBvaa+BgQgv00Crpuj8WvmhNd710+27pscolBIWug1z/I5+ldaG+e5EBY3yzaUyaQt1fT9WSwZVSIq/zktgNOAKmKxfuDSb/nW/NZ3drneQ3Qaq/02iEADI0TN9lQM6wJfKCNJpjPr3I6bCvJm0r9jfJeYr245+Yu71iHv6j7OTcSQ== .ssh/legacy.rsa
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDbjvdWSeP33rk4faRhTyXBOSIrMsRWrwf5PcIQ7CzpYlh+XtDNVgKWeDLrWzFYuTWXkP2c5+B2OfGaxPFUxpd+AfJo1sgM0um9e9vzPmKvcfh0jOsIcDgXGMZ/R5vceAPvIAE6UNIV8qDTvAdOeym4kvUmffiHWQ9gq+QkALz9DjzkZAbR7djjKrnrRA6xjqpYYUQjE57talE3vkvotNW63W0znATKR32Gr2vMNW7Py2XhUekAsR1a4b4l1rt4EqCzYRV5dDWBJajKAYy09rjwbvDwqXRunUsxRupCYXXl8mfYezUIb5JZYSXe4qn/P+d+7RosNnkgxLS5vy/qSnoQC71fmdovHQld5upq9C2mbfpdjBm5zF5b7puDXClfMil3FtgAV39BqJJpZ2l+o21R2CI3WsugDLGlyuUPDveY/pXVQeICzOFTWal5h/ATDskLibetuHsedO7lS1fhEFTkFocnGjKAGYJ531AY4gehIMVsI+U9CUMKiyAifxdUQKk076EviC/7DCvWXIubLMW02yLo3pgm03KWeGMWVcPpfsUEsUuaY+Ff/ZeABBbSgkzLm8IFzhvtiLc7iH+wDtdc9NhKWHeT/+wlikTzoBf+YY2ZR4qaaxDhtCya+YIL5nysLVZZ29UufWgxqwp6kvSdWSGot3OnXvMFXfK3yfbrkw== brad@last-unicorn.home.db0.us
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEWTimZbGAKEOMRoR8J1i3mMi+yi71KLQH7/UmJckFGD brad@mini.home.db0.us
diff --git a/modules/metacpan/manifests/init.pp b/modules/metacpan/manifests/init.pp
index dd48355e..c8b0f94c 100644
--- a/modules/metacpan/manifests/init.pp
+++ b/modules/metacpan/manifests/init.pp
@@ -69,6 +69,10 @@
     $websites = hiera_hash('metacpan::web::starman', {})
     create_resources('metacpan::web::starman', $websites)
 
+    # Docker backed sites
+    $docker_sites = hiera_hash('metacpan::web::docker', {})
+    create_resources('metacpan::web::docker', $docker_sites)
+
     # Swat site
     $swat = hiera_hash('metacpan::system::swat', {})
     create_resources('metacpan::system::swat', $swat)
diff --git a/modules/metacpan/manifests/system/mongodb.pp b/modules/metacpan/manifests/system/mongodb.pp
index ad5f3752..003abca6 100644
--- a/modules/metacpan/manifests/system/mongodb.pp
+++ b/modules/metacpan/manifests/system/mongodb.pp
@@ -1,5 +1,5 @@
 class metacpan::system::mongodb {
 
-    # Needed for gh.metacpan.org
-    package { 'mongodb': ensure => present }
+    # Was needed for gh.metacpan.org - now using docker
+    package { 'mongodb': ensure => absent }
 }
diff --git a/modules/metacpan/manifests/web/docker.pp b/modules/metacpan/manifests/web/docker.pp
new file mode 100644
index 00000000..64c32518
--- /dev/null
+++ b/modules/metacpan/manifests/web/docker.pp
@@ -0,0 +1,49 @@
+# === Definition metacpan::web::starman
+#
+# In Hiera:
+#
+#   metacpan::web::docker:
+#
+#
+define metacpan::web::docker (
+
+    # nginx
+    $vhost_aliases, # Required as main domain now here
+    $vhost_html = '',
+    $vhost_ssl_only = false,
+    $vhost_ssl = $vhost_ssl_only,
+
+    $vhost_extra_proxies = {},
+    $vhost_extra_configs = {},
+
+    # docker port
+    $docker_port = 'UNSET',
+) {
+
+  metacpan_nginx::vhost { $name:
+    html      => $vhost_html,
+    ssl       => $vhost_ssl,
+    ssl_only  => $vhost_ssl_only,
+    bare      => true, 
+    aliases   => $vhost_aliases,
+  }
+
+  # Add all the extra proxy / config gumpf
+  create_resources('metacpan_nginx::proxy', $vhost_extra_proxies, {
+    target   => "http://localhost:${docker_port}/",
+    site    =>  $name,
+    location => '',
+  })
+
+  create_resources('metacpan::web::nginx_extra_confs', $vhost_extra_configs, {
+    site    =>  $name,
+  })
+
+  # Setup rev-proxy to starman
+  metacpan_nginx::proxy { "proxy_${name}":
+      target   => "http://localhost:${docker_port}/",
+      site    => $name,
+      location => '',
+  }
+
+}
diff --git a/modules/metacpan/manifests/web/production.pp b/modules/metacpan/manifests/web/production.pp
index b4d124ab..03055f99 100644
--- a/modules/metacpan/manifests/web/production.pp
+++ b/modules/metacpan/manifests/web/production.pp
@@ -30,14 +30,4 @@
       notify => Starman::Service['metacpan-api'],
   }
 
-  file { "/home/${user}/github-meets-cpan/environment.json":
-      ensure => file,
-      owner => $user,
-      group => $group,
-      source => "puppet:///private/github-meets-cpan/environment.json",
-      require => Metacpan::Gitrepo['gitrepo_github-meets-cpan'], # after repo created
-      notify => Starman::Service['github-meets-cpan'],
-  }
-
-
 }
