66 lines
1.9 KiB
Nix
66 lines
1.9 KiB
Nix
{ lib }:
|
|
{
|
|
type = lib.types.submodule (
|
|
{ name, ... }:
|
|
{
|
|
options = {
|
|
enable = lib.mkOption {
|
|
type = lib.types.bool;
|
|
default = true;
|
|
description = "Whether this reverse-proxy route entry is active.";
|
|
};
|
|
|
|
host = lib.mkOption {
|
|
type = lib.types.str;
|
|
default = name;
|
|
defaultText = lib.literalMD "the route attribute name";
|
|
description = "Primary hostname served by this reverse-proxy route entry.";
|
|
};
|
|
|
|
aliases = lib.mkOption {
|
|
type = lib.types.listOf lib.types.str;
|
|
default = [ ];
|
|
description = "Additional hostnames served by this reverse-proxy route entry.";
|
|
};
|
|
|
|
path = lib.mkOption {
|
|
type = lib.types.str;
|
|
default = "/";
|
|
description = "URL path prefix proxied by this reverse-proxy route entry.";
|
|
};
|
|
|
|
backend = lib.mkOption {
|
|
type = lib.types.nullOr lib.types.str;
|
|
default = null;
|
|
description = "Full HTTP backend URL that receives proxied traffic.";
|
|
};
|
|
|
|
port = lib.mkOption {
|
|
type = lib.types.nullOr (lib.types.ints.between 1 65535);
|
|
default = null;
|
|
example = 3923;
|
|
description = "Backend TCP port used with the matching address registry entry.";
|
|
};
|
|
|
|
scheme = lib.mkOption {
|
|
type = lib.types.str;
|
|
default = "http";
|
|
description = "Backend URL scheme used with the matching address registry entry.";
|
|
};
|
|
|
|
tls = lib.mkOption {
|
|
type = lib.types.bool;
|
|
default = true;
|
|
description = "Whether to serve this reverse-proxy route entry with ACME-backed TLS.";
|
|
};
|
|
|
|
websockets = lib.mkOption {
|
|
type = lib.types.bool;
|
|
default = false;
|
|
description = "Whether to enable websocket proxy headers for this reverse-proxy route entry.";
|
|
};
|
|
};
|
|
}
|
|
);
|
|
}
|