};
};
};
+ smtpOptions = {
+ host = mkOption { description = "Host to access SMTP"; type = str; };
+ port = mkOption { description = "Port to access SMTP"; type = str; };
+ };
+ mkSmtpOptions = name: mkOption {
+ description = "${name} smtp configuration";
+ type = submodule {
+ options = smtpOptions // {
+ email = mkOption { description = "${name} email"; type = str; };
+ password = mkOption { description = "SMTP password of the ${name} user"; type = str; };
+ };
+ };
+ };
hostEnv = submodule {
options = {
fqdn = mkOption {
};
};
};
+ smtp = mkOption {
+ type = submodule { options = smtpOptions; };
+ description = "SMTP configuration";
+ };
ldap = mkOption {
description = ''
LDAP server configuration
type = attrsOf (submodule {
options = {
keep = mkOption { type = int; description = "Number of backups to keep"; };
+ check_command = mkOption { type = str; description = "command to check if backup needs to be done"; default = "backup"; };
login = mkOption { type = str; description = "Login to connect to host"; };
port = mkOption { type = str; default = "22"; description = "Port to connect to host"; };
host = mkOption { type = str; description = "Host to connect to"; };
user_attrs = mkOption { type = str; description = "User attribute mapping in LDAP"; };
iterate_attrs = mkOption { type = str; description = "User attribute mapping for listing in LDAP"; };
iterate_filter = mkOption { type = str; description = "User attribute filter for listing in LDAP"; };
+ postfix_mailbox_filter = mkOption { type = str; description = "Postfix filter to get mailboxes"; };
};
};
};
};
};
};
+ status_engine = mkOption {
+ description = "Status Engine configuration";
+ type = submodule {
+ options = {
+ mysql = mkMysqlOptions "StatusEngine" {};
+ ldap = mkLdapOptions "StatusEngine" {};
+ };
+ };
+ };
task = mkOption {
description = "Taskwarrior configuration";
type = submodule {
type = attrsOf str;
description = "Mapping 'name'.php => script for webhooks";
};
+ csp_reports = mkOption {
+ description = "CSP report configuration";
+ type = submodule {
+ options = {
+ report_uri = mkOption { type = str; description = "URI to report CSP violations to"; };
+ policies = mkOption { type = attrsOf str; description = "CSP policies to apply"; };
+ postgresql = mkPsqlOptions "CSP reports";
+ };
+ };
+ };
+ commento = mkOption {
+ description = "Commento configuration";
+ type = submodule {
+ options = {
+ listenPort = mkOption { type = port; description = "Port to listen to"; };
+ postgresql = mkPsqlOptions "Commento";
+ smtp = mkSmtpOptions "Commento";
+ };
+ };
+ };
ympd = mkOption {
description = "Ympd configuration";
type = submodule {
description = "Websites configurations";
type = submodule {
options = {
+ immae = mkOption {
+ description = "Immae configuration by environment";
+ type = submodule {
+ options = {
+ temp = mkOption {
+ description = "Temp configuration";
+ type = submodule {
+ options = {
+ ldap = mkLdapOptions "Immae temp" {
+ filter = mkOption { type = str; description = "Filter for user access"; };
+ };
+ };
+ };
+ };
+ };
+ };
+ };
isabelle = mkOption {
description = "Isabelle configurations by environment";
type =