]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/matomo/recipes/default.rb
Lock zeitwerk to a ruby 3.1 supporting version
[chef.git] / cookbooks / matomo / recipes / default.rb
index b870cb0ffbee12d49a62434491c0403c8d464b42..5557d78d09a878067ca60e0f7a21fb1e928eef53 100644 (file)
@@ -37,29 +37,20 @@ package %w[
 ]
 
 apache_module "expires"
+apache_module "proxy"
+apache_module "proxy_fcgi"
 apache_module "rewrite"
 
 version = node[:matomo][:version]
 
 geoip_directory = node[:geoipupdate][:directory]
 
-directory "/opt/matomo-#{version}" do
-  owner "root"
-  group "root"
-  mode "0755"
-end
-
 remote_file "#{Chef::Config[:file_cache_path]}/matomo-#{version}.zip" do
   source "https://builds.matomo.org/matomo-#{version}.zip"
 end
 
 archive_file "#{Chef::Config[:file_cache_path]}/matomo-#{version}.zip" do
-  action :nothing
   destination "/opt/matomo-#{version}"
-  overwrite true
-  owner "root"
-  group "root"
-  subscribes :extract, "remote_file[#{Chef::Config[:file_cache_path]}/matomo-#{version}.zip]", :immediately
   notifies :run, "notify_group[matomo-updated]"
 end
 
@@ -71,12 +62,11 @@ node[:matomo][:plugins].each do |plugin_name, plugin_version|
   end
 
   archive_file "#{Chef::Config[:file_cache_path]}/matomo-#{plugin_name}-#{plugin_version}.zip" do
-    action :nothing
-    destination "/opt/matomo-#{version}/matomo/plugins"
-    overwrite true
-    owner "root"
-    group "root"
-    subscribes :extract, "remote_file[#{Chef::Config[:file_cache_path]}/matomo-#{plugin_name}-#{plugin_version}.zip]", :immediately
+    destination "/opt/matomo-#{plugin_name}-#{plugin_version}"
+  end
+
+  link "/opt/matomo-#{version}/matomo/plugins/#{plugin_name}" do
+    to "/opt/matomo-#{plugin_name}-#{plugin_version}/#{plugin_name}"
     notifies :run, "notify_group[matomo-updated]"
   end
 end
@@ -157,7 +147,7 @@ if File.symlink?("/srv/matomo.openstreetmap.org")
 
   execute "/opt/matomo-#{version}/matomo/matomo.br" do
     action :nothing
-    command "brotli --keep --best /opt/matomo-#{version}/matomo/matomo.js"
+    command "brotli --keep --force --best /opt/matomo-#{version}/matomo/matomo.js"
     cwd "/opt/matomo-#{version}"
     user "root"
     group "root"
@@ -166,7 +156,7 @@ if File.symlink?("/srv/matomo.openstreetmap.org")
 
   execute "/opt/matomo-#{version}/matomo/matomo.js" do
     action :nothing
-    command "gzip --keep --best /opt/matomo-#{version}/matomo/matomo.js"
+    command "gzip --keep --force --best /opt/matomo-#{version}/matomo/matomo.js"
     cwd "/opt/matomo-#{version}"
     user "root"
     group "root"
@@ -175,7 +165,7 @@ if File.symlink?("/srv/matomo.openstreetmap.org")
 
   execute "/opt/matomo-#{version}/matomo/piwik.br" do
     action :nothing
-    command "brotli --keep --best /opt/matomo-#{version}/matomo/piwik.js"
+    command "brotli --keep --force --best /opt/matomo-#{version}/matomo/piwik.js"
     cwd "/opt/matomo-#{version}"
     user "root"
     group "root"
@@ -184,7 +174,7 @@ if File.symlink?("/srv/matomo.openstreetmap.org")
 
   execute "/opt/matomo-#{version}/matomo/piwik.js" do
     action :nothing
-    command "gzip --keep --best /opt/matomo-#{version}/matomo/piwik.js"
+    command "gzip --keep --force --best /opt/matomo-#{version}/matomo/piwik.js"
     cwd "/opt/matomo-#{version}"
     user "root"
     group "root"
@@ -211,8 +201,23 @@ apache_site "matomo.openstreetmap.org" do
   template "apache.erb"
 end
 
-cron_d "matomo" do
-  minute "5"
+systemd_service "matomo-archive" do
+  description "Matomo report archiving"
+  exec_start "/usr/bin/php /srv/matomo.openstreetmap.org/console core:archive --url=https://matomo.openstreetmap.org/"
   user "www-data"
-  command "/usr/bin/php /srv/matomo.openstreetmap.org/console core:archive --quiet --url=https://matomo.openstreetmap.org/"
+  sandbox true
+  proc_subset "all"
+  memory_deny_write_execute false
+  restrict_address_families "AF_UNIX"
+  read_write_paths "/opt/matomo-#{version}/matomo/tmp"
+end
+
+systemd_timer "matomo-archive" do
+  description "Matomo report archiving"
+  on_boot_sec "30m"
+  on_unit_inactive_sec "30m"
+end
+
+service "matomo-archive.timer" do
+  action [:enable, :start]
 end