summaryrefslogtreecommitdiff
path: root/hosts/aperture/testbed.nix
diff options
context:
space:
mode:
Diffstat (limited to 'hosts/aperture/testbed.nix')
-rw-r--r--hosts/aperture/testbed.nix62
1 files changed, 53 insertions, 9 deletions
diff --git a/hosts/aperture/testbed.nix b/hosts/aperture/testbed.nix
index 479de4a..5e9853d 100644
--- a/hosts/aperture/testbed.nix
+++ b/hosts/aperture/testbed.nix
@@ -1,4 +1,8 @@
-{ ... }:
+{ config, pkgs, lib, ... }: let
+ dotsToDn = type: domain: (lib.concatMapStringsSep "," (x: "${type}=${x}") (lib.splitString "." domain));
+ baseDN = dotsToDn "dc" "aperture.local";
+ sopsCred = name: config.sops.secrets."lldap/${name}".path;
+in
{
imports = [ ../../services/mail2.nix ];
wilkuu.services.test_endpoint = {
@@ -8,21 +12,61 @@
domain = "test.aperture.local";
};
- wilkuu.services.mail = {
+ # systemd.services.stalwart.serviceConfig.Environment = ["STALWART_PUBLIC_URL=http://mail.aperture.local"];
+ wilkuu.services.mail = let
+ domain_to_jid = lib.replaceString "." "_";
+ in {
enable = true;
doACME = false;
defaultDomain = "mail.aperture.local";
- domains = [ "mail.aperture.local" ];
- wellKnownDomains = [ "aperture.local" ];
- startupMode = "bootstrap";
+ domains = [ "aperture.local" ];
+ wellKnownDomains = [];
+ startupMode = "recovery";
+ extraCreate = [];
+ extraConfig = [];
};
+
+ users.users.lldap = {
+ isSystemUser = true;
+ group = "lldap";
+ };
+ users.groups.lldap = {};
+
+ sops.secrets = let
+ sopsPath = ../../secrets/${config.networking.hostName}/lldap.yaml;
+ secrets = ["admin_password" "jwt_secret"];
+ toSops = (sname: "lldap/${sname}");
+ in lib.genAttrs (map toSops secrets) ( _name: {
+ sopsFile = sopsPath;
+ mode = "0440";
+ owner = "lldap";
+ });
+
+ services.nginx.virtualHosts."ldap.aperture.local" = {
+ locations."/" = {
+ proxyPass = "http://127.0.0.1:${toString config.services.lldap.settings.http_port}";
+ recommendedProxySettings = true;
+ };
+ };
- lldap = {
- enable = false;
- environmentFile = null;
+ networking.firewall.allowedTCPPorts = [ 80 ];
+
+ services.lldap = let
+
+ in {
+ enable = true;
+ # environmentFile = null;
settings = {
+ force_ldap_user_pass_reset = "always";
+ jwt_secret_file = sopsCred "jwt_secret";
+ ldap_user_pass_file = sopsCred "admin_password";
+ ldap_user_dn = "ldap_admin";
+ ldap_user_email = "ldap_admin@aperture.local";
+
+ ldap_base_dn = baseDN;
+ ldap_port = 3890;
-
+ http_url = "http://ldap.aperture.local";
};
};
}