# DO NOT EDIT - This file is being maintained by Chef
WSGIDaemonProcess <%= @user %>.dev.openstreetmap.org user=<%= @user %> processes=2 threads=8 restart-interval=3600 inactivity-timeout=600 graceful-timeout=60 maximum-requests=2000
ServerName <%= @user %>.dev.openstreetmap.org
ServerAlias <%= @user %>.dev.osm.org
ServerAdmin webmaster@openstreetmap.org
SSLEngine on
SSLCertificateFile /etc/ssl/certs/<%= @user %>.dev.openstreetmap.org.pem
SSLCertificateKeyFile /etc/ssl/private/<%= @user %>.dev.openstreetmap.org.key
# Remove Proxy request header to mitigate https://httpoxy.org/
RequestHeader unset Proxy early
UseCanonicalName Off
DocumentRoot <%= @directory %>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
WSGIProcessGroup <%= @user %>.dev.openstreetmap.org
RewriteEngine on
#LogLevel rewrite:trace2
CustomLog /var/log/apache2/<%= @user %>.dev.openstreetmap.org-access.log combined_extended
ErrorLog /var/log/apache2/<%= @user %>.dev.openstreetmap.org-error.log
# Prevent abuse by an anonymous AI bot
RewriteCond %{REQUEST_METHOD} ^(GET|HEAD)$
RewriteCond %{HTTP_REFERER} ^-?$
RewriteCond %{HTTP_USER_AGENT} ((CriOS|Chrome)/[1-9][0-9]?\.0\.|Chrome/100\.0\.|Chrome/122\.0\.0\.0|(Firefox|FxiOS)/[1-6]?[0-9]\.|MSIE\ [5-9]\.0|Opera/[8-9]\.|Windows\ NT\ [3-5]\.|Version/[3-5]\.[0-1]) [NC]
RewriteRule ^ - [R=429,L]
RewriteCond <%= @directory %>%{REQUEST_FILENAME} -f
RewriteRule ^/cgi-bin/(.*)$ /~<%= @user %>/cgi-bin/$1 [PT,L]
SetHandler "proxy:unix:/run/php/php-<%= @user %>-fpm.sock|fcgi://127.0.0.1"
ServerName <%= @user %>.dev.openstreetmap.org
ServerAlias <%= @user %>.dev.osm.org
ServerAdmin webmaster@openstreetmap.org
CustomLog /var/log/apache2/<%= @user %>.dev.openstreetmap.org-access.log combined_extended
ErrorLog /var/log/apache2/<%= @user %>.dev.openstreetmap.org-error.log
RedirectPermanent /.well-known/acme-challenge/ http://acme.openstreetmap.org/.well-known/acme-challenge/
RedirectPermanent / https://<%= @user %>.dev.openstreetmap.org/
>
AllowOverride AuthConfig FileInfo Indexes Options=RailsBaseURI
Options SymLinksIfOwnerMatch Indexes Includes
Require all granted
/cgi-bin>
SetHandler cgi-script
Options ExecCGI SymLinksIfOwnerMatch
Require all granted
/wsgi-bin>
SetHandler wsgi-script
Options ExecCGI SymLinksIfOwnerMatch
Require all granted