slaprunner: allow the use of .htaccess files in the public directory
[slapos.git] / software / slaprunner / httpd_conf.in
1 PidFile "{{ parameters.path_pid }}"
2 ServerName example.com
3 ServerAdmin someone@email
4
5 <IfDefine !MonitorPort>
6   Listen [{{ parameters.global_ip }}]:{{ parameters.monitor_port }}
7   Define MonitorPort
8 </IfDefine>
9
10 LoadModule unixd_module modules/mod_unixd.so
11 LoadModule access_compat_module modules/mod_access_compat.so
12 LoadModule auth_basic_module modules/mod_auth_basic.so
13 LoadModule authz_core_module modules/mod_authz_core.so
14 LoadModule authz_user_module modules/mod_authz_user.so
15 LoadModule authz_host_module modules/mod_authz_host.so
16 LoadModule authn_core_module modules/mod_authn_core.so
17 LoadModule authn_file_module modules/mod_authn_file.so
18 LoadModule mime_module modules/mod_mime.so
19 LoadModule cgid_module modules/mod_cgid.so
20 LoadModule ssl_module modules/mod_ssl.so
21 LoadModule alias_module modules/mod_alias.so
22 LoadModule env_module modules/mod_env.so
23 LoadModule rewrite_module modules/mod_rewrite.so
24 LoadModule log_config_module modules/mod_log_config.so
25 LoadModule dav_module modules/mod_dav.so
26 LoadModule dav_fs_module modules/mod_dav_fs.so
27
28 ErrorLog "{{ parameters.path_error_log }}"
29 LogFormat "%h %l %u %t \"%r\" %>s %b" common
30 CustomLog "{{ parameters.path_access_log }}" common
31
32 # SSL Configuration
33 Define SSLConfigured
34 SSLCertificateFile {{ parameters.cert_file }}
35 SSLCertificateKeyFile {{ parameters.key_file }}
36 SSLRandomSeed startup builtin
37 SSLRandomSeed connect builtin
38 SSLRandomSeed startup /dev/urandom 256
39 SSLRandomSeed connect builtin
40 SSLProtocol -ALL +SSLv3 +TLSv1
41 SSLHonorCipherOrder On
42 SSLCipherSuite RC4-SHA:HIGH:!ADH
43 SSLEngine   On
44
45 Alias /public {{ parameters.runner_home }}/public
46 <Directory {{ parameters.runner_home }}/public>
47     Order Allow,Deny
48     Allow from all
49     AllowOverride All
50     Satisfy Any
51     Options Indexes FollowSymLinks
52     DirectoryIndex index.html
53     <Files .htaccess>
54         order allow,deny
55         deny from all
56     </Files>
57 </Directory>
58
59
60 DavLockDB {{ parameters.var_dir }}/DavLock
61 Alias /share {{ parameters.runner_home }}
62 <Directory {{ parameters.runner_home }}>
63     DirectoryIndex disabled
64     DAV On
65     Options Indexes FollowSymLinks
66     AuthType Basic
67     AuthName "webdav"
68     AuthUserFile "{{ parameters.etc_dir }}/.htpasswd"
69     Require valid-user
70 </Directory>
71
72 ScriptSock {{ parameters.path_pid }}
73
74 SetEnv GIT_PROJECT_ROOT {{ parameters.project_folder }}
75 SetEnv GIT_HTTP_EXPORT_ALL
76 ScriptAlias /git/ {{ parameters.git_http_backend }}/
77 ScriptAlias /git-public/ {{ parameters.git_http_backend }}/
78
79 RewriteCond %{QUERY_STRING} service=git-receive-pack [OR]
80 RewriteCond %{REQUEST_URI} /git-receive-pack$
81 RewriteRule ^/git/ - [E=AUTHREQUIRED:yes]
82 RewriteRule ^/git-public/ - [E=AUTHREQUIRED:yes]
83
84 <LocationMatch "^/git-public/">
85         Order Deny,Allow
86         Deny from env=AUTHREQUIRED
87
88         AuthType Basic
89         AuthName "Git Access"
90         AuthUserFile "{{ parameters.etc_dir }}/.htpasswd"
91         Require valid-user
92         Satisfy any
93 </LocationMatch>
94
95 <LocationMatch "^/git/">
96         Order Deny,Allow
97         Deny from env=AUTHREQUIRED
98
99         AuthType Basic
100         AuthName "Git Access"
101         AuthUserFile "{{ parameters.etc_dir }}/.htpasswd"
102         Require valid-user
103 </LocationMatch>
104
105 include {{ parameters.cgi_httpd_conf }}