use systemd credentials

Signed-off-by: Florian Brandes <florian.brandes@posteo.de>
This commit is contained in:
2024-07-13 16:45:04 +02:00
parent f40359baec
commit b306ecd228
3 changed files with 14 additions and 4 deletions

View File

@@ -2,7 +2,7 @@
pkgs.python3Packages.buildPythonPackage rec { pkgs.python3Packages.buildPythonPackage rec {
pname = "smtprd-ng"; pname = "smtprd-ng";
version = "0.1.0"; version = "0.2.0";
pyproject = true; pyproject = true;
src = lib.cleanSource ./.; src = lib.cleanSource ./.;

View File

@@ -13,12 +13,18 @@ let
hostname = cfg.client.hostname; hostname = cfg.client.hostname;
port = cfg.client.port; port = cfg.client.port;
username = cfg.client.username; username = cfg.client.username;
password_file = cfg.client.password_file; password_file = if cfg.client.password_file != "" then
"/run/credentials/smtprd-ng.service/password_file"
else
"";
sender = cfg.client.sender; sender = cfg.client.sender;
use_tls = cfg.client.use_tls; use_tls = cfg.client.use_tls;
start_tls = cfg.client.start_tls; start_tls = cfg.client.start_tls;
smime_cert = cfg.client.smime_cert; smime_cert = cfg.client.smime_cert;
smime_cert_private = cfg.client.smime_cert_private; smime_cert_private = if cfg.client.smime_cert_private != "" then
"/run/credentials/smtprd-ng.service/smime_cert_private"
else
"";
}; };
emails = cfg.emails; emails = cfg.emails;
}; };
@@ -159,6 +165,10 @@ in {
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
requires = [ "network.target" ]; requires = [ "network.target" ];
serviceConfig = { serviceConfig = {
LoadCredential = [
"smime_cert_private:${cfg.client.smime_cert_private}"
"password_file:${cfg.client.password_file}"
];
DynamicUser = true; DynamicUser = true;
User = "smtprd-ng"; User = "smtprd-ng";
Group = "smtprd-ng"; Group = "smtprd-ng";

View File

@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project] [project]
name = "smtprd-ng" name = "smtprd-ng"
version = "0.1.0" version = "0.2.0"
description = "SMTP forwarding relay daemon with signing and encryption" description = "SMTP forwarding relay daemon with signing and encryption"
authors = [{ name = "Florian Brandes", email = "dev@mail.flo-the.dev" }] authors = [{ name = "Florian Brandes", email = "dev@mail.flo-the.dev" }]
classifiers = [ classifiers = [