reformat, fix load env vars, update README
This commit is contained in:
parent
9a76430181
commit
e658def798
3 changed files with 159 additions and 126 deletions
23
README.md
23
README.md
|
|
@ -44,7 +44,28 @@ Add this to your `configuration.nix` file
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
environment.etc."eintopf-radar-sync-secrets.yml".text = ''
|
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 = {
|
services.mail-quota-warning = {
|
||||||
|
|
|
||||||
|
|
@ -263,8 +263,8 @@ def main():
|
||||||
args = parse_args()
|
args = parse_args()
|
||||||
config = load_config(args.config)
|
config = load_config(args.config)
|
||||||
state = load_state()
|
state = load_state()
|
||||||
interval_days = config.get("check_interval_days", 7)
|
interval_days = get_config_value(config, "CHECK_INTERVAL_DAYS", "check_interval_days", 7, int)
|
||||||
threshold = config.get("quota_warning_threshold_percent", 80)
|
threshold = get_config_value(config, "QUOTA_WARNING_THRESHOLD_PERCENT", "quota_warning_threshold_percent", 80, int)
|
||||||
|
|
||||||
# For thread-safe state updates
|
# For thread-safe state updates
|
||||||
state_lock = threading.Lock()
|
state_lock = threading.Lock()
|
||||||
|
|
|
||||||
24
module.nix
24
module.nix
|
|
@ -1,4 +1,9 @@
|
||||||
{config, lib, pkgs, ...}:
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
|
|
||||||
cfg = config.services.mail-quota-warning;
|
cfg = config.services.mail-quota-warning;
|
||||||
|
|
@ -82,7 +87,8 @@ in
|
||||||
wants = [ "network-online.target" ];
|
wants = [ "network-online.target" ];
|
||||||
environment = {
|
environment = {
|
||||||
PYTHONUNBUFFERED = "1";
|
PYTHONUNBUFFERED = "1";
|
||||||
} // lib.mapAttrs (_: v: toString v) cfg.settings;
|
}
|
||||||
|
// lib.mapAttrs (_: v: toString v) cfg.settings;
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "simple";
|
Type = "simple";
|
||||||
ExecStart = lib.getExe pkgs.mail-quota-warning;
|
ExecStart = lib.getExe pkgs.mail-quota-warning;
|
||||||
|
|
@ -109,14 +115,21 @@ in
|
||||||
ProtectProc = "invisible";
|
ProtectProc = "invisible";
|
||||||
ProtectSystem = "strict";
|
ProtectSystem = "strict";
|
||||||
RemoveIPC = true;
|
RemoveIPC = true;
|
||||||
RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ];
|
RestrictAddressFamilies = [
|
||||||
|
"AF_INET"
|
||||||
|
"AF_INET6"
|
||||||
|
];
|
||||||
RestrictNamespaces = true;
|
RestrictNamespaces = true;
|
||||||
RestrictRealtime = true;
|
RestrictRealtime = true;
|
||||||
RestrictSUIDSGID = true;
|
RestrictSUIDSGID = true;
|
||||||
SystemCallArchitectures = "native";
|
SystemCallArchitectures = "native";
|
||||||
SystemCallFilter = [ "@system-service" "~@privileged" ];
|
SystemCallFilter = [
|
||||||
|
"@system-service"
|
||||||
|
"~@privileged"
|
||||||
|
];
|
||||||
UMask = "0077";
|
UMask = "0077";
|
||||||
} // lib.optionalAttrs (cfg.secretFile != [ ]) {
|
}
|
||||||
|
// lib.optionalAttrs (cfg.secretFile != [ ]) {
|
||||||
EnvironmentFile = cfg.secretFile;
|
EnvironmentFile = cfg.secretFile;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -138,4 +151,3 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue