Set up kanidm
This commit is contained in:
parent
bb9b5c0867
commit
7fceb61b5e
3 changed files with 63 additions and 2 deletions
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
|
./modules/kanidm.nix
|
||||||
|
./modules/reverse-proxy.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
# New machine!
|
|
||||||
}
|
}
|
||||||
|
|
32
machines/beagle/modules/kanidm.nix
Normal file
32
machines/beagle/modules/kanidm.nix
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
services.kanidm = {
|
||||||
|
enableServer = true;
|
||||||
|
enableClient = true;
|
||||||
|
|
||||||
|
package = pkgs.kanidm_1_7;
|
||||||
|
|
||||||
|
serverSettings = {
|
||||||
|
version = "2"; # Configuration file version.
|
||||||
|
origin = "https://idm.peprolinbot.com";
|
||||||
|
domain = "idm.peprolinbot.com";
|
||||||
|
bindaddress = "[::1]:8443";
|
||||||
|
ldapbindaddress = "[::]:636";
|
||||||
|
http_client_address_info.x-forward-for = ["::1"];
|
||||||
|
tls_chain = "/var/lib/kanidm/cert.pem";
|
||||||
|
tls_key = "/var/lib/kanidm/key.pem";
|
||||||
|
};
|
||||||
|
|
||||||
|
clientSettings = {
|
||||||
|
uri = "https://idm.peprolinbot.com";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
security.acme.certs."idm.peprolinbot.com" = {
|
||||||
|
postRun = ''
|
||||||
|
cp -Lv {cert,key,chain}.pem /var/lib/kanidm/
|
||||||
|
chown kanidm:kanidm /var/lib/kanidm/{cert,key,chain}.pem
|
||||||
|
chmod 400 /var/lib/kanidm/{cert,key,chain}.pem
|
||||||
|
'';
|
||||||
|
reloadServices = ["kanidm.service"];
|
||||||
|
};
|
||||||
|
}
|
29
machines/beagle/modules/reverse-proxy.nix
Normal file
29
machines/beagle/modules/reverse-proxy.nix
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
{config, ...}: {
|
||||||
|
security.acme = {
|
||||||
|
acceptTerms = true;
|
||||||
|
defaults.email = "personal+letsencrypt@peprolinbot.com";
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.firewall.allowedTCPPorts = [80 443];
|
||||||
|
|
||||||
|
services.nginx = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
# Use recommended settings
|
||||||
|
recommendedGzipSettings = true;
|
||||||
|
recommendedOptimisation = true;
|
||||||
|
recommendedProxySettings = true;
|
||||||
|
recommendedTlsSettings = true;
|
||||||
|
|
||||||
|
virtualHosts = {
|
||||||
|
"idm.peprolinbot.com" = {
|
||||||
|
forceSSL = true;
|
||||||
|
enableACME = true;
|
||||||
|
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "https://${config.services.kanidm.serverSettings.bindaddress}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue