My Nix Configuration

[systems.prefect] Update mail cert copying to be monthly

Changed files
+29 -11
systems
x86_64-linux
prefect
services
mailserver
+29 -11
systems/x86_64-linux/prefect/services/mailserver/default.nix
···
-
{ lib, ... }:
+
{ lib, pkgs, ... }:
{
imports = [
./logins.nix
···
certificateFile = "/var/lib/mail/mail.crt";
keyFile = "/var/lib/mail/mail.key";
};
-
system.activationScripts = {
-
mail-certs.text = ''
-
# Copy and chown the mail cert
-
cp -fvr /var/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/mail.pyrox.dev/mail.pyrox.dev.crt /var/lib/mail/mail.crt
-
chmod a+r /var/lib/mail/mail.crt
-
cp -fvr /var/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/mail.pyrox.dev/mail.pyrox.dev.key /var/lib/mail/mail.key
-
chmod a+r /var/lib/mail/mail.key
-
chown -hR virtualMail:virtualMail /var/lib/mail/
-
'';
-
};
services.opendkim = {
user = lib.mkForce "virtualMail";
group = lib.mkForce "virtualMail";
};
+
+
# Copy mail certs every month so that they don't expire
+
systemd = {
+
timers."copy-mail-certs" = {
+
wantedBy = [ "timers.target" ];
+
timerConfig = {
+
OnBootSec = "5m";
+
OnCalendar = "monthly";
+
Unit = "copy-mail-certs.service";
+
};
+
};
+
+
services."copy-mail-certs" = {
+
script = ''
+
set -eu
+
cp -fvr /var/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/mail.pyrox.dev/mail.pyrox.dev.crt /var/lib/mail/mail.crt
+
chmod a+r /var/lib/mail/mail.crt
+
cp -fvr /var/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/mail.pyrox.dev/mail.pyrox.dev.key /var/lib/mail/mail.key
+
chmod a+r /var/lib/mail/mail.key
+
chown -hR virtualMail:virtualMail /var/lib/mail/
+
'';
+
serviceConfig = {
+
Type = "oneshot";
+
User = "root";
+
};
+
};
+
};
+
}