+%w(backup-nominatim vacuum-db-nominatim).each do |fname|
+ template "/usr/local/bin/#{fname}" do
+ source "#{fname}.erb"
+ owner "root"
+ group "root"
+ mode 0o755
+ variables :db => node[:nominatim][:dbname]
+ end
+end
+
+## webserver frontend
+
+template "#{build_directory}/settings/ip_blocks.conf" do
+ action :create_if_missing
+ source "ipblocks.erb"
+ owner "nominatim"
+ group "nominatim"
+ mode 0o664
+end
+
+file "#{build_directory}/settings/apache_blocks.conf" do
+ action :create_if_missing
+ owner "nominatim"
+ group "nominatim"
+ mode 0o664
+end
+
+file "#{build_directory}/settings/ip_blocks.map" do
+ action :create_if_missing
+ owner "nominatim"
+ group "nominatim"
+ mode 0o664
+end
+
+include_recipe "apache::ssl"
+
+package "php"
+package "php-fpm"
+package "php-pgsql"
+package "php-pear"
+package "php-db"
+
+apache_module "rewrite"
+apache_module "proxy"
+apache_module "proxy_fcgi"
+apache_module "proxy_http"
+apache_module "headers"
+
+service "php5-fpm" do
+ if node[:lsb][:release].to_f >= 15.10
+ provider Chef::Provider::Service::Systemd
+ service_name "php7.0-fpm"
+ elsif node[:lsb][:release].to_f >= 14.04
+ provider Chef::Provider::Service::Upstart
+ end
+ action [:enable, :start]
+ supports :status => true, :restart => true, :reload => true
+end
+
+php_confdir = node[:lsb][:release].to_f >= 15.10 ? "/etc/php/7.0" : "/etc/php5"
+
+node[:nominatim][:fpm_pools].each do |name, data|
+ template "#{php_confdir}/fpm/pool.d/#{name}.conf" do
+ source "fpm.conf.erb"
+ owner "root"
+ group "root"
+ mode 0o644
+ variables data.merge(:name => name)
+ notifies :reload, "service[php5-fpm]"
+ end
+end
+
+apache_site "nominatim.openstreetmap.org" do
+ template "apache.erb"
+ directory build_directory
+ variables :pools => node[:nominatim][:fpm_pools]
+end
+
+apache_site "default" do
+ action [:disable]
+end
+
+template "/etc/logrotate.d/apache2" do
+ source "logrotate.apache.erb"
+ owner "root"
+ group "root"
+ mode 0o644
+end
+
+include_recipe "fail2ban"
+
+fail2ban_filter "nominatim" do
+ failregex '^<HOST> - - \[[^]]+\] "[^"]+" 429 '
+end
+
+fail2ban_jail "nominatim" do
+ filter "nominatim"
+ logpath "/var/log/apache2/nominatim.openstreetmap.org-access.log"
+ ports [80, 443]
+ maxretry 100
+end
+