{ lib, namespace, ... }: with lib; { options.${namespace}.services.restic = { enable = mkEnableOption "restic server with enhanced configuration"; port = mkOption { type = types.port; default = 8008; description = "Port for restic server"; }; openFirewall = mkOption { type = types.bool; default = true; description = "Whether to open firewall for restic server"; }; dataDir = mkOption { type = types.str; default = "/var/lib/restic"; description = "Data directory for restic server"; }; listenAddress = mkOption { type = types.str; default = "0.0.0.0"; description = "Address to bind restic server to"; }; prometheus = mkOption { type = types.bool; default = true; description = "Whether to enable prometheus metrics"; }; htpasswdFile = mkOption { type = types.nullOr types.str; default = null; description = "Path to htpasswd file for authentication"; }; extraFlags = mkOption { type = types.listOf types.str; default = [ ]; description = "Extra flags to pass to restic server"; }; }; }