Merge "Add support for Apache mod_proxy_wstunnel"
diff --git a/manifests/apache.pp b/manifests/apache.pp
index 7fe10d6..effaaab 100644
--- a/manifests/apache.pp
+++ b/manifests/apache.pp
@@ -2,6 +2,7 @@
 #
 class etherpad_lite::apache (
   $vhost_name = $::fqdn,
+  $docroot = '/srv/etherpad-lite',
   $serveradmin = "webmaster@${::fqdn}",
   $ssl_cert_file = '',
   $ssl_key_file = '',
@@ -18,7 +19,7 @@
   include apache
   apache::vhost { $vhost_name:
     port     => 443,
-    docroot  => 'MEANINGLESS ARGUMENT',
+    docroot  => $docroot,
     priority => '50',
     template => 'etherpad_lite/etherpadlite.vhost.erb',
     ssl      => true,
@@ -59,6 +60,19 @@
     }
   }
 
+  file { $docroot:
+    ensure => directory,
+  }
+
+  file { "${docroot}/robots.txt":
+    ensure  => present,
+    source  => 'puppet:///modules/etherpad_lite/robots.txt',
+    owner   => 'root',
+    group   => 'root',
+    mode    => '0444',
+    require => File[$docroot],
+  }
+
   file { '/etc/ssl/certs':
     ensure => directory,
     owner  => 'root',
diff --git a/manifests/init.pp b/manifests/init.pp
index d918527..30b7f9b 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -16,7 +16,8 @@
   $base_log_dir     = '/var/log',
   $base_install_dir = '/opt/etherpad-lite',
   $nodejs_version   = 'v0.10.21',
-  $eplite_version   = 'develop'
+  $eplite_version   = 'develop',
+  $ep_ensure        = 'present',
 ) {
 
   # where the modules are, needed to easily install modules later
@@ -85,7 +86,7 @@
   }
 
   vcsrepo { "${base_install_dir}/etherpad-lite":
-    ensure   => present,
+    ensure   => $ep_ensure,
     provider => git,
     source   => 'https://github.com/ether/etherpad-lite.git',
     owner    => $ep_user,
diff --git a/manifests/site.pp b/manifests/site.pp
index 6dc3e11..fffff00 100644
--- a/manifests/site.pp
+++ b/manifests/site.pp
@@ -39,15 +39,6 @@
     require => Class['etherpad_lite'],
   }
 
-  file { "${base}/etherpad-lite/src/static/robots.txt":
-    ensure  => present,
-    source  => 'puppet:///modules/etherpad_lite/robots.txt',
-    owner   => $etherpad_lite::ep_user,
-    group   => $etherpad_lite::ep_user,
-    mode    => '0644',
-    require => Class['etherpad_lite'],
-  }
-
   include logrotate
   logrotate::file { 'epliteerror':
     log     => "${base}/${etherpad_lite::ep_user}/error.log",
diff --git a/templates/etherpad-lite_settings.json.erb b/templates/etherpad-lite_settings.json.erb
index 74f3522..d5effc9 100644
--- a/templates/etherpad-lite_settings.json.erb
+++ b/templates/etherpad-lite_settings.json.erb
@@ -72,7 +72,7 @@
   */
 
   // restrict socket.io transport methods
-  "socketTransportProtocols" : ["xhr-polling", "jsonp-polling", "htmlfile"],
+  "socketTransportProtocols" : ["websocket", "xhr-polling", "jsonp-polling", "htmlfile"],
 
   /* The log level we are using, can be: DEBUG, INFO, WARN, ERROR */
   "loglevel": "INFO",
diff --git a/templates/etherpadlite.vhost.erb b/templates/etherpadlite.vhost.erb
index c0b1888..918ad8a 100644
--- a/templates/etherpadlite.vhost.erb
+++ b/templates/etherpadlite.vhost.erb
@@ -47,6 +47,10 @@
       RewriteCond %{HTTP_HOST} !<%= scope.lookupvar("etherpad_lite::apache::vhost_name") %>
       RewriteRule ^.*$ https://<%= scope.lookupvar("etherpad_lite::apache::vhost_name") %> [L,R=301]
 
+      # Server robots.txt directly so that it does not affect
+      # etherpad-lite installation.
+      RewriteRule ^/robots.txt$ <%= scope.lookupvar("etherpad_lite::apache::docroot") %>/robots.txt [L]
+
       RewriteCond %{REQUEST_URI} !^/p/
       RewriteCond %{REQUEST_URI} !^/locales/
       RewriteCond %{REQUEST_URI} !^/locales.json