class profiles::wiki ( String $wwwroot = '/var/www/wiki/', String $server_name = "wiki.${::fqdn}", ) { ensure_packages([ 'vimwiki-scripts', 'xapian-omega', ]) include ::profiles::nginx include ::profiles::certificate letsencrypt::domain { $server_name: cert_name => $profiles::certificate::cert_name, } nginx::resource::server { $server_name: ipv6_enable => true, ipv6_listen_options => '', www_root => $wwwroot, use_default_location => false, autoindex => 'on', * => letsencrypt::conf::nginx($server_name), server_cfg_append => { charset => 'UTF-8', }, } $auth_basic = { auth_basic => '"Please log in"', auth_basic_user_file => '"/var/tmp/htpasswd"', } nginx::resource::location { default: server => $server_name, * => letsencrypt::conf::nginx::location($server_name), ; 'wiki /search': location => '/search', fastcgi_params => 'fastcgi_params', fastcgi_param => { 'SCRIPT_FILENAME' => '/usr/lib/cgi-bin/omega/omega', }, # TODO build fastcgi module, since this path changes between distros fastcgi => 'unix:/run/fcgiwrap.socket', location_cfg_append => $auth_basic, ; 'wiki /private': location => '/private', location_cfg_append => $auth_basic, ; 'wiki /': location => '/', ; } }