X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/faf8ae12e85eabb050b0f5eceb2cb67ad1de5261..45b7810de02974d8e5c7c51874238c4f76f42e94:/cookbooks/piwik/recipes/default.rb diff --git a/cookbooks/piwik/recipes/default.rb b/cookbooks/piwik/recipes/default.rb index 02fb7a860..5317c3596 100644 --- a/cookbooks/piwik/recipes/default.rb +++ b/cookbooks/piwik/recipes/default.rb @@ -1,14 +1,14 @@ # -# Cookbook Name:: piwik +# Cookbook:: piwik # Recipe:: default # -# Copyright 2011, OpenStreetMap Foundation +# Copyright:: 2011, OpenStreetMap Foundation # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, @@ -17,51 +17,94 @@ # limitations under the License. # -include_recipe "apache::ssl" +include_recipe "apache" +include_recipe "geoipupdate" include_recipe "mysql" passwords = data_bag_item("piwik", "passwords") -package "php5" -package "php5-cli" -package "php5-curl" -package "php5-mysql" -package "php5-gd" +package %w[ + php + php-cli + php-curl + php-mbstring + php-mysql + php-gd + php-xml + php-apcu + unzip +] -package "php-apc" +apache_module "expires" +apache_module "php7.2" +apache_module "rewrite" -package "geoip-database-contrib" +version = node[:piwik][:version] -apache_module "php5" -apache_module "geoip" +directory "/opt/piwik-#{version}" do + owner "root" + group "root" + mode "0755" +end -apache_site "piwik.openstreetmap.org" do - template "apache.erb" +remote_file "#{Chef::Config[:file_cache_path]}/piwik-#{version}.zip" do + source "https://builds.matomo.org/piwik-#{version}.zip" + not_if { ::File.exist?("/opt/piwik-#{version}/piwik") } end -directory "/srv/piwik.openstreetmap.org" do - owner "root" +execute "unzip-piwik-#{version}" do + command "unzip -q #{Chef::Config[:file_cache_path]}/piwik-#{version}.zip" + cwd "/opt/piwik-#{version}" + user "root" group "root" - mode "0755" + not_if { ::File.exist?("/opt/piwik-#{version}/piwik") } end -directory "/srv/piwik.openstreetmap.org/config" do - owner "www-data" - group "www-data" - mode "0755" +execute "/opt/piwik-#{version}/piwik/piwik.js" do + command "gzip -k -9 /opt/piwik-#{version}/piwik/piwik.js" + cwd "/opt/piwik-#{version}" + user "root" + group "root" + not_if { ::File.exist?("/opt/piwik-#{version}/piwik/piwik.js.gz") } end -directory "/srv/piwik.openstreetmap.org/tmp" do +directory "/opt/piwik-#{version}/piwik/config" do owner "www-data" group "www-data" mode "0755" end -template "/etc/cron.d/piwiki" do - source "cron.erb" +template "/opt/piwik-#{version}/piwik/config/config.ini.php" do + source "config.erb" owner "root" group "root" mode "0644" + variables :passwords => passwords, + :directory => "/opt/piwik-#{version}/piwik", + :plugins => node[:piwik][:plugins] +end + +directory "/opt/piwik-#{version}/piwik/tmp" do + owner "www-data" + group "www-data" + mode "0755" +end + +link "/opt/piwik-#{version}/piwik/misc/GeoLite2-ASN.mmdb" do + to "/usr/share/GeoIP/GeoLite2-ASN.mmdb" +end + +link "/opt/piwik-#{version}/piwik/misc/GeoLite2-City.mmdb" do + to "/usr/share/GeoIP/GeoLite2-City.mmdb" +end + +link "/opt/piwik-#{version}/piwik/misc/GeoLite2-Country.mmdb" do + to "/usr/share/GeoIP/GeoLite2-Country.mmdb" +end + +link "/srv/piwik.openstreetmap.org" do + to "/opt/piwik-#{version}/piwik" + notifies :restart, "service[apache2]" end mysql_user "piwik@localhost" do @@ -71,3 +114,19 @@ end mysql_database "piwik" do permissions "piwik@localhost" => :all end + +ssl_certificate "piwik.openstreetmap.org" do + domains ["piwik.openstreetmap.org", "piwik.osm.org"] + notifies :reload, "service[apache2]" +end + +apache_site "piwik.openstreetmap.org" do + template "apache.erb" +end + +template "/etc/cron.d/piwiki" do + source "cron.erb" + owner "root" + group "root" + mode "0644" +end