prosody service: add types

This commit is contained in:
Satoshi Shishiku 2017-03-01 00:57:02 +00:00 committed by Florian Jacob
parent 36995b788e
commit 1e45a6459e

View File

@ -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";
};