mode "664"
end
-# exception granted for a limited time so that they can set up their own server
-firewall_rule "increase-limits-gnome-proxy" do
- action :accept
- family "inet"
- source "net:8.43.85.23"
- dest "fw"
- proto "tcp:syn"
- dest_ports "https"
- rate_limit "s:10/sec:30"
-end
-
## Postgresql
include_recipe "postgresql"
pyosmium
python3-psycopg2
python3-dotenv
+ python3-psutil
+ python3-jinja2
+ python3-icu
+ python3-datrie
php-pgsql
php-intl
php-symfony-dotenv
source_directory = "#{basedir}/nominatim"
build_directory = "#{basedir}/bin"
ui_directory = "#{basedir}/ui"
+qa_bin_directory = "#{basedir}/Nominatim-Data-Analyser"
+qa_data_directory = "#{basedir}/qa-data"
directory build_directory do
owner "nominatim"
variables :base_url => node[:nominatim][:state] == "off" ? node[:fqdn] : "nominatim.openstreetmap.org",
:dbname => node[:nominatim][:dbname],
:flatnode_file => node[:nominatim][:flatnode_file],
- :log_file => "#{node[:nominatim][:logdir]}/query.log"
+ :log_file => "#{node[:nominatim][:logdir]}/query.log",
+ :tokenizer => node[:nominatim][:config][:tokenizer]
end
git ui_directory do
external_data = [
"wikimedia-importance.sql.gz",
- "gb_postcode_data.sql.gz",
- "us_postcode_data.sql.gz"
+ "gb_postcodes.csv.gz",
+ "us_postcodes.csv.gz"
]
external_data.each do |fname|
remote_file "#{build_directory}/#{fname}" do
- action :create_if_missing
+ action :create
source "https://www.nominatim.org/data/#{fname}"
owner "nominatim"
group "nominatim"
action :delete
end
- cron_d "nominatim-update-maintenance-trigger" do
+ systemd_timer "nominatim-update-maintenance-trigger" do
action :delete
end
else
mailto email_errors
end
- cron_d "nominatim-update-maintenance-trigger" do
- minute "18"
- hour "1"
+ systemd_service "nominatim-update-maintenance-trigger" do
+ description "Trigger maintenance tasks for Nominatim DB"
+ exec_start "touch #{basedir}/status/update_maintenance"
user "nominatim"
- command "touch #{basedir}/status/update_maintenance"
- mailto email_errors
+ end
+
+ systemd_timer "nominatim-update-maintenance-trigger" do
+ action :create
+ description "Schedule maintenance tasks for Nominatim DB"
+ on_calender "*-*-* 02:03:00 UTC"
end
end
:logfile => "#{node[:nominatim][:logdir]}/update.log",
:branch => node[:nominatim][:revision],
:update_stop_file => "#{basedir}/status/updates_disabled",
- :update_maintenance_trigger => "#{basedir}/status/update_maintenance"
+ :update_maintenance_trigger => "#{basedir}/status/update_maintenance",
+ :qabindir => qa_bin_directory,
+ :qadatadir => qa_data_directory
end
template "/etc/init.d/nominatim-update" do
notifies :reload, "service[nginx]"
end
-package "apache2" do
- action :remove
-end
-
include_recipe "nginx"
nginx_site "default" do
maxretry 20
ignoreips frontend_addresses.flatten.sort
end
+
+### QA tile generation
+
+if node[:nominatim][:enable_qa_tiles]
+ git qa_bin_directory do
+ repository node[:nominatim][:qa_repository]
+ revision node[:nominatim][:qa_revision]
+ enable_submodules true
+ user "nominatim"
+ group "nominatim"
+ notifies :run, "execute[compile_qa]"
+ end
+
+ execute "compile_qa" do
+ action :nothing
+ user "nominatim"
+ cwd "#{qa_bin_directory}/clustering-vt"
+ command "make"
+ end
+
+ directory qa_data_directory do
+ owner "nominatim"
+ group "nominatim"
+ mode "755"
+ recursive true
+ end
+
+ template "#{qa_bin_directory}/analyser/config/config.yaml" do
+ source "qa_config.erb"
+ owner "nominatim"
+ group "nominatim"
+ mode "755"
+ variables :outputdir => "#{qa_data_directory}/new"
+ end
+
+ link "#{build_directory}/website/qa-data" do
+ to "#{qa_data_directory}/current"
+ owner "nominatim"
+ group "nominatim"
+ end
+end