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 = [
|
||||
./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