reformat, fix load env vars, update README

This commit is contained in:
Jonas Heinrich 2025-08-18 16:00:51 +02:00
parent 9a76430181
commit e658def798
3 changed files with 159 additions and 126 deletions

View file

@ -44,7 +44,28 @@ Add this to your `configuration.nix` file
```nix
environment.etc."eintopf-radar-sync-secrets.yml".text = ''
EINTOPF_AUTHORIZATION_TOKEN=foobar23
accounts:
- name: Sales
imap_server: mail.example.com
imap_port: 993
username: sales@example.com
password: secret
- name: Support
imap_server: mail.example.com
imap_port: 993
username: support@example.com
password: secret
mail:
smtp_server: mail.example.com
smtp_port: 587
smtp_username: monitoring@example.com
smtp_password: secret
from_address: monitoring@example.com
recipients:
- admin1@example.com
- admin2@example.com
'';
services.mail-quota-warning = {

View file

@ -263,8 +263,8 @@ def main():
args = parse_args()
config = load_config(args.config)
state = load_state()
interval_days = config.get("check_interval_days", 7)
threshold = config.get("quota_warning_threshold_percent", 80)
interval_days = get_config_value(config, "CHECK_INTERVAL_DAYS", "check_interval_days", 7, int)
threshold = get_config_value(config, "QUOTA_WARNING_THRESHOLD_PERCENT", "quota_warning_threshold_percent", 80, int)
# For thread-safe state updates
state_lock = threading.Lock()

View file

@ -1,4 +1,9 @@
{config, lib, pkgs, ...}:
{
config,
lib,
pkgs,
...
}:
let
cfg = config.services.mail-quota-warning;
@ -82,7 +87,8 @@ in
wants = [ "network-online.target" ];
environment = {
PYTHONUNBUFFERED = "1";
} // lib.mapAttrs (_: v: toString v) cfg.settings;
}
// lib.mapAttrs (_: v: toString v) cfg.settings;
serviceConfig = {
Type = "simple";
ExecStart = lib.getExe pkgs.mail-quota-warning;
@ -109,14 +115,21 @@ in
ProtectProc = "invisible";
ProtectSystem = "strict";
RemoveIPC = true;
RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ];
RestrictAddressFamilies = [
"AF_INET"
"AF_INET6"
];
RestrictNamespaces = true;
RestrictRealtime = true;
RestrictSUIDSGID = true;
SystemCallArchitectures = "native";
SystemCallFilter = [ "@system-service" "~@privileged" ];
SystemCallFilter = [
"@system-service"
"~@privileged"
];
UMask = "0077";
} // lib.optionalAttrs (cfg.secretFile != [ ]) {
}
// lib.optionalAttrs (cfg.secretFile != [ ]) {
EnvironmentFile = cfg.secretFile;
};
};
@ -138,4 +151,3 @@ in
};
}