include_recipe "accounts"
include_recipe "munin"
include_recipe "php::fpm"
+include_recipe "prometheus"
basedir = data_bag_item("accounts", "nominatim")["home"]
email_errors = data_bag_item("accounts", "lonvia")["email"]
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"
python3-psutil
python3-jinja2
python3-icu
+ python3-datrie
php-pgsql
php-intl
php-symfony-dotenv
+ ruby
+ ruby-file-tail
+ ruby-pg
]
source_directory = "#{basedir}/nominatim"
command "cmake #{source_directory} && make"
end
+link "/usr/local/bin/nominatim" do
+ to "#{build_directory}/nominatim"
+end
+
template "#{source_directory}/.git/hooks/post-merge" do
source "git-post-merge-hook.erb"
owner "nominatim"
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_calendar "*-*-* 02:03:00 UTC"
+ end
+
+ service "nominatim-update-maintenance-trigger" do
+ action [:enable]
end
end
notifies :reload, "service[nginx]"
end
-package "apache2" do
- action :remove
-end
-
include_recipe "nginx"
nginx_site "default" do
target "#{source_directory}/munin/nominatim_requests_querylog"
end
+package "ruby-webrick"
+
+prometheus_exporter "nominatim" do
+ port 8082
+ user "www-data"
+ options [
+ "--nominatim.query-log=#{node[:nominatim][:logdir]}/query.log",
+ "--nominatim.database-name=#{node[:nominatim][:dbname]}"
+ ]
+end
+
directory "#{basedir}/status" do
owner "nominatim"
group "postgres"
### QA tile generation
if node[:nominatim][:enable_qa_tiles]
+ package "python3-geojson"
+
git qa_bin_directory do
repository node[:nominatim][:qa_repository]
revision node[:nominatim][:qa_revision]
variables :outputdir => "#{qa_data_directory}/new"
end
- link "#{build_directory}/website/qa-data" do
- to "#{qa_data_directory}/current"
- owner "nominatim"
- group "nominatim"
+ ssl_certificate "qa-tile.nominatim.openstreetmap.org" do
+ domains ["qa-tile.nominatim.openstreetmap.org"]
+ notifies :reload, "service[nginx]"
end
+
+ nginx_site "qa-tiles.nominatim" do
+ template "nginx-qa-tiles.erb"
+ directory build_directory
+ variables :qa_data_directory => qa_data_directory
+ end
+
end