| # ************************************ |
| # 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> |