diff options
author | Naïm Favier <n@monade.li> | 2021-10-03 18:06:03 +0200 |
---|---|---|
committer | Naïm Favier <n@monade.li> | 2021-10-04 12:47:20 +0200 |
commit | 2ddc335e6f32b875e14ad9610101325b306a0add (patch) | |
tree | 2a4591c137cb363a6ec09f529d587a10aa7a0bc7 /nixos/modules/services/web-apps | |
parent | 330b1e08b8df4e1f0100a0a7810ec3157749e5ee (diff) | |
download | nixpkgs-2ddc335e6f32b875e14ad9610101325b306a0add.tar nixpkgs-2ddc335e6f32b875e14ad9610101325b306a0add.tar.gz nixpkgs-2ddc335e6f32b875e14ad9610101325b306a0add.tar.bz2 nixpkgs-2ddc335e6f32b875e14ad9610101325b306a0add.tar.lz nixpkgs-2ddc335e6f32b875e14ad9610101325b306a0add.tar.xz nixpkgs-2ddc335e6f32b875e14ad9610101325b306a0add.tar.zst nixpkgs-2ddc335e6f32b875e14ad9610101325b306a0add.zip |
nixos/doc: clean up defaults and examples
Diffstat (limited to 'nixos/modules/services/web-apps')
42 files changed, 207 insertions, 175 deletions
diff --git a/nixos/modules/services/web-apps/atlassian/confluence.nix b/nixos/modules/services/web-apps/atlassian/confluence.nix index 59185fdbd36..2d809c17ff0 100644 --- a/nixos/modules/services/web-apps/atlassian/confluence.nix +++ b/nixos/modules/services/web-apps/atlassian/confluence.nix @@ -128,14 +128,14 @@ in package = mkOption { type = types.package; default = pkgs.atlassian-confluence; - defaultText = "pkgs.atlassian-confluence"; + defaultText = literalExpression "pkgs.atlassian-confluence"; description = "Atlassian Confluence package to use."; }; jrePackage = mkOption { type = types.package; default = pkgs.oraclejre8; - defaultText = "pkgs.oraclejre8"; + defaultText = literalExpression "pkgs.oraclejre8"; description = "Note that Atlassian only support the Oracle JRE (JRASERVER-46152)."; }; }; diff --git a/nixos/modules/services/web-apps/atlassian/crowd.nix b/nixos/modules/services/web-apps/atlassian/crowd.nix index ceab656b15e..a8b2482d5a9 100644 --- a/nixos/modules/services/web-apps/atlassian/crowd.nix +++ b/nixos/modules/services/web-apps/atlassian/crowd.nix @@ -96,14 +96,14 @@ in package = mkOption { type = types.package; default = pkgs.atlassian-crowd; - defaultText = "pkgs.atlassian-crowd"; + defaultText = literalExpression "pkgs.atlassian-crowd"; description = "Atlassian Crowd package to use."; }; jrePackage = mkOption { type = types.package; default = pkgs.oraclejre8; - defaultText = "pkgs.oraclejre8"; + defaultText = literalExpression "pkgs.oraclejre8"; description = "Note that Atlassian only support the Oracle JRE (JRASERVER-46152)."; }; }; diff --git a/nixos/modules/services/web-apps/atlassian/jira.nix b/nixos/modules/services/web-apps/atlassian/jira.nix index ce04982e8a9..d7a26838d6f 100644 --- a/nixos/modules/services/web-apps/atlassian/jira.nix +++ b/nixos/modules/services/web-apps/atlassian/jira.nix @@ -134,14 +134,14 @@ in package = mkOption { type = types.package; default = pkgs.atlassian-jira; - defaultText = "pkgs.atlassian-jira"; + defaultText = literalExpression "pkgs.atlassian-jira"; description = "Atlassian JIRA package to use."; }; jrePackage = mkOption { type = types.package; default = pkgs.oraclejre8; - defaultText = "pkgs.oraclejre8"; + defaultText = literalExpression "pkgs.oraclejre8"; description = "Note that Atlassian only support the Oracle JRE (JRASERVER-46152)."; }; }; diff --git a/nixos/modules/services/web-apps/bookstack.nix b/nixos/modules/services/web-apps/bookstack.nix index 34a31af9c9d..74eeb2faa4a 100644 --- a/nixos/modules/services/web-apps/bookstack.nix +++ b/nixos/modules/services/web-apps/bookstack.nix @@ -91,7 +91,7 @@ in { user = mkOption { type = types.str; default = user; - defaultText = "\${user}"; + defaultText = literalExpression "user"; description = "Database username."; }; passwordFile = mkOption { @@ -187,14 +187,16 @@ in { (import ../web-servers/nginx/vhost-options.nix { inherit config lib; }) {} ); default = {}; - example = { - serverAliases = [ - "bookstack.\${config.networking.domain}" - ]; - # To enable encryption and let let's encrypt take care of certificate - forceSSL = true; - enableACME = true; - }; + example = literalExpression '' + { + serverAliases = [ + "bookstack.''${config.networking.domain}" + ]; + # To enable encryption and let let's encrypt take care of certificate + forceSSL = true; + enableACME = true; + } + ''; description = '' With this option, you can customize the nginx virtualHost settings. ''; diff --git a/nixos/modules/services/web-apps/cryptpad.nix b/nixos/modules/services/web-apps/cryptpad.nix index 69a89107d31..e6772de768e 100644 --- a/nixos/modules/services/web-apps/cryptpad.nix +++ b/nixos/modules/services/web-apps/cryptpad.nix @@ -11,7 +11,7 @@ in package = mkOption { default = pkgs.cryptpad; - defaultText = "pkgs.cryptpad"; + defaultText = literalExpression "pkgs.cryptpad"; type = types.package; description = " Cryptpad package to use. @@ -21,7 +21,7 @@ in configFile = mkOption { type = types.path; default = "${cfg.package}/lib/node_modules/cryptpad/config/config.example.js"; - defaultText = "\${cfg.package}/lib/node_modules/cryptpad/config/config.example.js"; + defaultText = literalExpression ''"''${package}/lib/node_modules/cryptpad/config/config.example.js"''; description = '' Path to the JavaScript configuration file. diff --git a/nixos/modules/services/web-apps/dex.nix b/nixos/modules/services/web-apps/dex.nix index 2b5999706d7..f08dd65bdb0 100644 --- a/nixos/modules/services/web-apps/dex.nix +++ b/nixos/modules/services/web-apps/dex.nix @@ -23,7 +23,7 @@ in settings = mkOption { type = settingsFormat.type; default = {}; - example = literalExample '' + example = literalExpression '' { # External url issuer = "http://127.0.0.1:5556/dex"; diff --git a/nixos/modules/services/web-apps/discourse.nix b/nixos/modules/services/web-apps/discourse.nix index b28e3cf0deb..c4fb7e2b316 100644 --- a/nixos/modules/services/web-apps/discourse.nix +++ b/nixos/modules/services/web-apps/discourse.nix @@ -33,7 +33,7 @@ in apply = p: p.override { plugins = lib.unique (p.enabledPlugins ++ cfg.plugins); }; - defaultText = "pkgs.discourse"; + defaultText = lib.literalExpression "pkgs.discourse"; description = '' The discourse package to use. ''; @@ -45,7 +45,7 @@ in config.networking.fqdn else config.networking.hostName; - defaultText = "config.networking.fqdn"; + defaultText = lib.literalExpression "config.networking.fqdn"; example = "discourse.example.com"; description = '' The hostname to serve Discourse on. @@ -99,7 +99,10 @@ in enableACME = lib.mkOption { type = lib.types.bool; default = cfg.sslCertificate == null && cfg.sslCertificateKey == null; - defaultText = "true, unless services.discourse.sslCertificate and services.discourse.sslCertificateKey are set."; + defaultText = lib.literalDocBook '' + <literal>true</literal>, unless <option>services.discourse.sslCertificate</option> + and <option>services.discourse.sslCertificateKey</option> are set. + ''; description = '' Whether an ACME certificate should be used to secure connections to the server. @@ -109,7 +112,7 @@ in backendSettings = lib.mkOption { type = with lib.types; attrsOf (nullOr (oneOf [ str int bool float ])); default = {}; - example = lib.literalExample '' + example = lib.literalExpression '' { max_reqs_per_ip_per_minute = 300; max_reqs_per_ip_per_10_seconds = 60; @@ -134,7 +137,7 @@ in siteSettings = lib.mkOption { type = json.type; default = {}; - example = lib.literalExample '' + example = lib.literalExpression '' { required = { title = "My Cats"; @@ -334,10 +337,8 @@ in notificationEmailAddress = lib.mkOption { type = lib.types.str; default = "${if cfg.mail.incoming.enable then "notifications" else "noreply"}@${cfg.hostname}"; - defaultText = '' - "notifications@`config.services.discourse.hostname`" if - config.services.discourse.mail.incoming.enable is "true", - otherwise "noreply`config.services.discourse.hostname`" + defaultText = lib.literalExpression '' + "''${if config.services.discourse.mail.incoming.enable then "notifications" else "noreply"}@''${config.services.discourse.hostname}" ''; description = '' The <literal>from:</literal> email address used when @@ -448,7 +449,7 @@ in replyEmailAddress = lib.mkOption { type = lib.types.str; default = "%{reply_key}@${cfg.hostname}"; - defaultText = "%{reply_key}@`config.services.discourse.hostname`"; + defaultText = lib.literalExpression ''"%{reply_key}@''${config.services.discourse.hostname}"''; description = '' Template for reply by email incoming email address, for example: %{reply_key}@reply.example.com or @@ -459,7 +460,7 @@ in mailReceiverPackage = lib.mkOption { type = lib.types.package; default = pkgs.discourse-mail-receiver; - defaultText = "pkgs.discourse-mail-receiver"; + defaultText = lib.literalExpression "pkgs.discourse-mail-receiver"; description = '' The discourse-mail-receiver package to use. ''; @@ -484,7 +485,7 @@ in plugins = lib.mkOption { type = lib.types.listOf lib.types.package; default = []; - example = lib.literalExample '' + example = lib.literalExpression '' with config.services.discourse.package.plugins; [ discourse-canned-replies discourse-github diff --git a/nixos/modules/services/web-apps/documize.nix b/nixos/modules/services/web-apps/documize.nix index a5f48e744fd..7f2ed82ee33 100644 --- a/nixos/modules/services/web-apps/documize.nix +++ b/nixos/modules/services/web-apps/documize.nix @@ -26,6 +26,7 @@ in { package = mkOption { type = types.package; default = pkgs.documize-community; + defaultText = literalExpression "pkgs.documize-community"; description = '' Which package to use for documize. ''; diff --git a/nixos/modules/services/web-apps/dokuwiki.nix b/nixos/modules/services/web-apps/dokuwiki.nix index 964fef23add..bc5b1a8be54 100644 --- a/nixos/modules/services/web-apps/dokuwiki.nix +++ b/nixos/modules/services/web-apps/dokuwiki.nix @@ -2,7 +2,7 @@ let inherit (lib) mkDefault mkEnableOption mkForce mkIf mkMerge mkOption types maintainers recursiveUpdate; - inherit (lib) any attrValues concatMapStrings concatMapStringsSep flatten literalExample; + inherit (lib) any attrValues concatMapStrings concatMapStringsSep flatten literalExpression; inherit (lib) filterAttrs mapAttrs mapAttrs' mapAttrsToList nameValuePair optional optionalAttrs optionalString; cfg = migrateOldAttrs config.services.dokuwiki; @@ -69,6 +69,7 @@ let package = mkOption { type = types.package; default = pkgs.dokuwiki; + defaultText = literalExpression "pkgs.dokuwiki"; description = "Which DokuWiki package to use."; }; @@ -167,24 +168,24 @@ let List of path(s) to respective plugin(s) which are copied from the 'plugin' directory. <note><para>These plugins need to be packaged before use, see example.</para></note> ''; - example = '' - # Let's package the icalevents plugin - plugin-icalevents = pkgs.stdenv.mkDerivation { - name = "icalevents"; - # Download the plugin from the dokuwiki site - src = pkgs.fetchurl { - url = "https://github.com/real-or-random/dokuwiki-plugin-icalevents/releases/download/2017-06-16/dokuwiki-plugin-icalevents-2017-06-16.zip"; - sha256 = "e40ed7dd6bbe7fe3363bbbecb4de481d5e42385b5a0f62f6a6ce6bf3a1f9dfa8"; + example = literalExpression '' + let + # Let's package the icalevents plugin + plugin-icalevents = pkgs.stdenv.mkDerivation { + name = "icalevents"; + # Download the plugin from the dokuwiki site + src = pkgs.fetchurl { + url = "https://github.com/real-or-random/dokuwiki-plugin-icalevents/releases/download/2017-06-16/dokuwiki-plugin-icalevents-2017-06-16.zip"; + sha256 = "e40ed7dd6bbe7fe3363bbbecb4de481d5e42385b5a0f62f6a6ce6bf3a1f9dfa8"; + }; + sourceRoot = "."; + # We need unzip to build this package + buildInputs = [ pkgs.unzip ]; + # Installing simply means copying all files to the output directory + installPhase = "mkdir -p $out; cp -R * $out/"; }; - sourceRoot = "."; - # We need unzip to build this package - buildInputs = [ pkgs.unzip ]; - # Installing simply means copying all files to the output directory - installPhase = "mkdir -p $out; cp -R * $out/"; - }; - # And then pass this theme to the plugin list like this: - plugins = [ plugin-icalevents ]; + in [ plugin-icalevents ] ''; }; @@ -195,23 +196,23 @@ let List of path(s) to respective template(s) which are copied from the 'tpl' directory. <note><para>These templates need to be packaged before use, see example.</para></note> ''; - example = '' - # Let's package the bootstrap3 theme - template-bootstrap3 = pkgs.stdenv.mkDerivation { - name = "bootstrap3"; - # Download the theme from the dokuwiki site - src = pkgs.fetchurl { - url = "https://github.com/giterlizzi/dokuwiki-template-bootstrap3/archive/v2019-05-22.zip"; - sha256 = "4de5ff31d54dd61bbccaf092c9e74c1af3a4c53e07aa59f60457a8f00cfb23a6"; + example = literalExpression '' + let + # Let's package the bootstrap3 theme + template-bootstrap3 = pkgs.stdenv.mkDerivation { + name = "bootstrap3"; + # Download the theme from the dokuwiki site + src = pkgs.fetchurl { + url = "https://github.com/giterlizzi/dokuwiki-template-bootstrap3/archive/v2019-05-22.zip"; + sha256 = "4de5ff31d54dd61bbccaf092c9e74c1af3a4c53e07aa59f60457a8f00cfb23a6"; + }; + # We need unzip to build this package + buildInputs = [ pkgs.unzip ]; + # Installing simply means copying all files to the output directory + installPhase = "mkdir -p $out; cp -R * $out/"; }; - # We need unzip to build this package - buildInputs = [ pkgs.unzip ]; - # Installing simply means copying all files to the output directory - installPhase = "mkdir -p $out; cp -R * $out/"; - }; - # And then pass this theme to the template list like this: - templates = [ template-bootstrap3 ]; + in [ template-bootstrap3 ] ''; }; diff --git a/nixos/modules/services/web-apps/engelsystem.nix b/nixos/modules/services/web-apps/engelsystem.nix index b87fecae65f..06c3c6dfc3d 100644 --- a/nixos/modules/services/web-apps/engelsystem.nix +++ b/nixos/modules/services/web-apps/engelsystem.nix @@ -1,7 +1,7 @@ { config, lib, pkgs, utils, ... }: let - inherit (lib) mkDefault mkEnableOption mkIf mkOption types literalExample; + inherit (lib) mkDefault mkEnableOption mkIf mkOption types literalExpression; cfg = config.services.engelsystem; in { options = { @@ -24,9 +24,9 @@ in { package = mkOption { type = types.package; - example = literalExample "pkgs.engelsystem"; description = "Engelsystem package used for the service."; default = pkgs.engelsystem; + defaultText = literalExpression "pkgs.engelsystem"; }; createDatabase = mkOption { diff --git a/nixos/modules/services/web-apps/fluidd.nix b/nixos/modules/services/web-apps/fluidd.nix index c632b8ff719..6ac1acc9d03 100644 --- a/nixos/modules/services/web-apps/fluidd.nix +++ b/nixos/modules/services/web-apps/fluidd.nix @@ -12,7 +12,7 @@ in type = types.package; description = "Fluidd package to be used in the module"; default = pkgs.fluidd; - defaultText = "pkgs.fluidd"; + defaultText = literalExpression "pkgs.fluidd"; }; hostName = mkOption { @@ -25,9 +25,11 @@ in type = types.submodule (import ../web-servers/nginx/vhost-options.nix { inherit config lib; }); default = { }; - example = { - serverAliases = [ "fluidd.\${config.networking.domain}" ]; - }; + example = literalExpression '' + { + serverAliases = [ "fluidd.''${config.networking.domain}" ]; + } + ''; description = "Extra configuration for the nginx virtual host of fluidd."; }; }; diff --git a/nixos/modules/services/web-apps/galene.nix b/nixos/modules/services/web-apps/galene.nix index dd63857a55c..db9dfeb4749 100644 --- a/nixos/modules/services/web-apps/galene.nix +++ b/nixos/modules/services/web-apps/galene.nix @@ -80,6 +80,7 @@ in staticDir = mkOption { type = types.str; default = "${cfg.package.static}/static"; + defaultText = literalExpression ''"''${package.static}/static"''; example = "/var/lib/galene/static"; description = "Web server directory."; }; @@ -107,7 +108,7 @@ in package = mkOption { default = pkgs.galene; - defaultText = "pkgs.galene"; + defaultText = literalExpression "pkgs.galene"; type = types.package; description = '' Package for running Galene. diff --git a/nixos/modules/services/web-apps/gerrit.nix b/nixos/modules/services/web-apps/gerrit.nix index 864587aea56..9ee9dbf1aa4 100644 --- a/nixos/modules/services/web-apps/gerrit.nix +++ b/nixos/modules/services/web-apps/gerrit.nix @@ -64,13 +64,14 @@ in package = mkOption { type = types.package; default = pkgs.gerrit; + defaultText = literalExpression "pkgs.gerrit"; description = "Gerrit package to use"; }; jvmPackage = mkOption { type = types.package; default = pkgs.jre_headless; - defaultText = "pkgs.jre_headless"; + defaultText = literalExpression "pkgs.jre_headless"; description = "Java Runtime Environment package to use"; }; diff --git a/nixos/modules/services/web-apps/hedgedoc.nix b/nixos/modules/services/web-apps/hedgedoc.nix index d940f3d3dae..b434f16e9bd 100644 --- a/nixos/modules/services/web-apps/hedgedoc.nix +++ b/nixos/modules/services/web-apps/hedgedoc.nix @@ -73,7 +73,7 @@ in port = mkOption { type = types.int; default = 3000; - example = "80"; + example = 80; description = '' Port to listen on. ''; @@ -135,7 +135,7 @@ in csp = mkOption { type = types.nullOr types.attrs; default = null; - example = literalExample '' + example = literalExpression '' { enable = true; directives = { @@ -222,7 +222,7 @@ in db = mkOption { type = types.attrs; default = {}; - example = literalExample '' + example = literalExpression '' { dialect = "sqlite"; storage = "/var/lib/${name}/db.${name}.sqlite"; @@ -313,7 +313,7 @@ in errorPath = mkOption { type = types.nullOr types.str; default = null; - defaultText = "./public/views/error.ejs"; + defaultText = literalExpression "./public/views/error.ejs"; description = '' Path to the error template file. (Non-canonical paths are relative to HedgeDoc's base directory) @@ -322,7 +322,7 @@ in prettyPath = mkOption { type = types.nullOr types.str; default = null; - defaultText = "./public/views/pretty.ejs"; + defaultText = literalExpression "./public/views/pretty.ejs"; description = '' Path to the pretty template file. (Non-canonical paths are relative to HedgeDoc's base directory) @@ -331,7 +331,7 @@ in slidePath = mkOption { type = types.nullOr types.str; default = null; - defaultText = "./public/views/slide.hbs"; + defaultText = literalExpression "./public/views/slide.hbs"; description = '' Path to the slide template file. (Non-canonical paths are relative to HedgeDoc's base directory) @@ -340,7 +340,7 @@ in uploadsPath = mkOption { type = types.str; default = "${cfg.workDir}/uploads"; - defaultText = "/var/lib/${name}/uploads"; + defaultText = literalExpression "/var/lib/${name}/uploads"; description = '' Path under which uploaded files are saved. ''; @@ -925,6 +925,7 @@ in package = mkOption { type = types.package; default = pkgs.hedgedoc; + defaultText = literalExpression "pkgs.hedgedoc"; description = '' Package that provides HedgeDoc. ''; diff --git a/nixos/modules/services/web-apps/hledger-web.nix b/nixos/modules/services/web-apps/hledger-web.nix index a69767194c3..9c66589dffd 100644 --- a/nixos/modules/services/web-apps/hledger-web.nix +++ b/nixos/modules/services/web-apps/hledger-web.nix @@ -20,7 +20,7 @@ in { port = mkOption { type = types.port; default = 5000; - example = "80"; + example = 80; description = '' Port to listen on. ''; diff --git a/nixos/modules/services/web-apps/icingaweb2/icingaweb2.nix b/nixos/modules/services/web-apps/icingaweb2/icingaweb2.nix index f8f0854f1bc..b9761061aaa 100644 --- a/nixos/modules/services/web-apps/icingaweb2/icingaweb2.nix +++ b/nixos/modules/services/web-apps/icingaweb2/icingaweb2.nix @@ -59,7 +59,7 @@ in { modulePackages = mkOption { type = attrsOf package; default = {}; - example = literalExample '' + example = literalExpression '' { "snow" = icingaweb2Modules.theme-snow; } diff --git a/nixos/modules/services/web-apps/isso.nix b/nixos/modules/services/web-apps/isso.nix index d05a99a3eed..4c01781a6a2 100644 --- a/nixos/modules/services/web-apps/isso.nix +++ b/nixos/modules/services/web-apps/isso.nix @@ -1,7 +1,7 @@ { config, lib, pkgs, ... }: let - inherit (lib) mkEnableOption mkIf mkOption types literalExample; + inherit (lib) mkEnableOption mkIf mkOption types literalExpression; cfg = config.services.isso; @@ -31,7 +31,7 @@ in { freeformType = settingsFormat.type; }; - example = literalExample '' + example = literalExpression '' { general = { host = "http://localhost"; diff --git a/nixos/modules/services/web-apps/jirafeau.nix b/nixos/modules/services/web-apps/jirafeau.nix index 4f181257ef7..83cf224f7d2 100644 --- a/nixos/modules/services/web-apps/jirafeau.nix +++ b/nixos/modules/services/web-apps/jirafeau.nix @@ -84,18 +84,19 @@ in type = types.submodule (import ../web-servers/nginx/vhost-options.nix { inherit config lib; }); default = {}; - example = { - serverAliases = [ "wiki.\${config.networking.domain}" ]; - }; + example = literalExpression '' + { + serverAliases = [ "wiki.''${config.networking.domain}" ]; + } + ''; description = "Extra configuration for the nginx virtual host of Jirafeau."; }; package = mkOption { type = types.package; default = pkgs.jirafeau; - defaultText = "pkgs.jirafeau"; + defaultText = literalExpression "pkgs.jirafeau"; description = "Jirafeau package to use"; - example = "pkgs.jirafeau"; }; poolConfig = mkOption { diff --git a/nixos/modules/services/web-apps/jitsi-meet.nix b/nixos/modules/services/web-apps/jitsi-meet.nix index 997604754e4..a32e1e90119 100644 --- a/nixos/modules/services/web-apps/jitsi-meet.nix +++ b/nixos/modules/services/web-apps/jitsi-meet.nix @@ -54,7 +54,7 @@ in config = mkOption { type = attrs; default = { }; - example = literalExample '' + example = literalExpression '' { enableWelcomePage = false; defaultLang = "fi"; @@ -81,7 +81,7 @@ in interfaceConfig = mkOption { type = attrs; default = { }; - example = literalExample '' + example = literalExpression '' { SHOW_JITSI_WATERMARK = false; SHOW_WATERMARK_FOR_GUESTS = false; diff --git a/nixos/modules/services/web-apps/keycloak.nix b/nixos/modules/services/web-apps/keycloak.nix index b1bea222c7f..df8c7114102 100644 --- a/nixos/modules/services/web-apps/keycloak.nix +++ b/nixos/modules/services/web-apps/keycloak.nix @@ -210,6 +210,7 @@ in package = lib.mkOption { type = lib.types.package; default = pkgs.keycloak; + defaultText = lib.literalExpression "pkgs.keycloak"; description = '' Keycloak package to use. ''; @@ -228,7 +229,7 @@ in extraConfig = lib.mkOption { type = lib.types.attrs; default = { }; - example = lib.literalExample '' + example = lib.literalExpression '' { "subsystem=keycloak-server" = { "spi=hostname" = { diff --git a/nixos/modules/services/web-apps/limesurvey.nix b/nixos/modules/services/web-apps/limesurvey.nix index 56265e80957..5ccd742a303 100644 --- a/nixos/modules/services/web-apps/limesurvey.nix +++ b/nixos/modules/services/web-apps/limesurvey.nix @@ -3,7 +3,7 @@ let inherit (lib) mkDefault mkEnableOption mkForce mkIf mkMerge mkOption; - inherit (lib) literalExample mapAttrs optional optionalString types; + inherit (lib) literalExpression mapAttrs optional optionalString types; cfg = config.services.limesurvey; fpm = config.services.phpfpm.pools.limesurvey; @@ -51,7 +51,7 @@ in port = mkOption { type = types.int; default = if cfg.database.type == "pgsql" then 5442 else 3306; - defaultText = "3306"; + defaultText = literalExpression "3306"; description = "Database host port."; }; @@ -84,14 +84,14 @@ in else if pgsqlLocal then "/run/postgresql" else null ; - defaultText = "/run/mysqld/mysqld.sock"; + defaultText = literalExpression "/run/mysqld/mysqld.sock"; description = "Path to the unix socket file to use for authentication."; }; createLocally = mkOption { type = types.bool; default = cfg.database.type == "mysql"; - defaultText = "true"; + defaultText = literalExpression "true"; description = '' Create the database and database user locally. This currently only applies if database type "mysql" is selected. @@ -101,7 +101,7 @@ in virtualHost = mkOption { type = types.submodule (import ../web-servers/apache-httpd/vhost-options.nix); - example = literalExample '' + example = literalExpression '' { hostName = "survey.example.org"; adminAddr = "webmaster@example.org"; diff --git a/nixos/modules/services/web-apps/mastodon.nix b/nixos/modules/services/web-apps/mastodon.nix index 5bda7d5a5dd..d3790d8b176 100644 --- a/nixos/modules/services/web-apps/mastodon.nix +++ b/nixos/modules/services/web-apps/mastodon.nix @@ -399,7 +399,7 @@ in { package = lib.mkOption { type = lib.types.package; default = pkgs.mastodon; - defaultText = "pkgs.mastodon"; + defaultText = lib.literalExpression "pkgs.mastodon"; description = "Mastodon package to use."; }; diff --git a/nixos/modules/services/web-apps/matomo.nix b/nixos/modules/services/web-apps/matomo.nix index 79a0354e22b..b0d281cfb6e 100644 --- a/nixos/modules/services/web-apps/matomo.nix +++ b/nixos/modules/services/web-apps/matomo.nix @@ -48,7 +48,7 @@ in { as they don't get backported if they are not security-relevant. ''; default = pkgs.matomo; - defaultText = "pkgs.matomo"; + defaultText = literalExpression "pkgs.matomo"; }; webServerUser = mkOption { @@ -100,13 +100,15 @@ in { ) ); default = null; - example = { - serverAliases = [ - "matomo.\${config.networking.domain}" - "stats.\${config.networking.domain}" - ]; - enableACME = false; - }; + example = literalExpression '' + { + serverAliases = [ + "matomo.''${config.networking.domain}" + "stats.''${config.networking.domain}" + ]; + enableACME = false; + } + ''; description = '' With this option, you can customize an nginx virtualHost which already has sensible defaults for Matomo. Either this option or the webServerUser option is mandatory. diff --git a/nixos/modules/services/web-apps/mediawiki.nix b/nixos/modules/services/web-apps/mediawiki.nix index 1db1652022a..977b6f60b23 100644 --- a/nixos/modules/services/web-apps/mediawiki.nix +++ b/nixos/modules/services/web-apps/mediawiki.nix @@ -3,7 +3,7 @@ let inherit (lib) mkDefault mkEnableOption mkForce mkIf mkMerge mkOption; - inherit (lib) concatStringsSep literalExample mapAttrsToList optional optionals optionalString types; + inherit (lib) concatStringsSep literalExpression mapAttrsToList optional optionals optionalString types; cfg = config.services.mediawiki; fpm = config.services.phpfpm.pools.mediawiki; @@ -176,6 +176,7 @@ in package = mkOption { type = types.package; default = pkgs.mediawiki; + defaultText = literalExpression "pkgs.mediawiki"; description = "Which MediaWiki package to use."; }; @@ -219,7 +220,7 @@ in Use <literal>null</literal> instead of path to enable extensions that are part of MediaWiki. ''; - example = literalExample '' + example = literalExpression '' { Matomo = pkgs.fetchzip { url = "https://github.com/DaSchTour/matomo-mediawiki-extension/archive/v4.0.1.tar.gz"; @@ -286,14 +287,14 @@ in socket = mkOption { type = types.nullOr types.path; default = if cfg.database.createLocally then "/run/mysqld/mysqld.sock" else null; - defaultText = "/run/mysqld/mysqld.sock"; + defaultText = literalExpression "/run/mysqld/mysqld.sock"; description = "Path to the unix socket file to use for authentication."; }; createLocally = mkOption { type = types.bool; default = cfg.database.type == "mysql"; - defaultText = "true"; + defaultText = literalExpression "true"; description = '' Create the database and database user locally. This currently only applies if database type "mysql" is selected. @@ -303,7 +304,7 @@ in virtualHost = mkOption { type = types.submodule (import ../web-servers/apache-httpd/vhost-options.nix); - example = literalExample '' + example = literalExpression '' { hostName = "mediawiki.example.org"; adminAddr = "webmaster@example.org"; diff --git a/nixos/modules/services/web-apps/miniflux.nix b/nixos/modules/services/web-apps/miniflux.nix index 1bbadafa207..026bde2a92d 100644 --- a/nixos/modules/services/web-apps/miniflux.nix +++ b/nixos/modules/services/web-apps/miniflux.nix @@ -35,7 +35,7 @@ in config = mkOption { type = types.attrsOf types.str; - example = literalExample '' + example = literalExpression '' { CLEANUP_FREQUENCY = "48"; LISTEN_ADDR = "localhost:8080"; diff --git a/nixos/modules/services/web-apps/moinmoin.nix b/nixos/modules/services/web-apps/moinmoin.nix index 7a54255a46e..efb73124a23 100644 --- a/nixos/modules/services/web-apps/moinmoin.nix +++ b/nixos/modules/services/web-apps/moinmoin.nix @@ -151,7 +151,7 @@ in webHost = mkDefault name; }; })); - example = literalExample '' + example = literalExpression '' { "mywiki" = { siteName = "Example Wiki"; diff --git a/nixos/modules/services/web-apps/moodle.nix b/nixos/modules/services/web-apps/moodle.nix index c854e084e14..6f5cfa2e348 100644 --- a/nixos/modules/services/web-apps/moodle.nix +++ b/nixos/modules/services/web-apps/moodle.nix @@ -2,7 +2,7 @@ let inherit (lib) mkDefault mkEnableOption mkForce mkIf mkMerge mkOption types; - inherit (lib) concatStringsSep literalExample mapAttrsToList optional optionalString; + inherit (lib) concatStringsSep literalExpression mapAttrsToList optional optionalString; cfg = config.services.moodle; fpm = config.services.phpfpm.pools.moodle; @@ -67,7 +67,7 @@ in package = mkOption { type = types.package; default = pkgs.moodle; - defaultText = "pkgs.moodle"; + defaultText = literalExpression "pkgs.moodle"; description = "The Moodle package to use."; }; @@ -100,7 +100,7 @@ in mysql = 3306; pgsql = 5432; }.${cfg.database.type}; - defaultText = "3306"; + defaultText = literalExpression "3306"; }; name = mkOption { @@ -131,7 +131,7 @@ in if mysqlLocal then "/run/mysqld/mysqld.sock" else if pgsqlLocal then "/run/postgresql" else null; - defaultText = "/run/mysqld/mysqld.sock"; + defaultText = literalExpression "/run/mysqld/mysqld.sock"; description = "Path to the unix socket file to use for authentication."; }; @@ -144,7 +144,7 @@ in virtualHost = mkOption { type = types.submodule (import ../web-servers/apache-httpd/vhost-options.nix); - example = literalExample '' + example = literalExpression '' { hostName = "moodle.example.org"; adminAddr = "webmaster@example.org"; diff --git a/nixos/modules/services/web-apps/nextcloud.nix b/nixos/modules/services/web-apps/nextcloud.nix index 3c952fd883a..8d3741cf89d 100644 --- a/nixos/modules/services/web-apps/nextcloud.nix +++ b/nixos/modules/services/web-apps/nextcloud.nix @@ -134,14 +134,14 @@ in { phpExtraExtensions = mkOption { type = with types; functionTo (listOf package); default = all: []; - defaultText = "all: []"; + defaultText = literalExpression "all: []"; description = '' Additional PHP extensions to use for nextcloud. By default, only extensions necessary for a vanilla nextcloud installation are enabled, but you may choose from the list of available extensions and add further ones. This is sometimes necessary to be able to install a certain nextcloud app that has additional requirements. ''; - example = literalExample '' + example = literalExpression '' all: [ all.pdlib all.bz2 ] ''; }; diff --git a/nixos/modules/services/web-apps/nexus.nix b/nixos/modules/services/web-apps/nexus.nix index d4d507362c9..dc50a06705f 100644 --- a/nixos/modules/services/web-apps/nexus.nix +++ b/nixos/modules/services/web-apps/nexus.nix @@ -16,6 +16,7 @@ in package = mkOption { type = types.package; default = pkgs.nexus; + defaultText = literalExpression "pkgs.nexus"; description = "Package which runs Nexus3"; }; @@ -70,6 +71,27 @@ in -Dkaraf.startLocalConsole=false -Djava.endorsed.dirs=${cfg.package}/lib/endorsed ''; + defaultText = literalExpression '' + ''' + -Xms1200M + -Xmx1200M + -XX:MaxDirectMemorySize=2G + -XX:+UnlockDiagnosticVMOptions + -XX:+UnsyncloadClass + -XX:+LogVMOutput + -XX:LogFile=''${home}/nexus3/log/jvm.log + -XX:-OmitStackTraceInFastThrow + -Djava.net.preferIPv4Stack=true + -Dkaraf.home=''${package} + -Dkaraf.base=''${package} + -Dkaraf.etc=''${package}/etc/karaf + -Djava.util.logging.config.file=''${package}/etc/karaf/java.util.logging.properties + -Dkaraf.data=''${home}/nexus3 + -Djava.io.tmpdir=''${home}/nexus3/tmp + -Dkaraf.startLocalConsole=false + -Djava.endorsed.dirs=''${package}/lib/endorsed + ''' + ''; description = '' Options for the JVM written to `nexus.jvmopts`. diff --git a/nixos/modules/services/web-apps/node-red.nix b/nixos/modules/services/web-apps/node-red.nix index 400790576d6..4512907f027 100644 --- a/nixos/modules/services/web-apps/node-red.nix +++ b/nixos/modules/services/web-apps/node-red.nix @@ -21,7 +21,7 @@ in package = mkOption { default = pkgs.nodePackages.node-red; - defaultText = "pkgs.nodePackages.node-red"; + defaultText = literalExpression "pkgs.nodePackages.node-red"; type = types.package; description = "Node-RED package to use."; }; @@ -46,7 +46,7 @@ in configFile = mkOption { type = types.path; default = "${cfg.package}/lib/node_modules/node-red/settings.js"; - defaultText = "\${cfg.package}/lib/node_modules/node-red/settings.js"; + defaultText = literalExpression ''"''${package}/lib/node_modules/node-red/settings.js"''; description = '' Path to the JavaScript configuration file. See <link @@ -102,7 +102,7 @@ in type = types.attrs; default = {}; description = "List of settings.js overrides to pass via -D to Node-RED."; - example = literalExample '' + example = literalExpression '' { "logging.console.level" = "trace"; } diff --git a/nixos/modules/services/web-apps/pgpkeyserver-lite.nix b/nixos/modules/services/web-apps/pgpkeyserver-lite.nix index 838fd19ad29..5642627d397 100644 --- a/nixos/modules/services/web-apps/pgpkeyserver-lite.nix +++ b/nixos/modules/services/web-apps/pgpkeyserver-lite.nix @@ -21,7 +21,7 @@ in package = mkOption { default = pkgs.pgpkeyserver-lite; - defaultText = "pkgs.pgpkeyserver-lite"; + defaultText = literalExpression "pkgs.pgpkeyserver-lite"; type = types.package; description = " Which webgui derivation to use. diff --git a/nixos/modules/services/web-apps/plantuml-server.nix b/nixos/modules/services/web-apps/plantuml-server.nix index a39f594c274..5ac3bc5226b 100644 --- a/nixos/modules/services/web-apps/plantuml-server.nix +++ b/nixos/modules/services/web-apps/plantuml-server.nix @@ -16,6 +16,7 @@ in package = mkOption { type = types.package; default = pkgs.plantuml-server; + defaultText = literalExpression "pkgs.plantuml-server"; description = "PlantUML server package to use"; }; @@ -58,6 +59,7 @@ in graphvizPackage = mkOption { type = types.package; default = pkgs.graphviz_2_32; + defaultText = literalExpression "pkgs.graphviz_2_32"; description = "Package containing the dot executable."; }; diff --git a/nixos/modules/services/web-apps/restya-board.nix b/nixos/modules/services/web-apps/restya-board.nix index 9d0a3f65253..fd97ab76a5f 100644 --- a/nixos/modules/services/web-apps/restya-board.nix +++ b/nixos/modules/services/web-apps/restya-board.nix @@ -30,7 +30,6 @@ in dataDir = mkOption { type = types.path; default = "/var/lib/restya-board"; - example = "/var/lib/restya-board"; description = '' Data of the application. ''; @@ -39,7 +38,6 @@ in user = mkOption { type = types.str; default = "restya-board"; - example = "restya-board"; description = '' User account under which the web-application runs. ''; @@ -48,7 +46,6 @@ in group = mkOption { type = types.str; default = "nginx"; - example = "nginx"; description = '' Group account under which the web-application runs. ''; diff --git a/nixos/modules/services/web-apps/rss-bridge.nix b/nixos/modules/services/web-apps/rss-bridge.nix index f1d5b7660f3..456ca00416f 100644 --- a/nixos/modules/services/web-apps/rss-bridge.nix +++ b/nixos/modules/services/web-apps/rss-bridge.nix @@ -16,7 +16,6 @@ in user = mkOption { type = types.str; default = "nginx"; - example = "nginx"; description = '' User account under which both the service and the web-application run. ''; @@ -25,7 +24,6 @@ in group = mkOption { type = types.str; default = "nginx"; - example = "nginx"; description = '' Group under which the web-application run. ''; @@ -61,7 +59,7 @@ in whitelist = mkOption { type = types.listOf types.str; default = []; - example = options.literalExample '' + example = options.literalExpression '' [ "Facebook" "Instagram" diff --git a/nixos/modules/services/web-apps/selfoss.nix b/nixos/modules/services/web-apps/selfoss.nix index d5a660ebf28..899976ac696 100644 --- a/nixos/modules/services/web-apps/selfoss.nix +++ b/nixos/modules/services/web-apps/selfoss.nix @@ -35,7 +35,6 @@ in user = mkOption { type = types.str; default = "nginx"; - example = "nginx"; description = '' User account under which both the service and the web-application run. ''; diff --git a/nixos/modules/services/web-apps/shiori.nix b/nixos/modules/services/web-apps/shiori.nix index a15bb9744a9..bb2fc684e83 100644 --- a/nixos/modules/services/web-apps/shiori.nix +++ b/nixos/modules/services/web-apps/shiori.nix @@ -11,7 +11,7 @@ in { package = mkOption { type = types.package; default = pkgs.shiori; - defaultText = "pkgs.shiori"; + defaultText = literalExpression "pkgs.shiori"; description = "The Shiori package to use."; }; diff --git a/nixos/modules/services/web-apps/tt-rss.nix b/nixos/modules/services/web-apps/tt-rss.nix index bc18c824f39..08356cee1df 100644 --- a/nixos/modules/services/web-apps/tt-rss.nix +++ b/nixos/modules/services/web-apps/tt-rss.nix @@ -126,7 +126,6 @@ let root = mkOption { type = types.path; default = "/var/lib/tt-rss"; - example = "/var/lib/tt-rss"; description = '' Root of the application. ''; @@ -135,7 +134,6 @@ let user = mkOption { type = types.str; default = "tt_rss"; - example = "tt_rss"; description = '' User account under which both the update daemon and the web-application run. ''; diff --git a/nixos/modules/services/web-apps/vikunja.nix b/nixos/modules/services/web-apps/vikunja.nix index b0b6eb6df17..7575e96ca81 100644 --- a/nixos/modules/services/web-apps/vikunja.nix +++ b/nixos/modules/services/web-apps/vikunja.nix @@ -14,13 +14,13 @@ in { package-api = mkOption { default = pkgs.vikunja-api; type = types.package; - defaultText = "pkgs.vikunja-api"; + defaultText = literalExpression "pkgs.vikunja-api"; description = "vikunja-api derivation to use."; }; package-frontend = mkOption { default = pkgs.vikunja-frontend; type = types.package; - defaultText = "pkgs.vikunja-frontend"; + defaultText = literalExpression "pkgs.vikunja-frontend"; description = "vikunja-frontend derivation to use."; }; environmentFiles = mkOption { @@ -34,7 +34,7 @@ in { setupNginx = mkOption { type = types.bool; default = config.services.nginx.enable; - defaultText = "config.services.nginx.enable"; + defaultText = literalExpression "config.services.nginx.enable"; description = '' Whether to setup NGINX. Further nginx configuration can be done by changing diff --git a/nixos/modules/services/web-apps/whitebophir.nix b/nixos/modules/services/web-apps/whitebophir.nix index b265296d5c1..f9db6fe379b 100644 --- a/nixos/modules/services/web-apps/whitebophir.nix +++ b/nixos/modules/services/web-apps/whitebophir.nix @@ -11,7 +11,7 @@ in { package = mkOption { default = pkgs.whitebophir; - defaultText = "pkgs.whitebophir"; + defaultText = literalExpression "pkgs.whitebophir"; type = types.package; description = "Whitebophir package to use."; }; diff --git a/nixos/modules/services/web-apps/wordpress.nix b/nixos/modules/services/web-apps/wordpress.nix index eb91256045c..8ebb7229662 100644 --- a/nixos/modules/services/web-apps/wordpress.nix +++ b/nixos/modules/services/web-apps/wordpress.nix @@ -2,7 +2,7 @@ let inherit (lib) mkDefault mkEnableOption mkForce mkIf mkMerge mkOption types; - inherit (lib) any attrValues concatMapStringsSep flatten literalExample; + inherit (lib) any attrValues concatMapStringsSep flatten literalExpression; inherit (lib) filterAttrs mapAttrs mapAttrs' mapAttrsToList nameValuePair optional optionalAttrs optionalString; cfg = migrateOldAttrs config.services.wordpress; @@ -87,6 +87,7 @@ let package = mkOption { type = types.package; default = pkgs.wordpress; + defaultText = literalExpression "pkgs.wordpress"; description = "Which WordPress package to use."; }; @@ -106,23 +107,23 @@ let List of path(s) to respective plugin(s) which are copied from the 'plugins' directory. <note><para>These plugins need to be packaged before use, see example.</para></note> ''; - example = '' - # Wordpress plugin 'embed-pdf-viewer' installation example - embedPdfViewerPlugin = pkgs.stdenv.mkDerivation { - name = "embed-pdf-viewer-plugin"; - # Download the theme from the wordpress site - src = pkgs.fetchurl { - url = "https://downloads.wordpress.org/plugin/embed-pdf-viewer.2.0.3.zip"; - sha256 = "1rhba5h5fjlhy8p05zf0p14c9iagfh96y91r36ni0rmk6y891lyd"; + example = literalExpression '' + let + # Wordpress plugin 'embed-pdf-viewer' installation example + embedPdfViewerPlugin = pkgs.stdenv.mkDerivation { + name = "embed-pdf-viewer-plugin"; + # Download the theme from the wordpress site + src = pkgs.fetchurl { + url = "https://downloads.wordpress.org/plugin/embed-pdf-viewer.2.0.3.zip"; + sha256 = "1rhba5h5fjlhy8p05zf0p14c9iagfh96y91r36ni0rmk6y891lyd"; + }; + # We need unzip to build this package + nativeBuildInputs = [ pkgs.unzip ]; + # Installing simply means copying all files to the output directory + installPhase = "mkdir -p $out; cp -R * $out/"; }; - # We need unzip to build this package - nativeBuildInputs = [ pkgs.unzip ]; - # Installing simply means copying all files to the output directory - installPhase = "mkdir -p $out; cp -R * $out/"; - }; - - And then pass this theme to the themes list like this: - plugins = [ embedPdfViewerPlugin ]; + # And then pass this theme to the themes list like this: + in [ embedPdfViewerPlugin ] ''; }; @@ -133,23 +134,23 @@ let List of path(s) to respective theme(s) which are copied from the 'theme' directory. <note><para>These themes need to be packaged before use, see example.</para></note> ''; - example = '' - # Let's package the responsive theme - responsiveTheme = pkgs.stdenv.mkDerivation { - name = "responsive-theme"; - # Download the theme from the wordpress site - src = pkgs.fetchurl { - url = "https://downloads.wordpress.org/theme/responsive.3.14.zip"; - sha256 = "0rjwm811f4aa4q43r77zxlpklyb85q08f9c8ns2akcarrvj5ydx3"; + example = literalExpression '' + let + # Let's package the responsive theme + responsiveTheme = pkgs.stdenv.mkDerivation { + name = "responsive-theme"; + # Download the theme from the wordpress site + src = pkgs.fetchurl { + url = "https://downloads.wordpress.org/theme/responsive.3.14.zip"; + sha256 = "0rjwm811f4aa4q43r77zxlpklyb85q08f9c8ns2akcarrvj5ydx3"; + }; + # We need unzip to build this package + nativeBuildInputs = [ pkgs.unzip ]; + # Installing simply means copying all files to the output directory + installPhase = "mkdir -p $out; cp -R * $out/"; }; - # We need unzip to build this package - nativeBuildInputs = [ pkgs.unzip ]; - # Installing simply means copying all files to the output directory - installPhase = "mkdir -p $out; cp -R * $out/"; - }; - - And then pass this theme to the themes list like this: - themes = [ responsiveTheme ]; + # And then pass this theme to the themes list like this: + in [ responsiveTheme ] ''; }; @@ -204,7 +205,7 @@ let socket = mkOption { type = types.nullOr types.path; default = null; - defaultText = "/run/mysqld/mysqld.sock"; + defaultText = literalExpression "/run/mysqld/mysqld.sock"; description = "Path to the unix socket file to use for authentication."; }; @@ -217,7 +218,7 @@ let virtualHost = mkOption { type = types.submodule (import ../web-servers/apache-httpd/vhost-options.nix); - example = literalExample '' + example = literalExpression '' { adminAddr = "webmaster@example.org"; forceSSL = true; diff --git a/nixos/modules/services/web-apps/youtrack.nix b/nixos/modules/services/web-apps/youtrack.nix index b4d653d2d77..7a70ae6cd52 100644 --- a/nixos/modules/services/web-apps/youtrack.nix +++ b/nixos/modules/services/web-apps/youtrack.nix @@ -46,7 +46,7 @@ in https://www.jetbrains.com/help/youtrack/standalone/YouTrack-Java-Start-Parameters.html for more information. ''; - example = literalExample '' + example = literalExpression '' { "jetbrains.youtrack.overrideRootPassword" = "tortuga"; } @@ -60,7 +60,7 @@ in ''; type = types.package; default = pkgs.youtrack; - defaultText = "pkgs.youtrack"; + defaultText = literalExpression "pkgs.youtrack"; }; port = mkOption { diff --git a/nixos/modules/services/web-apps/zabbix.nix b/nixos/modules/services/web-apps/zabbix.nix index e94861a90b5..21567896a89 100644 --- a/nixos/modules/services/web-apps/zabbix.nix +++ b/nixos/modules/services/web-apps/zabbix.nix @@ -3,7 +3,7 @@ let inherit (lib) mkDefault mkEnableOption mkForce mkIf mkMerge mkOption types; - inherit (lib) literalExample mapAttrs optionalString versionAtLeast; + inherit (lib) literalExpression mapAttrs optionalString versionAtLeast; cfg = config.services.zabbixWeb; fpm = config.services.phpfpm.pools.zabbix; @@ -43,7 +43,7 @@ in package = mkOption { type = types.package; default = pkgs.zabbix.web; - defaultText = "zabbix.web"; + defaultText = literalExpression "zabbix.web"; description = "Which Zabbix package to use."; }; @@ -116,7 +116,7 @@ in virtualHost = mkOption { type = types.submodule (import ../web-servers/apache-httpd/vhost-options.nix); - example = literalExample '' + example = literalExpression '' { hostName = "zabbix.example.org"; adminAddr = "webmaster@example.org"; |