{ container, lib, config, ... }: with lib; let cfg = config.container.module.stock; in { options = { container.module.stock = { enable = mkEnableOption "Stock management."; address = mkOption { default = "10.1.0.45"; type = types.str; }; port = mkOption { default = 80; type = types.int; }; domain = mkOption { default = "stock.${config.container.domain}"; type = types.str; }; storage = mkOption { default = "${config.container.storage}/stock"; type = types.str; }; }; }; config = mkIf cfg.enable { systemd.tmpfiles.rules = container.mkContainerDir cfg [ "data" ]; containers.stock = container.mkContainer cfg { bindMounts = { "/var/lib/grocy" = { hostPath = "${cfg.storage}/data"; isReadOnly = false; }; }; config = { ... }: container.mkContainerConfig cfg { services.grocy = { enable = true; dataDir = "/var/lib/grocy"; hostName = cfg.domain; nginx.enableSSL = false; settings = { calendar = { firstDayOfWeek = 1; showWeekNumber = true; }; culture = "en"; currency = "RUB"; }; }; }; }; }; }