Compare commits

...

3 commits

Author SHA1 Message Date
4efb3f26fe
fix: typo
Signed-off-by: Lander Van den Bulcke <landervandenbulcke@gmail.com>
2025-11-03 16:04:48 +01:00
5ca129ad7c
fix: add unstable packages for heimdall
Signed-off-by: Lander Van den Bulcke <landervandenbulcke@gmail.com>
2025-11-03 16:01:05 +01:00
ec3366242f
feat: add mail config for escapeangle
Signed-off-by: Lander Van den Bulcke <landervandenbulcke@gmail.com>
2025-11-03 16:00:02 +01:00
5 changed files with 60 additions and 54 deletions

View file

@ -164,7 +164,12 @@
system = "x86_64-linux"; system = "x86_64-linux";
specialArgs = { inherit inputs outputs; }; specialArgs = { inherit inputs outputs; };
modules = [ modules = [
{ nixpkgs.overlays = [ overlays.additions ]; } {
nixpkgs.overlays = [
overlays.additions
overlays.unstable-packages
];
}
./hosts/heimdall ./hosts/heimdall
]; ];
}; };

View file

@ -7,6 +7,6 @@
./hledger.nix ./hledger.nix
./irssi.nix ./irssi.nix
./k8s.nix ./k8s.nix
#./mail.nix ./mail.nix
]; ];
} }

View file

@ -1,11 +1,11 @@
# adapted from github:Misterio77/nix-config # adapted from github:Misterio77/nix-config
{ {
pkgs,
lib, lib,
config, config,
... ...
}: let }:
mbsync = "$(config.programs.mbsync.package}/bin/mbsync"; let
mbsync = "${config.programs.mbsync.package}/bin/mbsync";
common = rec { common = rec {
realName = "Lander Van den Bulcke"; realName = "Lander Van den Bulcke";
@ -22,51 +22,51 @@
''; '';
}; };
}; };
in { in
{
accounts.email = { accounts.email = {
maildirBasePath = "Mail"; maildirBasePath = "Mail";
accounts = { accounts = {
inuits = "escapeangle.com" = {
rec { primary = true;
primary = true; address = "lander@escapeangle.com";
address = "landervdb@inuits.eu"; passwordCommand = "cat ${config.sops.secrets.escapeangle-mail-pass.path}";
passwordCommand = "cat ${config.sops.secrets.inuits-mail-pass.path}";
imap.host = "zimbra88.inuits.eu"; imap.host = "mail.escapeangle.com";
mbsync = { mbsync = {
enable = true; enable = true;
create = "maildir"; create = "maildir";
expunge = "both"; expunge = "both";
}; };
folders = { folders = {
inbox = "Inbox"; inbox = "Inbox";
drafts = "Drafts"; drafts = "Drafts";
sent = "Sent"; sent = "Sent";
trash = "Trash"; trash = "Trash";
}; };
neomutt = { neomutt = {
enable = true; enable = true;
extraMailboxes = [ extraMailboxes = [
"Archive" "Archive"
"Drafts" "Drafts"
"Junk" "Junk"
"Sent" "Sent"
"Trash" "Trash"
]; ];
}; };
msmtp.enable = true; msmtp.enable = true;
smtp.host = "zimbra88.inuits.eu"; smtp.host = "mail.escapeangle.com";
userName = "landervdb"; userName = "lander@escapeangle.com";
} }
// common; // common;
}; };
}; };
programs.mbsync.enable = true; programs.mbsync.enable = true;
programs.msmtp.enable = true; programs.msmtp.enable = true;
systemd.user.services.mbsynce = { systemd.user.services.mbsync = {
Unit = { Unit = {
Description = "mbsync synchronization"; Description = "mbsync synchronization";
}; };
@ -84,19 +84,20 @@ in {
OnUnitActiveSec = "5m"; OnUnitActiveSec = "5m";
}; };
Install = { Install = {
WantedBy = ["timers.target"]; WantedBy = [ "timers.target" ];
}; };
}; };
# run `createMaildir` after `linkGeneration` # run `createMaildir` after `linkGeneration`
home.activation = let home.activation =
mbsyncAccounts = lib.filter (a: a.mbsync.enable) (lib.attrValues config.accounts.email.accounts); let
in mbsyncAccounts = lib.filter (a: a.mbsync.enable) (lib.attrValues config.accounts.email.accounts);
lib.mkIf (mbsyncAccounts != []) { in
createMaildir = lib.mkForce (lib.hm.dag.entryAfter ["linkGeneration"] '' lib.mkIf (mbsyncAccounts != [ ]) {
run mkdir -m700 -p $VERBOSE_ARG ${ createMaildir = lib.mkForce (
lib.concatMapStringsSep " " (a: a.maildir.absPath) mbsyncAccounts lib.hm.dag.entryAfter [ "linkGeneration" ] ''
} run mkdir -m700 -p $VERBOSE_ARG ${lib.concatMapStringsSep " " (a: a.maildir.absPath) mbsyncAccounts}
''); ''
);
}; };
} }

