From 096ad802bd94f0ad90f67f40cd290e6a729f6466 Mon Sep 17 00:00:00 2001
From: Chris Cochrun <chris@cochrun.xyz>
Date: Fri, 17 Feb 2023 09:39:22 -0600
Subject: [PATCH] adding nixos mailserver

---
 flake.nix                        |  4 +++
 system/dalinar/configuration.nix | 52 ++++++++++++++++++++++++++++++++
 2 files changed, 56 insertions(+)

diff --git a/flake.nix b/flake.nix
index ec0b9da..9743f4f 100644
--- a/flake.nix
+++ b/flake.nix
@@ -22,6 +22,9 @@
     nix-bitcoin = {
       url = "github:fort-nix/nix-bitcoin/release";
     };
+    simple-nixos-mailserver = {
+      url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-22.11";
+    };
     libre-presenter = {
       url = "gitlab:chriscochrun/church-presenter";
     };
@@ -104,6 +107,7 @@
           modules = [
             ./system/dalinar/configuration.nix
             nix-bitcoin.nixosModules.default
+            # simple-nixos-mailserver.nixosModules.default
           ];
         };
         kohlin = nixpkgs-stable.lib.nixosSystem {
diff --git a/system/dalinar/configuration.nix b/system/dalinar/configuration.nix
index f8f5e3f..35f4bcd 100644
--- a/system/dalinar/configuration.nix
+++ b/system/dalinar/configuration.nix
@@ -171,6 +171,54 @@
     nodes.clightning.enable = true;
   };
 
+  mailserver = {
+    enable = true;
+    fqdn = "mail.cochrun.xyz";
+    domains = [ "cochrun.xyz" ];
+    enableManageSieve = true;
+    mailDirectory = "/storage/vmail";
+    mailboxes = {
+      Archive = {
+        auto = "subsribe";
+        specialUse = "Archive";
+      }
+      Drafts = {
+        auto = "subscribe";
+        specialUse = "Drafts";
+      };
+      Junk = {
+        auto = "subscribe";
+        specialUse = "Junk";
+      };
+      Sent = {
+        auto = "subscribe";
+        specialUse = "Sent";
+      };
+      Trash = {
+        auto = "no";
+        specialUse = "Trash";
+      };
+    };
+    useFsLayout = true;
+    hierarchySeparator = "/";
+    certificateScheme = 1;
+    certificateFile = "/var/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/mail.cochrun.xyz/mail.cochrun.xyz.crt";
+    keyFile = "/var/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/mail.cochrun.xyz/mail.cochrun.xyz.key";
+    loginAccounts = {
+      "chris@cochrun.xyz" = {
+        hashedPasswordFile = "/home/chris/mailp";
+        aliases = [
+          "postmaster@cochrun.xyz"
+          "cxda@cochrun.xyz"
+          "ceth@cochrun.xyz"
+          "clocb@cochrun.xyz"
+          "higdry@cochrun.xyz"
+          "clin@cochrun.xyz"
+        ]
+      }
+    }
+  }
+
   # DDCLIENT
   services.ddclient = {
     enable = true;
@@ -213,6 +261,10 @@
         reverse_proxy localhost:8123
       '';
     };
+    virtualHosts = {
+      "mail.cochrun.xyz".extraConfig = ''
+     '';
+    }
     virtualHosts = {
       "jelly.cochrun.xyz".extraConfig = ''
         reverse_proxy localhost:8096