X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=modules%2Fprivate%2Fenvironment.nix;h=1cc3b6cc315752657b603321337245786c7c0ef1;hb=837839540681845b66aa5ea219dcc75579599a3c;hp=65d9f0a5ab0975737185da7ba96470a9d7080582;hpb=282c67a117b7d349b30a96972b050d630f906dec;p=perso%2FImmae%2FConfig%2FNix.git diff --git a/modules/private/environment.nix b/modules/private/environment.nix index 65d9f0a..1cc3b6c 100644 --- a/modules/private/environment.nix +++ b/modules/private/environment.nix @@ -169,9 +169,10 @@ let type = attrsOf (submodule { options = { ip4 = mkOption { - type = str; + type = listOf str; + default = []; description = '' - ip4 address of the host + ip4 addresses of the host ''; }; ip6 = mkOption { @@ -492,6 +493,15 @@ in }; }; mysql = mkMysqlOptions "Zrepl" {}; + certs = mkOption { + description = "Certificates"; + type = attrsOf (submodule { + options = { + key = mkOption { type = str; description = "Key"; }; + certificate = mkOption { type = str; description = "Certificate"; }; + }; + }); + }; }; }; }; @@ -575,18 +585,8 @@ in }; }; }; - eban = mkOption { - description = "Eban credentials for webhook"; - type = submodule { - options = { - user = mkOption { type = str; description = "User"; }; - password = mkOption { type = str; description = "Password"; }; - }; - }; - }; nrdp_tokens = mkOption { type = listOf str; description = "Tokens allowed to push status update"; }; - slack_url = mkOption { type = str; description = "Slack webhook url to push status update"; }; - slack_channel = mkOption { type = str; description = "Slack channel to push status update"; }; + apprise_urls = mkOption { type = str; description = "Apprise space-separated urls to push status update"; }; netdata_aggregator = mkOption { type = str; description = "Url where netdata information should be sent"; }; netdata_keys = mkOption { type = attrsOf str; description = "netdata host keys"; }; contacts = mkOption { type = attrsOf unspecified; description = "Contact dicts to fill naemon objects"; }; @@ -621,7 +621,10 @@ in description = "FTP configuration"; type = submodule { options = { - ldap = mkLdapOptions "FTP" {}; + ldap = mkLdapOptions "FTP" { + proftpd_filter = mkOption { type = str; description = "Filter for proftpd listing in LDAP"; }; + pure-ftpd_filter = mkOption { type = str; description = "Filter for pure-ftpd listing in LDAP"; }; + }; }; }; }; @@ -801,6 +804,14 @@ in }; }; }; + coturn = mkOption { + description = "Coturn configuration"; + type = submodule { + options = { + auth_access_key = mkOption { type = str; description = "key to access coturn"; }; + }; + }; + }; buildbot = mkOption { description = "Buildbot configuration"; type = submodule { @@ -854,27 +865,18 @@ in Takes pkgs as argument. ''; }; - pythonPackages = mkOption { - type = unspecified; - example = literalExample '' - p: pkgs: [ pkgs.python3Packages.pip ]; - ''; - description = '' - Function. - Builds python packages list to make available to buildbot project. - Takes buildbot python module as first argument and pkgs as second argument in order to augment the python modules list. - ''; - }; pythonPathHome = mkOption { type = bool; description = "Whether to add project’s python home to python path"; }; workerPort = mkOption { type = port; description = "Port for the worker"; }; secrets = mkOption { - type = attrsOf str; - description = "Secrets for the project to dump as files"; + #type = attrsOf (either str (functionTo str)); + type = attrsOf unspecified; + description = "Secrets for the project to dump as files. Might be a function that takes pkgs as argument"; }; environment = mkOption { - type = attrsOf str; + #type = attrsOf (either str (functionTo str)); + type = attrsOf unspecified; description = '' - Environment variables for the project. + Environment variables for the project. Might be a function that takes pkgs as argument. BUILDBOT_ is prefixed to the variable names ''; }; @@ -884,15 +886,6 @@ in Activation script to run during deployment ''; }; - builderPaths = mkOption { - type = attrsOf unspecified; - default = {}; - description = '' - Attrs of functions to make accessible specifically per builder. - Takes pkgs as argument and should return a single path containing binaries. - This path will be accessible as BUILDBOT_PATH_ - ''; - }; webhookTokens = mkOption { type = nullOr (listOf str); default = null; @@ -915,6 +908,8 @@ in default = {}; type = attrsOf (submodule { options = { + assetType = mkOption { type = enum ["tgz" "url" "googleFont"]; default = "url"; description = "Type of asset"; }; + tgzRemoveComponents = mkOption { type = int; default = 0; description = "Remove components when extracting"; }; url = mkOption { type = str; description = "URL to fetch"; }; sha256 = mkOption { type = str; description = "Hash of the url"; }; }; @@ -961,7 +956,6 @@ in adminPassword = mkOption { type = str; description = "Admin password for mypads / admin"; }; session_key = mkOption { type = str; description = "Session key"; }; api_key = mkOption { type = str; description = "API key"; }; - redirects = mkOption { type = str; description = "Redirects for apache"; }; }; }; }; @@ -1172,7 +1166,6 @@ in 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"; }; }; }; @@ -1242,6 +1235,23 @@ in description = "Websites configurations"; type = submodule { options = { + christophe_carpentier = mkOption { + description = "Christophe Carpentier configuration by environment"; + type = submodule { + options = { + agorakit = mkOption { + description = "Agorakit configuration"; + type = submodule { + options = { + mysql = mkMysqlOptions "Agorakit" {}; + smtp = mkSmtpOptions "Agorakit"; + appkey = mkOption { type = str; description = "App key"; }; + }; + }; + }; + }; + }; + }; immae = mkOption { description = "Immae configuration by environment"; type = submodule { @@ -1310,6 +1320,16 @@ in options = { production = chloeSubmodule; integration = chloeSubmodule; + new = mkOption { + description = "environment configuration"; + type = submodule { + options = { + mysql = mkMysqlOptions "ChloeNew" {}; + ldap = mkLdapOptions "ChloeNew" {}; + secret = mkOption { type = str; description = "Symfony App secret"; }; + }; + }; + }; }; }; }; @@ -1376,6 +1396,35 @@ in }; }; }; + nicecoop = mkOption { + description = "Nicecoop configuration"; + type = submodule { + options = { + odoo = { + port = mkOption { description = "Port to listen to"; type = port; }; + longpoll_port = mkOption { description = "Port to listen to"; type = port; }; + postgresql = mkPsqlOptions "Odoo"; + admin_password = mkOption { type = str; description = "Admin password"; }; + }; + gestion-compte = { + smtp = mkSmtpOptions "GestionCompte"; + mysql = mkMysqlOptions "gestion-compte" {}; + secret = mkOption { type = str; description = "Application secret"; }; + adminpassword = mkOption { type = str; description = "Admin password"; }; + }; + gestion-compte-integration = { + smtp = mkSmtpOptions "GestionCompte"; + mysql = mkMysqlOptions "gestion-compte" {}; + secret = mkOption { type = str; description = "Application secret"; }; + adminpassword = mkOption { type = str; description = "Admin password"; }; + }; + copanier = { + smtp = mkSmtpOptions "Copanier"; + staff = mkOption { type = listOf str; description = "List of staff members"; }; + }; + }; + }; + }; emilia = mkOption { description = "Emilia configuration"; type = submodule {