blob: c7eedb104785c091a65abb6da961255261a0c819 [file] [log] [blame]
# ************************************
# Vhost template in module puppetlabs-apache
# Managed by Puppet
# ************************************
<VirtualHost *:80>
ServerName whimsy.local
## Vhost docroot
DocumentRoot "/srv/whimsy/www"
## Directories, there should at least be a declaration for /srv/whimsy/www
<Directory "/srv/whimsy/www">
Options +FollowSymLinks +MultiViews +ExecCGI
AllowOverride None
Require all granted
</Directory>
## Logging
ErrorLog "/var/log/apache2/whimsy_error.log"
ServerSignature Off
CustomLog "/var/log/apache2/whimsy_access.log" combined
## Server aliases
## ServerAlias whimsy-test.apache.org
## ServerAlias whimsy4.apache.org
## ServerAlias whimsy-vm4.apache.org
## Custom fragment
SetEnv PATH /usr/local/bin:${PATH}
PassengerFriendlyErrorPages on
AddCharset UTF-8 .json
ExpiresActive On
<Directory /srv/whimsy/www/>
AddHandler cgi-script .cgi
MultiViewsMatch Any
CheckSpelling On
<FilesMatch ".(js|css)$">
<If "%{QUERY_STRING} =~ /^\d+$/">
Header set Cache-Control "public, max-age=31536000, immutable"
ExpiresDefault "access plus 1 year"
</If>
</FilesMatch>
</Directory>
<Directory /srv/whimsy/www/public/>
Header add Access-Control-Allow-Origin "*"
Options +Indexes
</Directory>
<Directory /srv/whimsy/www/logs>
Options +Indexes
</Directory>
<Directory /srv/whimsy/www/members/log>
Options +Indexes
</Directory>
# WHIMSY-199
<Directory /srv/whimsy/www/board/minutes>
AllowOverride FileInfo
</Directory>
RewriteEngine on
RewriteRule ^.*$ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# for secretary workbench
RedirectMatch permanent ^/secmail /secretary/workbench
RedirectMatch permanent ^/officers/public_names /secretary/public-names
# redirect obsolete mailing list request form to replacement application
RedirectMatch permanent ^/officers/mlreq https://selfserve.apache.org/mail.html
ProxyPass "/board/agenda/websocket/" "ws://localhost:34234/"
# We now have local custom error pages
ErrorDocument 401 /401.html
ErrorDocument 404 /404.html
ErrorDocument 500 /500.html
Alias /board/agenda/ /srv/whimsy/www/board/agenda/public
<Location /board/agenda>
PassengerBaseURI /board/agenda
PassengerAppRoot /srv/whimsy/www/board/agenda
Options -MultiViews
CheckSpelling Off
# SetEnv HTTPS on
</Location>
Alias /racktest/ /srv/whimsy/www/racktest/public
<Location /racktest>
PassengerBaseURI /racktest
PassengerAppRoot /srv/whimsy/www/racktest
Options -MultiViews
CheckSpelling Off
# SetEnv HTTPS on
</Location>
Alias /roster/ /srv/whimsy/www/roster/public
<Location /roster>
PassengerBaseURI /roster
PassengerAppRoot /srv/whimsy/www/roster
Options -MultiViews
CheckSpelling Off
# SetEnv HTTPS on
</Location>
Alias /secretary/workbench/ /srv/whimsy/www/secretary/workbench/public
<Location /secretary/workbench>
PassengerBaseURI /secretary/workbench
PassengerAppRoot /srv/whimsy/www/secretary/workbench
Options -MultiViews
CheckSpelling Off
# SetEnv HTTPS on
</Location>
Alias /project/icla/ /srv/whimsy/www/project/icla/public
<Location /project/icla>
PassengerBaseURI /project/icla
PassengerAppRoot /srv/whimsy/www/project/icla
Options -MultiViews
CheckSpelling Off
# SetEnv HTTPS on
</Location>
<LocationMatch ^/board/subscriptions>
AuthType Basic
AuthName "ASF Committers"
AuthBasicProvider ldap
AuthLDAPUrl "ldaps://ldap-us-ro.apache.org:636 ldap-eu-ro.apache.org:636/ou=people,dc=apache,dc=org?uid"
AuthLDAPGroupAttribute member
AuthLDAPGroupAttributeIsDN on
AuthLDAPMaxSubGroupDepth 0
Require ldap-group cn=committers,ou=role,ou=groups,dc=apache,dc=org
</LocationMatch>
<Directory /srv/whimsy/www/committers>
AuthType Basic
AuthName "ASF Committers"
AuthBasicProvider ldap
AuthLDAPUrl "ldaps://ldap-us-ro.apache.org:636 ldap-eu-ro.apache.org:636/ou=people,dc=apache,dc=org?uid"
AuthLDAPGroupAttribute member
AuthLDAPGroupAttributeIsDN on
AuthLDAPMaxSubGroupDepth 0
Require ldap-group cn=committers,ou=role,ou=groups,dc=apache,dc=org
</Directory>
<Directory /srv/whimsy/www/project/icla>
AuthType Basic
AuthName "ASF Committers"
AuthBasicProvider ldap
AuthLDAPUrl "ldaps://ldap-us-ro.apache.org:636 ldap-eu-ro.apache.org:636/ou=people,dc=apache,dc=org?uid"
AuthLDAPGroupAttribute member
AuthLDAPGroupAttributeIsDN on
AuthLDAPMaxSubGroupDepth 0
Require ldap-group cn=committers,ou=role,ou=groups,dc=apache,dc=org
</Directory>
<Directory /srv/whimsy/www/roster>
AuthType Basic
AuthName "ASF Committers"
AuthBasicProvider ldap
AuthLDAPUrl "ldaps://ldap-us-ro.apache.org:636 ldap-eu-ro.apache.org:636/ou=people,dc=apache,dc=org?uid"
AuthLDAPGroupAttribute member
AuthLDAPGroupAttributeIsDN on
AuthLDAPMaxSubGroupDepth 0
Require ldap-group cn=committers,ou=role,ou=groups,dc=apache,dc=org
</Directory>
<Directory /srv/whimsy/www/test/roster>
AuthType Basic
AuthName "ASF Committers"
AuthBasicProvider ldap
AuthLDAPUrl "ldaps://ldap-us-ro.apache.org:636 ldap-eu-ro.apache.org:636/ou=people,dc=apache,dc=org?uid"
AuthLDAPGroupAttribute member
AuthLDAPGroupAttributeIsDN on
AuthLDAPMaxSubGroupDepth 0
Require ldap-group cn=committers,ou=role,ou=groups,dc=apache,dc=org
</Directory>
<LocationMatch ^/incubator/moderators>
AuthType Basic
AuthName "ASF Members and Incubator PMC"
AuthBasicProvider ldap
AuthLDAPUrl "ldaps://ldap-us-ro.apache.org:636 ldap-eu-ro.apache.org:636/ou=people,dc=apache,dc=org?uid"
AuthLDAPGroupAttribute member
AuthLDAPGroupAttributeIsDN on
AuthLDAPMaxSubGroupDepth 0
Require ldap-group cn=committers,ou=role,ou=groups,dc=apache,dc=org
</LocationMatch>
<LocationMatch ^/incubator/signoff>
AuthType Basic
AuthName "ASF Members and Incubator PMC"
AuthBasicProvider ldap
AuthLDAPUrl "ldaps://ldap-us-ro.apache.org:636 ldap-eu-ro.apache.org:636/ou=people,dc=apache,dc=org?uid"
AuthLDAPGroupAttribute member
AuthLDAPGroupAttributeIsDN on
AuthLDAPMaxSubGroupDepth 0
Require ldap-group cn=committers,ou=role,ou=groups,dc=apache,dc=org
</LocationMatch>
<Directory /srv/whimsy/www/fundraising>
AuthType Basic
AuthName "ASF Members and Officers"
AuthBasicProvider ldap
AuthLDAPUrl "ldaps://ldap-us-ro.apache.org:636 ldap-eu-ro.apache.org:636/ou=people,dc=apache,dc=org?uid"
AuthLDAPGroupAttribute member
AuthLDAPGroupAttributeIsDN on
AuthLDAPMaxSubGroupDepth 0
Require ldap-group cn=committers,ou=role,ou=groups,dc=apache,dc=org
</Directory>
<Directory /srv/whimsy/www/officers>
AuthType Basic
AuthName "ASF Members and Officers"
AuthBasicProvider ldap
AuthLDAPUrl "ldaps://ldap-us-ro.apache.org:636 ldap-eu-ro.apache.org:636/ou=people,dc=apache,dc=org?uid"
AuthLDAPGroupAttribute member
AuthLDAPGroupAttributeIsDN on
AuthLDAPMaxSubGroupDepth 0
Require ldap-group cn=committers,ou=role,ou=groups,dc=apache,dc=org
</Directory>
<Directory /srv/whimsy/www/treasurer>
AuthType Basic
AuthName "ASF Members and Officers"
AuthBasicProvider ldap
AuthLDAPUrl "ldaps://ldap-us-ro.apache.org:636 ldap-eu-ro.apache.org:636/ou=people,dc=apache,dc=org?uid"
AuthLDAPGroupAttribute member
AuthLDAPGroupAttributeIsDN on
AuthLDAPMaxSubGroupDepth 0
Require ldap-group cn=committers,ou=role,ou=groups,dc=apache,dc=org
</Directory>
<Directory /srv/whimsy/www/board/agenda>
AuthType Basic
AuthName "ASF Members and Officers"
AuthBasicProvider ldap
AuthLDAPUrl "ldaps://ldap-us-ro.apache.org:636 ldap-eu-ro.apache.org:636/ou=people,dc=apache,dc=org?uid"
AuthLDAPGroupAttribute member
AuthLDAPGroupAttributeIsDN on
AuthLDAPMaxSubGroupDepth 0
Require expr %{REQUEST_URI} == '/board/agenda/app.js'
Require expr %{REQUEST_URI} == '/board/agenda/app.js.map'
Require expr %{REQUEST_URI} =~ m#^/board/agenda/.*\.js\.rb$#
Require expr %{REQUEST_URI} =~ m#^/board/agenda/[-\d]+/bootstrap.html$#
Require expr %{REQUEST_URI} == '/board/agenda/manifest.json'
Require expr %{REQUEST_URI} == '/board/agenda/stylesheets/app.css'
Require expr %{REQUEST_URI} == '/board/agenda/sw.js'
Require ldap-group cn=committers,ou=role,ou=groups,dc=apache,dc=org
</Directory>
<Directory /srv/whimsy/www/apmail>
AuthType Basic
AuthName "ASF Members"
AuthBasicProvider ldap
AuthLDAPUrl "ldaps://ldap-us-ro.apache.org:636 ldap-eu-ro.apache.org:636/ou=people,dc=apache,dc=org?uid"
AuthLDAPGroupAttribute memberUid
AuthLDAPGroupAttributeIsDN off
AuthLDAPMaxSubGroupDepth 0
Require ldap-group cn=member,ou=groups,dc=apache,dc=org
</Directory>
<Directory /srv/whimsy/www/members>
AuthType Basic
AuthName "ASF Members"
AuthBasicProvider ldap
AuthLDAPUrl "ldaps://ldap-us-ro.apache.org:636 ldap-eu-ro.apache.org:636/ou=people,dc=apache,dc=org?uid"
AuthLDAPGroupAttribute memberUid
AuthLDAPGroupAttributeIsDN off
AuthLDAPMaxSubGroupDepth 0
Require ldap-group cn=member,ou=groups,dc=apache,dc=org
</Directory>
<Directory /srv/whimsy/www/voter>
AuthType Basic
AuthName "ASF Members"
AuthBasicProvider ldap
AuthLDAPUrl "ldaps://ldap-us-ro.apache.org:636 ldap-eu-ro.apache.org:636/ou=people,dc=apache,dc=org?uid"
AuthLDAPGroupAttribute memberUid
AuthLDAPGroupAttributeIsDN off
AuthLDAPMaxSubGroupDepth 0
Require ldap-group cn=member,ou=groups,dc=apache,dc=org
</Directory>
<Directory /srv/whimsy/www/infra>
AuthType Basic
AuthName "ASF Infrastructure Team"
AuthBasicProvider ldap
AuthLDAPUrl "ldaps://ldap-us-ro.apache.org:636 ldap-eu-ro.apache.org:636/ou=people,dc=apache,dc=org?uid"
AuthLDAPGroupAttribute member
AuthLDAPGroupAttributeIsDN on
AuthLDAPMaxSubGroupDepth 0
Require ldap-group cn=infrastructure,ou=groups,ou=services,dc=apache,dc=org
</Directory>
<Directory /srv/whimsy/www/secretary>
AuthType Basic
AuthName "ASF Secretarial Team"
AuthBasicProvider ldap
AuthLDAPUrl "ldaps://ldap-us-ro.apache.org:636 ldap-eu-ro.apache.org:636/ou=people,dc=apache,dc=org?uid"
AuthLDAPGroupAttribute member
AuthLDAPGroupAttributeIsDN on
AuthLDAPMaxSubGroupDepth 0
<RequireAny>
Require ldap-group cn=asf-secretary,ou=groups,ou=services,dc=apache,dc=org
Require ldap-group cn=apldap,ou=groups,ou=services,dc=apache,dc=org
</RequireAny>
</Directory>
<LocationMatch ^/board/publish_minutes>
AuthType Basic
AuthName "ASF Secretarial Team"
AuthBasicProvider ldap
AuthLDAPUrl "ldaps://ldap-us-ro.apache.org:636 ldap-eu-ro.apache.org:636/ou=people,dc=apache,dc=org?uid"
AuthLDAPGroupAttribute member
AuthLDAPGroupAttributeIsDN on
AuthLDAPMaxSubGroupDepth 0
<RequireAny>
Require ldap-group cn=asf-secretary,ou=groups,ou=services,dc=apache,dc=org
Require ldap-group cn=apldap,ou=groups,ou=services,dc=apache,dc=org
</RequireAny>
</LocationMatch>
<Directory /srv/whimsy/www/test/member>
AuthType Basic
AuthName "ASF Members"
AuthBasicProvider ldap
AuthLDAPUrl "ldaps://ldap-us-ro.apache.org:636 ldap-eu-ro.apache.org:636/ou=people,dc=apache,dc=org?uid"
Require ldap-alias-member
</Directory>
<Directory /srv/whimsy/www/test/incubator>
AuthType Basic
AuthName "Incubator PMC"
AuthBasicProvider ldap
AuthLDAPUrl "ldaps://ldap-us-ro.apache.org:636 ldap-eu-ro.apache.org:636/ou=people,dc=apache,dc=org?uid"
Require ldap-alias-incubator-pmc
</Directory>
<Directory /srv/whimsy/www/test/member-incubator>
AuthType Basic
AuthName "ASF Members and Incubator PMC"
AuthBasicProvider ldap
AuthLDAPUrl "ldaps://ldap-us-ro.apache.org:636 ldap-eu-ro.apache.org:636/ou=people,dc=apache,dc=org?uid"
<RequireAny>
Require ldap-alias-member
Require ldap-alias-incubator-pmc
</RequireAny>
</Directory>
</VirtualHost>