2023-11-07 23:10:26 +01:00
|
|
|
{ config, lib, libC, ... }:
|
2022-07-23 00:06:12 +02:00
|
|
|
|
|
|
|
{
|
2022-12-18 22:16:29 +01:00
|
|
|
c3d2.deployment.server = "server10";
|
2022-07-23 00:06:12 +02:00
|
|
|
|
|
|
|
system.stateVersion = "22.05";
|
|
|
|
|
|
|
|
networking = {
|
|
|
|
hostName = "auth";
|
2022-07-23 02:04:42 +02:00
|
|
|
firewall.allowedTCPPorts = [
|
|
|
|
636 # ldaps
|
|
|
|
];
|
2022-07-23 00:06:12 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
services = {
|
2023-11-11 05:01:55 +01:00
|
|
|
backup = {
|
|
|
|
enable = true;
|
|
|
|
paths = [ "/var/lib/portunus/" ];
|
|
|
|
};
|
|
|
|
|
2022-12-23 08:22:28 +01:00
|
|
|
dex.settings.oauth2.skipApprovalScreen = true;
|
|
|
|
|
2022-07-23 00:06:12 +02:00
|
|
|
nginx = {
|
|
|
|
enable = true;
|
|
|
|
virtualHosts."auth.c3d2.de" = {
|
|
|
|
forceSSL = true;
|
|
|
|
enableACME = true;
|
2023-11-07 23:10:26 +01:00
|
|
|
listen = libC.defaultListen;
|
2022-07-23 00:06:12 +02:00
|
|
|
locations = {
|
2023-11-07 23:10:26 +01:00
|
|
|
"/".proxyPass = "http://127.0.0.1:${toString config.services.portunus.port}";
|
|
|
|
"/dex".proxyPass = "http://127.0.0.1:${toString config.services.portunus.dex.port}";
|
2022-07-23 00:06:12 +02:00
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
portunus = {
|
|
|
|
enable = true;
|
|
|
|
dex = {
|
2022-12-23 08:22:28 +01:00
|
|
|
enable = true;
|
2023-07-01 23:41:50 +02:00
|
|
|
oidcClients = [{
|
2022-12-23 08:22:28 +01:00
|
|
|
callbackURL = "https://grafana.hq.c3d2.de/login/generic_oauth";
|
|
|
|
id = "grafana";
|
2023-07-01 23:41:50 +02:00
|
|
|
}];
|
2022-07-23 00:06:12 +02:00
|
|
|
};
|
|
|
|
ldap = {
|
2022-12-20 05:40:58 +01:00
|
|
|
searchUserName = "search";
|
2022-07-23 00:06:12 +02:00
|
|
|
suffix = "dc=c3d2,dc=de";
|
|
|
|
tls = true;
|
|
|
|
};
|
2023-07-01 23:43:15 +02:00
|
|
|
removeAddGroup = true;
|
|
|
|
seedGroups = true;
|
|
|
|
seedSettings = {
|
|
|
|
groups = [
|
|
|
|
{
|
|
|
|
long_name = "Portunus Administrators";
|
|
|
|
name = "admins";
|
2023-07-12 15:11:29 +02:00
|
|
|
members = [ "admin" ];
|
2023-07-01 23:43:15 +02:00
|
|
|
permissions.portunus.is_admin = true;
|
|
|
|
}
|
|
|
|
{
|
|
|
|
long_name = "Search";
|
|
|
|
name = "search";
|
2023-07-12 15:11:29 +02:00
|
|
|
members = [ "search" ];
|
2023-07-01 23:43:15 +02:00
|
|
|
permissions.ldap.can_read = true;
|
|
|
|
}
|
|
|
|
];
|
|
|
|
users = [
|
|
|
|
{
|
|
|
|
family_name = "Administrator";
|
|
|
|
given_name = "Initial";
|
|
|
|
login_name = "admin";
|
|
|
|
password.from_command = [ "/usr/bin/env" "cat" "/run/secrets/portunus/users/admin-password" ];
|
|
|
|
}
|
|
|
|
{
|
|
|
|
email = "search@c3d2.de";
|
|
|
|
family_name = "-";
|
|
|
|
given_name = "Search";
|
|
|
|
login_name = "search";
|
|
|
|
password.from_command = [ "/usr/bin/env" "cat" "/run/secrets/portunus/users/search-password" ];
|
|
|
|
}
|
|
|
|
];
|
|
|
|
};
|
2022-08-01 00:16:40 +02:00
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
sops = {
|
|
|
|
defaultSopsFile = ./secrets.yaml;
|
2023-07-01 23:41:50 +02:00
|
|
|
secrets = {
|
|
|
|
"dex/environment".owner = "dex";
|
|
|
|
"portunus/users/admin-password".owner = "portunus";
|
|
|
|
"portunus/users/search-password".owner = "portunus";
|
|
|
|
};
|
2022-07-23 00:06:12 +02:00
|
|
|
};
|
2022-12-23 08:22:28 +01:00
|
|
|
|
|
|
|
systemd.services.dex.serviceConfig = {
|
|
|
|
DynamicUser = lib.mkForce false;
|
|
|
|
EnvironmentFile = config.sops.secrets."dex/environment".path;
|
|
|
|
StateDirectory = "dex";
|
|
|
|
User = "dex";
|
|
|
|
};
|
|
|
|
|
|
|
|
users = {
|
|
|
|
groups.dex = { };
|
|
|
|
users.dex = {
|
|
|
|
group = "dex";
|
|
|
|
isSystemUser = true;
|
|
|
|
};
|
|
|
|
};
|
2022-07-23 00:06:12 +02:00
|
|
|
}
|