View file

@ -1,7 +1,7 @@
{ ... }: { ... }:
{ {
sops.secrets.inuits-mail-pass = { sops.secrets.escapeangle-mail-pass = {
sopsFile = ./secrets.yaml; sopsFile = ./secrets.yaml;
}; };
} }

View file

@ -1,4 +1,4 @@
inuits-mail-pass: ENC[AES256_GCM,data:0MqpjT2mmKs9UiY=,iv:yFo08gU4jfocr8yOQKQPBl49lOeE1QZrdsdjjOxp0dE=,tag:o2mOPnNJM0EXvkRep5w92w==,type:str] escapeangle-mail-pass: ENC[AES256_GCM,data:Uc/CiZCjSjIkph8=,iv:A0miPxk/3JeE6QbDHobKC+ZmuhnFatG9kua/+8yirtw=,tag:lOlpriBtNUKd09m2EdTc6w==,type:str]
sops: sops:
age: age:
- recipient: age15m0pdv8mkt4aue8wjay9k4endyymtka5je3gc2t63dgamfzh9vts7774hh - recipient: age15m0pdv8mkt4aue8wjay9k4endyymtka5je3gc2t63dgamfzh9vts7774hh
@ -19,8 +19,8 @@ sops:
SVJPeW1XM0RPWWI5L0wzSmFmNWRnZ3MKKbpkILPQB7dpzZQcU45g/4SfCdo8+UJK SVJPeW1XM0RPWWI5L0wzSmFmNWRnZ3MKKbpkILPQB7dpzZQcU45g/4SfCdo8+UJK
7hrCYeiae9zHu2CfrZqVMkCnAOpda8lL0INLNnrS9hDRNdk3LBLapQ== 7hrCYeiae9zHu2CfrZqVMkCnAOpda8lL0INLNnrS9hDRNdk3LBLapQ==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2024-09-05T06:11:39Z" lastmodified: "2025-11-03T14:53:29Z"
mac: ENC[AES256_GCM,data:SVdNtwrN7MEtXMdWKLQXR9BRlRaYvOBRDLmoDZMkX3t3dlUMR5m5m/btpal1+nPkYjUk58q0hSGA94BREdDTpMYHmvr0V+tWnKsmE8j7r51plN1Dp/4sfgtZBgaqHD2IRDGLI4pW9GCg2fXIxB+BGC6GNU/ZAVbhB4bmzNfFqOY=,iv:ElCt+fJFSjsykoiIS9XO9ViaBJ02Oi169YnUeHiATPk=,tag:vR/KXyuRMnWtW9uXIHNwUw==,type:str] mac: ENC[AES256_GCM,data:DXCtjC8hOyMR01xAxJLkhkTCdcMOeV0dFGmlZUaliNVIGtKDXaFvDanpb8IM1vRPcoNjRDDDgbC+KP6TPyKMEDpIigqQVNsjyD6jqEn0T0iHBiomWrsNXofY8NzIfeKT2075tt2s4BIbocaJlXLueiqAZoLHyh2FM9kEsU/jiuw=,iv:wpXl6yMJzNB28+d8MBb7I3Qx40sdTzykn4lzVtCW7Vo=,tag:Yq5wHEPbFnPM9bYXbDrL7Q==,type:str]
pgp: pgp:
- created_at: "2025-09-18T08:29:55Z" - created_at: "2025-09-18T08:29:55Z"
enc: |- enc: |-
@ -34,4 +34,4 @@ sops:
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 4BE1257015580BAB9F4B9D5FCA5B1C34E649BF92 fp: 4BE1257015580BAB9F4B9D5FCA5B1C34E649BF92
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.8.1 version: 3.11.0