about summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authortalyz <kim.lindberger@gmail.com>2023-11-16 16:12:07 +0100
committertalyz <kim.lindberger@gmail.com>2023-11-16 16:12:07 +0100
commit4b0b3413b48d303bfd5714c7161cb3a574bee38f (patch)
tree48188f836db31dd9caffe687d7c633599c03e106 /nixos
parentdcb049a67e680ed09a3fa3e5af3fc410e80ca415 (diff)
downloadnixlib-4b0b3413b48d303bfd5714c7161cb3a574bee38f.tar
nixlib-4b0b3413b48d303bfd5714c7161cb3a574bee38f.tar.gz
nixlib-4b0b3413b48d303bfd5714c7161cb3a574bee38f.tar.bz2
nixlib-4b0b3413b48d303bfd5714c7161cb3a574bee38f.tar.lz
nixlib-4b0b3413b48d303bfd5714c7161cb3a574bee38f.tar.xz
nixlib-4b0b3413b48d303bfd5714c7161cb3a574bee38f.tar.zst
nixlib-4b0b3413b48d303bfd5714c7161cb3a574bee38f.zip
nixos/keycloak: Allow setting hostname-url
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/services/web-apps/keycloak.nix14
1 files changed, 11 insertions, 3 deletions
diff --git a/nixos/modules/services/web-apps/keycloak.nix b/nixos/modules/services/web-apps/keycloak.nix
index a7e4fab8ea28..c90ee78a3e04 100644
--- a/nixos/modules/services/web-apps/keycloak.nix
+++ b/nixos/modules/services/web-apps/keycloak.nix
@@ -24,7 +24,6 @@ let
     maintainers
     catAttrs
     collect
-    splitString
     hasPrefix
     ;
 
@@ -335,7 +334,8 @@ in
             };
 
             hostname = mkOption {
-              type = str;
+              type = nullOr str;
+              default = null;
               example = "keycloak.example.com";
               description = lib.mdDoc ''
                 The hostname part of the public URL used as base for
@@ -457,7 +457,7 @@ in
 
       keycloakConfig = lib.generators.toKeyValue {
         mkKeyValue = lib.flip lib.generators.mkKeyValueDefault "=" {
-          mkValueString = v: with builtins;
+          mkValueString = v:
             if isInt v then toString v
             else if isString v then v
             else if true == v then "true"
@@ -486,6 +486,14 @@ in
             assertion = createLocalPostgreSQL -> config.services.postgresql.settings.standard_conforming_strings or true;
             message = "Setting up a local PostgreSQL db for Keycloak requires `standard_conforming_strings` turned on to work reliably";
           }
+          {
+            assertion = cfg.settings.hostname != null || cfg.settings.hostname-url or null != null;
+            message = "Setting the Keycloak hostname is required, see `services.keycloak.settings.hostname`";
+          }
+          {
+            assertion = !(cfg.settings.hostname != null && cfg.settings.hostname-url or null != null);
+            message = "`services.keycloak.settings.hostname` and `services.keycloak.settings.hostname-url` are mutually exclusive";
+          }
         ];
 
         environment.systemPackages = [ keycloakBuild ];