{ config, lib, ... }: { services.grocy = { enable = true; hostName = "grocy.owo.monster"; nginx.enableSSL = false; phpfpm.settings = { "listen.owner" = "nginx"; "pm" = "dynamic"; "pm.max_children" = 32; "pm.max_requests" = 500; "pm.start_servers" = 2; "pm.min_spare_servers" = 2; "pm.max_spare_servers" = 5; "catch_workers_output" = true; "php_admin_flag[display_errors]" = true; "php_admin_value[error_log]" = "stderr"; "php_admin_flag[log_errors]" = true; }; settings = { currency = "GBP"; culture = "en_GB"; calendar.firstDayOfWeek = 1; }; }; services.phpfpm.pools.grocy = let cfg = config.services.grocy; in { phpEnv = { GROCY_CONFIG_FILE = "/etc/grocy/config.php"; GROCY_DATAPATH = "${cfg.dataDir}"; }; }; environment.etc."grocy/config.php".text = let cfg = config.services.grocy; inherit (lib.trivial) boolToString; inherit (lib.modules) mkForce; in mkForce ''