diff options
author | talyz <kim.lindberger@gmail.com> | 2023-11-16 16:12:07 +0100 |
---|---|---|
committer | github-actions[bot] <github-actions[bot]@users.noreply.github.com> | 2023-12-07 11:08:31 +0000 |
commit | 9c2570f13dd8370685f80e16ca23a5652f3482e4 (patch) | |
tree | 1582a4d7cb6ef52c595dd063153f7cdeecfe4481 /nixos/modules | |
parent | 63d6f2a8df9ed44011035fbd5f0bef85f4b45609 (diff) |
nixos/keycloak: Allow setting hostname-url
(cherry picked from commit 4b0b3413b48d303bfd5714c7161cb3a574bee38f)
Diffstat (limited to 'nixos/modules')
-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 a7e4fab8ea287..c90ee78a3e04b 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 ]; |