diff --git a/wiki/files/htaccess b/wiki/files/htaccess
new file mode 100644
index 0000000..532c4aa
--- /dev/null
+++ b/wiki/files/htaccess
@@ -0,0 +1,14 @@
+RewriteEngine On
+RewriteCond %{REQUEST_FILENAME} !-f
+RewriteRule ^(.*)$ wsgi/$1 [QSA,PT,L]
+
+
+ SetHandler wsgi-script
+
+
+AuthType Basic
+AuthName "Password Required (cancel for help)"
+AuthUserFile /srv/wikis/collab/run/.htpasswd
+AuthGroupFile /srv/wikis/collab/run/.htgroup
+
+Require valid-user
diff --git a/wiki/manifests/init.pp b/wiki/manifests/init.pp
index b2dc98b..f676c86 100644
--- a/wiki/manifests/init.pp
+++ b/wiki/manifests/init.pp
@@ -78,6 +78,16 @@ class wiki::collab inherits wiki::graphingwiki::common {
class wiki::collab::base {
+ include cairo::python
+ include graphviz::python
+ include igraph::python
+ include ldap::client::python
+
+ include apache::mod::authnz_ldap
+ include apache::mod::ldap
+ include apache::mod::rewrite
+ include apache::mod::wsgi
+
include wiki::graphingwiki
include wiki::opencollab
include wiki::collab
@@ -85,6 +95,16 @@ class wiki::collab::base {
include user::system
realize(User["collab"], Group["collab"])
+ case $operatingsystem {
+ debian,ubuntu: {
+ exec { "usermod-www-data":
+ path => "/bin:/usr/bin:/sbin:/usr/sbin",
+ command => "usermod -a -G collab www-data",
+ unless => "id -n -G www-data | grep '\bcollab\b'",
+ }
+ }
+ }
+
if $wiki_datadir {
file { "${wiki_datadir}":
ensure => directory,
@@ -111,7 +131,7 @@ class wiki::collab::base {
"/srv/wikis/collab/archive",
"/srv/wikis/collab/cache",
"/srv/wikis/collab/config",
- "/srv/wikis/collab/dockbook",
+ "/srv/wikis/collab/docbook",
"/srv/wikis/collab/htdocs",
"/srv/wikis/collab/log",
"/srv/wikis/collab/underlay",
@@ -119,10 +139,46 @@ class wiki::collab::base {
"/srv/wikis/collab/wikis",
"/srv/wikis/collab/run", ]:
ensure => directory,
- mode => 2770,
+ mode => 2660,
owner => collab,
group => collab,
require => [ File["/srv/wikis"], User["collab"], Group["collab"], ],
}
+ File["/srv/wikis/collab/underlay"] {
+ source => "/usr/local/share/moin/underlay",
+ recurse => true,
+ replace => false,
+ }
+
+ file { "/srv/wikis/collab/htdocs/.htaccess":
+ ensure => present,
+ mode => 0660,
+ owner => collab,
+ group => collab,
+ source => "puppet:///wiki/htaccess",
+ require => File["/srv/wikis/collab/htdocs"],
+ }
+
+ if !$wiki_collab_fqdn {
+ $wiki_collab_fqdn = $homename
+ }
+
+ file { "/srv/www/https/${wiki_collab_fqdn}/collab":
+ ensure => link,
+ target => "/srv/wikis/collab/htdocs",
+ require => File["/srv/www/https/${wiki_collab_fqdn}"],
+ }
+
+ file { "/srv/www/https/${wiki_collab_fqdn}/moin_static":
+ ensure => link,
+ target => "/usr/local/share/moin/htdocs",
+ require => File["/srv/www/https/${wiki_collab_fqdn}"],
+ }
+
+ apache::configfile { "collab.conf":
+ content => template("wiki/collab-httpd.conf.erb"),
+ http => false,
+ }
+
}
diff --git a/wiki/templates/collab-httpd.conf.erb b/wiki/templates/collab-httpd.conf.erb
new file mode 100644
index 0000000..8a9964c
--- /dev/null
+++ b/wiki/templates/collab-httpd.conf.erb
@@ -0,0 +1,4 @@
+/collab">
+ Options +ExecCGI
+ AllowOverride All
+