diff options
author | talyz <kim.lindberger@gmail.com> | 2023-11-16 16:12:07 +0100 |
---|---|---|
committer | talyz <kim.lindberger@gmail.com> | 2023-11-16 16:12:07 +0100 |
commit | 4b0b3413b48d303bfd5714c7161cb3a574bee38f (patch) | |
tree | 48188f836db31dd9caffe687d7c633599c03e106 /nixos | |
parent | dcb049a67e680ed09a3fa3e5af3fc410e80ca415 (diff) | |
download | nixlib-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.nix | 14 |
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 ]; |