keycloak #1

Merged
jawz merged 29 commits from keycloak into main 2025-12-25 18:54:49 -06:00
3 changed files with 55 additions and 2 deletions
Showing only changes of commit bd26dc247b - Show all commits

View File

@@ -82,5 +82,6 @@ in
"vaultwarden"
"readeck"
"keycloak"
"oauth2-proxy"
];
}

View File

@@ -0,0 +1,51 @@
{
lib,
config,
...
}:
let
setup = import ../factories/mkserver.nix { inherit lib config; };
cfg = config.my.servers.oauth2-proxy;
in
{
options.my.servers.oauth2-proxy = setup.mkOptions "oauth2-proxy" "auth-proxy" 4180;
config = lib.mkIf (cfg.enable && config.my.secureHost) {
sops.secrets.oauth2-proxy = {
sopsFile = ../../secrets/env.yaml;
restartUnits = [ "oauth2-proxy.service" ];
};
services.oauth2-proxy = {
inherit (cfg) enable;
provider = "keycloak-oidc";
clientID = "oauth2-proxy";
keyFile = config.sops.secrets.oauth2-proxy.path;
oidcIssuerUrl = "https://auth.lebubu.org/realms/homelab";
redirectURL = "https://auth-proxy.lebubu.org/oauth2/callback";
httpAddress = "${cfg.ip}:${toString cfg.port}";
email.domains = [ "*" ];
cookie = {
name = "_oauth2_proxy";
secure = true;
expire = "168h";
refresh = "1h";
domain = ".lebubu.org";
};
extraConfig = {
skip-auth-routes = [
"^/ping$"
];
set-xauthrequest = true;
pass-access-token = true;
pass-user-headers = true;
request-logging = true;
auth-logging = true;
session-store-type = "cookie";
skip-provider-button = true;
};
};
systemd.services.oauth2-proxy = {
after = [ "network-online.target" ];
wants = [ "network-online.target" ];
};
};
}

View File

@@ -12,6 +12,7 @@ synapse: ENC[AES256_GCM,data:IR0pFwQBEM4O8mzzYXrPe2FjulSUGuitzLDLms2uovr6gEU82mC
readeck: ENC[AES256_GCM,data:TsIkHLji37dDHQRt78SquBhoSREHDgvgbc6+M1k2MLrgMGJ/Ejfy5AZXCIp/Qj5sXDzKP4j6Y6xFvGLswCqe02XjqGCpX13gZVCFPuKr8Nq051Xg,iv:Rc/pjYP+Vd/DvLCYsfJjDrnAlAiUlZOcNeeYzE6O3UY=,tag:OvR+CXMmrUFbsrHvduhnjA==,type:str]
lidarr-mb-gap: ENC[AES256_GCM,data:bNzD9Nf9BWAPkm0Yk0J4MJbmo908QX9VsD+40Rngnfec9nzH4vZ2DrelxRllgT1kgnXMQzvoSgNhBwkDN4fgX73hz1FjkytTwahlO0wcY6R+tw4aokh0QYy0TVx5pZ4u1FEQOAp3IMgBsP8HOqaL/NEsEo3yb0K9iC3AfFihkLDJmVh26Pg=,iv:go0qS7/BcfcAMPkAdGWCoL61gNqBG5lWDev++y9DJ/I=,tag:LgtEyTZH8NfhfrKTcAigZw==,type:str]
keycloak: ENC[AES256_GCM,data:BmwZxuJaOB8F7zmBNAf42lkw36s5TepimtdyT2xjdGVyuHgRHbTZqeVen7/0II39qrJjko4agZJgToIZ1uhaC/gpGSoHZlib3rJozPCqmBc42nO6SOtpIO8=,iv:kPModK85937/liNk6iLIRiQ/G5yB7S7h24ZzPb8A1zo=,tag:lWvDQAHVRiBz8XZUoADKvw==,type:str]
oauth2-proxy: ENC[AES256_GCM,data:IjHaomHQbt8PYWen6mcL9NWRlbTwv0ozk2ggiCsmWwT77U/D8n8JzlaBxJ5d50aqn4U0P+nNr6tQnBj/,iv:EbqmMUEZeprgCojN6h+uPWXsrUsd59HHsiOz8KwOIRU=,tag:3ke0SYGjvxKT1p7Na2pxvg==,type:str]
sops:
age:
- recipient: age1lufn6t35gs4wgevyr2gud4eec7lvkn7pgnnv4tja64ww3hef7gqq8fas37
@@ -50,7 +51,7 @@ sops:
QXRUYWtGcWZCVW11U3VYRktuUjlCbDgKsTK4WhUza/JuoDTU3uATa6fq/8eYzxtb
9BUK1ddzx9Mghea9XBMS17YGtGmW800OsLBomb3SINnOFvejcnKf8Q==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-12-10T08:26:05Z"
mac: ENC[AES256_GCM,data:rUc4vtnyqK7U6Zvx+BCVMT6yqhCBBsKY/Cfp13XzPzKqa/8sRI7PSEUBY+RSH0t2ShCUep+dWu0ghgFq9L2olJkwuOQ3MHPyIRw3ldwbuYwoRiCtvTkyvtZMaJouy/QrD+mHBr8a6UZRIl/6gnIxcqktzXUeKbCtJcSFj5ScHIg=,iv:j/mtZ3RJwMilVF5AFFUjo4Jm5IDlRIzZx1MdjOE+4gc=,tag:w4Niu71q3Lutu32VdFruHw==,type:str]
lastmodified: "2025-12-10T10:02:01Z"
mac: ENC[AES256_GCM,data:AAxT/ujy2OoQhZfqS/Dv6YMOWE3uSE9m0zy6fxRSSsN1A9muzNkUVtUWUUdmTC0galwth62s07IU91fHGv+y75MZ76TQMFUXvhkaQp3I4p9I0eDalQfrDaEjqnSKgTJ9jdjzGPAdnG0ZNZQESIQllMUzD5JRGIEiN7gmZo5BGLQ=,iv:BHQOJyaGPp4Hu1EV4bgIJzhLlGOqfWrH6+GI0eZ4Vpc=,tag:yKP1JPAb/z/I9uIMeB0KvA==,type:str]
unencrypted_suffix: _unencrypted
version: 3.11.0