From a6f81150e7c572d7477e9021ca8474c72a06a4f0 Mon Sep 17 00:00:00 2001 From: Giulio De Pasquale Date: Fri, 28 Oct 2022 13:32:31 +0200 Subject: [PATCH] keycloack: Add keycloack service --- hosts/architect/keycloak.nix | 48 ++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 hosts/architect/keycloak.nix diff --git a/hosts/architect/keycloak.nix b/hosts/architect/keycloak.nix new file mode 100644 index 0000000..563c683 --- /dev/null +++ b/hosts/architect/keycloak.nix @@ -0,0 +1,48 @@ +{ pkgs, config, ... }: + +let + network = import ./network.nix; + domain = "auth.giugl.io"; +in { + services = { + keycloak = { + enable = true; + initialAdminPassword = "giulio"; + database.passwordFile = "/secrets/keycloak/database.key"; + settings = { + hostname = domain; + proxy = "edge"; + http-port = 6654; + https-port = 6655; + hostname-strict-backchannel = true; + }; + }; + + postgresql = { + ensureDatabases = + [ "${toString config.services.keycloak.database.name}" ]; + ensureUsers = [{ + name = "${toString config.services.keycloak.database.username}"; + ensurePermissions = { + "DATABASE ${toString config.services.keycloak.database.name}" = + "ALL PRIVILEGES"; + }; + }]; + }; + + nginx.virtualHosts.${domain} = { + forceSSL = true; + enableACME = true; + locations."/" = { + proxyPass = "http://localhost:${ + toString config.services.keycloak.settings.http-port + }"; + }; + }; + }; + + networking.extraHosts = '' + ${network.architect-lan} ${domain} + ${network.architect-wg} ${domain} + ''; +}