diff --git a/nixos/modules/services/web-apps/matomo.nix b/nixos/modules/services/web-apps/matomo.nix index a4bc04edf0640..73f93778bf0bd 100644 --- a/nixos/modules/services/web-apps/matomo.nix +++ b/nixos/modules/services/web-apps/matomo.nix @@ -183,7 +183,10 @@ in { chmod -R u+rwX,g+rwX,o-rwx "${dataDir}" # check whether user setup has already been done - if test -f "${dataDir}/config/config.ini.php"; then + if test -f "${dataDir}/config/config.ini.php" && + # since matomo-5.2.0, the config.ini.php is already created at first + # installer page access https://github.com/matomo-org/matomo/issues/22932 + grep -q -F "[database]" "${dataDir}/config/config.ini.php"; then # then execute possibly pending database upgrade matomo-console core:update --yes fi diff --git a/nixos/tests/matomo.nix b/nixos/tests/matomo.nix index 35c71aa088538..1a40fa93a5578 100644 --- a/nixos/tests/matomo.nix +++ b/nixos/tests/matomo.nix @@ -37,11 +37,25 @@ let machine.wait_for_unit("phpfpm-matomo.service") machine.wait_for_unit("nginx.service") + with subtest("matomo.js reachable via HTTP"): + machine.succeed("curl -sSfk http://machine/matomo.js") + + with subtest("js/piwik.js reachable via HTTP"): + machine.succeed("curl -sSfk http://machine/js/piwik.js") + + with subtest("matomo.php (API) reachable via HTTP"): + machine.succeed("curl -sSfk http://machine/matomo.php") + # without the grep the command does not produce valid utf-8 for some reason with subtest("welcome screen loads"): machine.succeed( "curl -sSfL http://localhost/ | grep 'Matomo[^<]*Installation'" ) + + with subtest("killing the phpfpm process should trigger an automatic restart"): + machine.succeed("systemctl kill -s KILL phpfpm-matomo") + machine.sleep(1) + machine.wait_for_unit("phpfpm-matomo.service") ''; }; in