mirror of
https://github.com/Stunkymonkey/nixos.git
synced 2025-09-13 14:02:02 +02:00
This commit is contained in:
parent
1a890597ff
commit
7e5d13ac3d
6 changed files with 35 additions and 30 deletions
|
@ -126,7 +126,8 @@ in
|
||||||
"/data/todo"
|
"/data/todo"
|
||||||
"/home/*/tmp"
|
"/home/*/tmp"
|
||||||
"/home/*/todo"
|
"/home/*/todo"
|
||||||
] ++ cfg.exclude;
|
]
|
||||||
|
++ cfg.exclude;
|
||||||
|
|
||||||
extraCreateArgs = [
|
extraCreateArgs = [
|
||||||
"--exclude-caches"
|
"--exclude-caches"
|
||||||
|
@ -145,31 +146,30 @@ in
|
||||||
inherit (cfg) doInit;
|
inherit (cfg) doInit;
|
||||||
compression = "auto,zstd";
|
compression = "auto,zstd";
|
||||||
|
|
||||||
postHook =
|
postHook = ''
|
||||||
''
|
if (( $exitStatus > 1 )); then
|
||||||
if (( $exitStatus > 1 )); then
|
''
|
||||||
''
|
+ lib.optionalString cfg.OnFailureNotification ''
|
||||||
+ lib.optionalString cfg.OnFailureNotification ''
|
# iterate over all logged in users
|
||||||
# iterate over all logged in users
|
for user in $(users); do
|
||||||
for user in $(users); do
|
sway_pid=$(${pkgs.procps}/bin/pgrep -x "sway" -u "$user")
|
||||||
sway_pid=$(${pkgs.procps}/bin/pgrep -x "sway" -u "$user")
|
if [ -n "$sway_pid" ]; then
|
||||||
if [ -n "$sway_pid" ]; then
|
# set environment variables
|
||||||
# set environment variables
|
export $(cat /proc/$sway_pid/environ | grep -z '^DBUS_SESSION_BUS_ADDRESS=' | tr -d '\0')
|
||||||
export $(cat /proc/$sway_pid/environ | grep -z '^DBUS_SESSION_BUS_ADDRESS=' | tr -d '\0')
|
export DISPLAY=:0
|
||||||
export DISPLAY=:0
|
# send notification via dbus: https://wiki.archlinux.org/title/Desktop_notifications#Bash
|
||||||
# send notification via dbus: https://wiki.archlinux.org/title/Desktop_notifications#Bash
|
${lib.getExe pkgs.sudo} --preserve-env=DBUS_SESSION_BUS_ADDRESS,DISPLAY -u $user ${lib.getExe pkgs.libnotify} -u critical "BorgBackup Failed!" "Run journalctl -u borgbackup-job* for more details."
|
||||||
${lib.getExe pkgs.sudo} --preserve-env=DBUS_SESSION_BUS_ADDRESS,DISPLAY -u $user ${lib.getExe pkgs.libnotify} -u critical "BorgBackup Failed!" "Run journalctl -u borgbackup-job* for more details."
|
echo "sent notification"
|
||||||
echo "sent notification"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
''
|
|
||||||
+ lib.optionalString (cfg.OnFailureMail != null) ''
|
|
||||||
journalctl -u borgbackup-job-hetzner.service --since "5 days ago" | ${pkgs.mailutils}/bin/mail -r "Administrator<root@buehler.rocks>" -s "Backup Error" server@buehler.rocks
|
|
||||||
echo "sent mail"
|
|
||||||
''
|
|
||||||
+ ''
|
|
||||||
fi
|
fi
|
||||||
'';
|
done
|
||||||
|
''
|
||||||
|
+ lib.optionalString (cfg.OnFailureMail != null) ''
|
||||||
|
journalctl -u borgbackup-job-hetzner.service --since "5 days ago" | ${pkgs.mailutils}/bin/mail -r "Administrator<root@buehler.rocks>" -s "Backup Error" server@buehler.rocks
|
||||||
|
echo "sent mail"
|
||||||
|
''
|
||||||
|
+ ''
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
|
||||||
# for mail sending
|
# for mail sending
|
||||||
readWritePaths = lib.optional (cfg.OnFailureMail != null) "/var/lib/postfix/queue/maildrop/";
|
readWritePaths = lib.optional (cfg.OnFailureMail != null) "/var/lib/postfix/queue/maildrop/";
|
||||||
|
|
|
@ -49,7 +49,8 @@ in
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
prometheus.enable = config.services.prometheus.enable;
|
prometheus.enable = config.services.prometheus.enable;
|
||||||
} // cfg.settings;
|
}
|
||||||
|
// cfg.settings;
|
||||||
};
|
};
|
||||||
|
|
||||||
prometheus.scrapeConfigs = [
|
prometheus.scrapeConfigs = [
|
||||||
|
|
|
@ -41,7 +41,8 @@ in
|
||||||
dialect = "sqlite";
|
dialect = "sqlite";
|
||||||
storage = "/var/lib/hedgedoc/hedgedoc.sqlite";
|
storage = "/var/lib/hedgedoc/hedgedoc.sqlite";
|
||||||
};
|
};
|
||||||
} // cfg.settings;
|
}
|
||||||
|
// cfg.settings;
|
||||||
};
|
};
|
||||||
|
|
||||||
prometheus = {
|
prometheus = {
|
||||||
|
|
|
@ -108,7 +108,8 @@ in
|
||||||
"esphome"
|
"esphome"
|
||||||
"shelly"
|
"shelly"
|
||||||
"prometheus"
|
"prometheus"
|
||||||
] ++ cfg.extraComponents;
|
]
|
||||||
|
++ cfg.extraComponents;
|
||||||
};
|
};
|
||||||
|
|
||||||
prometheus.scrapeConfigs = [
|
prometheus.scrapeConfigs = [
|
||||||
|
|
|
@ -33,7 +33,8 @@ in
|
||||||
inherit (cfg) mediaDir passwordFile;
|
inherit (cfg) mediaDir passwordFile;
|
||||||
settings = {
|
settings = {
|
||||||
PAPERLESS_OCR_LANGUAGE = "deu+eng";
|
PAPERLESS_OCR_LANGUAGE = "deu+eng";
|
||||||
} // cfg.settings;
|
}
|
||||||
|
// cfg.settings;
|
||||||
};
|
};
|
||||||
|
|
||||||
# monitoring is not really useful, because it only contains the http-worker infos -> skipped for now
|
# monitoring is not really useful, because it only contains the http-worker infos -> skipped for now
|
||||||
|
|
|
@ -43,7 +43,8 @@ in
|
||||||
settings = {
|
settings = {
|
||||||
ffmpeg.transcode = "disabled";
|
ffmpeg.transcode = "disabled";
|
||||||
server.externalDomain = "https://photos.${domain}";
|
server.externalDomain = "https://photos.${domain}";
|
||||||
} // cfg.settings;
|
}
|
||||||
|
// cfg.settings;
|
||||||
environment = {
|
environment = {
|
||||||
IMMICH_TELEMETRY_INCLUDE = "all";
|
IMMICH_TELEMETRY_INCLUDE = "all";
|
||||||
IMMICH_API_METRICS_PORT = toString (port + 1);
|
IMMICH_API_METRICS_PORT = toString (port + 1);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue