{ config, lib, ... }: let cfg = config.vhack.grocy; data = "/var/lib/grocy"; in { options.vhack.grocy = { enable = lib.mkEnableOption "grocy"; domain = lib.mkOption { type = lib.types.str; description = "FQDN for the grocy instance."; }; }; config = lib.mkIf cfg.enable { services.grocy = { enable = true; hostName = cfg.domain; dataDir = data; settings = { currency = "EUR"; culture = "sv_SE"; calendar.firstDayOfWeek = 1; }; }; vhack.persist.directories = [ { directory = data; user = "grocy"; group = "grocy"; mode = "0700"; } ]; users = { groups.grocy = { gid = config.vhack.constants.ids.gids.grocy; }; users.grocy = { extraGroups = ["grocy"]; uid = config.vhack.constants.ids.uids.grocy; }; }; }; }