50 lines
1.2 KiB
Nix
50 lines
1.2 KiB
Nix
{ 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";
|
|
};
|
|
};
|
|
}
|