prosody service: add types
This commit is contained in:
parent
36995b788e
commit
1e45a6459e
@ -12,13 +12,13 @@ let
|
||||
|
||||
# TODO: require attribute
|
||||
key = mkOption {
|
||||
type = types.str;
|
||||
type = types.path;
|
||||
description = "Path to the key file";
|
||||
};
|
||||
|
||||
# TODO: require attribute
|
||||
cert = mkOption {
|
||||
type = types.str;
|
||||
type = types.path;
|
||||
description = "Path to the certificate file";
|
||||
};
|
||||
};
|
||||
@ -27,71 +27,85 @@ let
|
||||
moduleOpts = {
|
||||
|
||||
roster = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = "Allow users to have a roster";
|
||||
};
|
||||
|
||||
saslauth = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = "Authentication for clients and servers. Recommended if you want to log in.";
|
||||
};
|
||||
|
||||
tls = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = "Add support for secure TLS on c2s/s2s connections";
|
||||
};
|
||||
|
||||
dialback = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = "s2s dialback support";
|
||||
};
|
||||
|
||||
disco = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = "Service discovery";
|
||||
};
|
||||
|
||||
legacyauth = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = "Legacy authentication. Only used by some old clients and bots";
|
||||
};
|
||||
|
||||
version = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = "Replies to server version requests";
|
||||
};
|
||||
|
||||
uptime = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = "Report how long server has been running";
|
||||
};
|
||||
|
||||
time = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = "Let others know the time here on this server";
|
||||
};
|
||||
|
||||
ping = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = "Replies to XMPP pings with pongs";
|
||||
};
|
||||
|
||||
console = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "telnet to port 5582";
|
||||
};
|
||||
|
||||
bosh = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Enable BOSH clients, aka 'Jabber over HTTP'";
|
||||
};
|
||||
|
||||
httpserver = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Serve static files from a directory over HTTP";
|
||||
};
|
||||
|
||||
websocket = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Enable WebSocket support";
|
||||
};
|
||||
@ -114,18 +128,20 @@ let
|
||||
};
|
||||
|
||||
enabled = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Whether to enable the virtual host";
|
||||
};
|
||||
|
||||
ssl = mkOption {
|
||||
description = "Paths to SSL files";
|
||||
type = types.nullOr (types.submodule sslOpts);
|
||||
default = null;
|
||||
options = [ sslOpts ];
|
||||
description = "Paths to SSL files";
|
||||
};
|
||||
|
||||
extraConfig = mkOption {
|
||||
default = '''';
|
||||
type = types.lines;
|
||||
default = "";
|
||||
description = "Additional virtual host specific configuration";
|
||||
};
|
||||
|
||||
@ -144,11 +160,13 @@ in
|
||||
services.prosody = {
|
||||
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Whether to enable the prosody server";
|
||||
};
|
||||
|
||||
allowRegistration = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Allow account creation";
|
||||
};
|
||||
@ -156,8 +174,9 @@ in
|
||||
modules = moduleOpts;
|
||||
|
||||
extraModules = mkOption {
|
||||
description = "Enable custom modules";
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
description = "Enable custom modules";
|
||||
};
|
||||
|
||||
virtualHosts = mkOption {
|
||||
@ -183,20 +202,21 @@ in
|
||||
};
|
||||
|
||||
ssl = mkOption {
|
||||
description = "Paths to SSL files";
|
||||
type = types.nullOr (types.submodule sslOpts);
|
||||
default = null;
|
||||
options = [ sslOpts ];
|
||||
description = "Paths to SSL files";
|
||||
};
|
||||
|
||||
admins = mkOption {
|
||||
description = "List of administrators of the current host";
|
||||
example = [ "admin1@example.com" "admin2@example.com" ];
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
example = [ "admin1@example.com" "admin2@example.com" ];
|
||||
description = "List of administrators of the current host";
|
||||
};
|
||||
|
||||
extraConfig = mkOption {
|
||||
type = types.lines;
|
||||
default = '''';
|
||||
default = "";
|
||||
description = "Additional prosody configuration";
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user