omniflake/system/web-server/dex.nix
2026-02-12 15:28:48 +01:00

54 lines
1.3 KiB
Nix

{ config, pkgs, ... }:
let
dex = {
hostname = "dex.${config.networking.domain}";
};
in {
services.dex = {
enable = true;
environmentFile = "/var/custom-access/dex-environemnt";
settings = {
issuer = "https://${dex.hostname}";
storage.type = "sqlite3";
web.http = "127.0.0.1:5556";
staticClients = [
{
id = "outline";
name = "Outline Client";
redirectURIs = [ "https://${config.services.outline.hostname}/auth/oidc.callback" ];
secretFile = "/var/custom-access/outline-oidc-secret.txt";
}
];
enablePasswordDB = true;
# staticPasswords = [
# {
# email = "till@ktiu.net";
# # gen hash with $ htpasswd -nBC 10 "" | tr -d ':\n'
# hash = "";
# username = "bootstrap-admin";
# # $ uuidgen
# userID = "";
# }
# ];
};
};
security.acme.certs."${config.networking.domain}".extraDomainNames = [
"dex.${config.networking.domain}"
];
services.nginx.virtualHosts = {
"dex.${config.networking.domain}" = {
onlySSL = true;
useACMEHost = config.networking.domain;
locations."/" = {
proxyPass = "http://${config.services.dex.settings.web.http}";
proxyWebsockets = true;
};
};
};
}