38 lines
1 KiB
Nix
38 lines
1 KiB
Nix
|
{ config, pkgs, lib, ... }:
|
||
|
let
|
||
|
domain = "sso.${config.networking.domain}";
|
||
|
in
|
||
|
{
|
||
|
sops.secrets."keycloak/db" = { };
|
||
|
services.keycloak = {
|
||
|
enable = true;
|
||
|
# we use unstable as the release in stable is insecure
|
||
|
# package = nixpkgs-unstable.legacyPackages.x86_64-linux.keycloak;
|
||
|
settings = {
|
||
|
http-port = 8086;
|
||
|
https-port = 19000;
|
||
|
hostname = domain;
|
||
|
proxy = "edge";
|
||
|
};
|
||
|
# The module requires a password for the DB and works best with its own DB config
|
||
|
# Does an automatic Postgresql configuration
|
||
|
database = {
|
||
|
passwordFile = config.sops.secrets."keycloak/db".path;
|
||
|
};
|
||
|
initialAdminPassword = "plschangeme";
|
||
|
themes = with pkgs ; {
|
||
|
ifsr = keycloak_ifsr_theme;
|
||
|
};
|
||
|
};
|
||
|
services.nginx.virtualHosts."${domain}" = {
|
||
|
locations."/" = {
|
||
|
proxyPass = "http://127.0.0.1:${toString config.services.keycloak.settings.http-port}";
|
||
|
extraConfig = ''
|
||
|
proxy_buffer_size 128k;
|
||
|
proxy_buffers 4 256k;
|
||
|
proxy_busy_buffers_size 256k;
|
||
|
'';
|
||
|
};
|
||
|
};
|
||
|
}
|