Compare commits

..

No commits in common. "7e5d13ac3dbfabf1ee4946196456becf3e329fd9" and "c49a17ad8890b25e55b16aa7a443e5c2741a1712" have entirely different histories.

7 changed files with 45 additions and 50 deletions

30
flake.lock generated
View file

@ -7,11 +7,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1753140376, "lastModified": 1752718651,
"narHash": "sha256-7lrVrE0jSvZHrxEzvnfHFE/Wkk9DDqb+mYCodI5uuB8=", "narHash": "sha256-PkaR0qmyP9q/MDN3uYa+RLeBA0PjvEQiM0rTDDBXkL8=",
"owner": "nix-community", "owner": "nix-community",
"repo": "disko", "repo": "disko",
"rev": "545aba02960caa78a31bd9a8709a0ad4b6320a5c", "rev": "d5ad4485e6f2edcc06751df65c5e16572877db88",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -41,11 +41,11 @@
"nixpkgs-lib": "nixpkgs-lib" "nixpkgs-lib": "nixpkgs-lib"
}, },
"locked": { "locked": {
"lastModified": 1753121425, "lastModified": 1751413152,
"narHash": "sha256-TVcTNvOeWWk1DXljFxVRp+E0tzG1LhrVjOGGoMHuXio=", "narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "644e0fc48951a860279da645ba77fe4a6e814c5e", "rev": "77826244401ea9de6e3bac47c2db46005e1f30b5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -222,11 +222,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1753122741, "lastModified": 1752666637,
"narHash": "sha256-nFxE8lk9JvGelxClCmwuJYftbHqwnc01dRN4DVLUroM=", "narHash": "sha256-P8J72psdc/rWliIvp8jUpoQ6qRDlVzgSDDlgkaXQ0Fw=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "cc66fddc6cb04ab479a1bb062f4d4da27c936a22", "rev": "d1bfa8f6ccfb5c383e1eba609c1eb67ca24ed153",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -237,11 +237,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1753345091, "lastModified": 1752620740,
"narHash": "sha256-CdX2Rtvp5I8HGu9swBmYuq+ILwRxpXdJwlpg8jvN4tU=", "narHash": "sha256-f3pO+9lg66mV7IMmmIqG4PL3223TYMlnlw+pnpelbss=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "3ff0e34b1383648053bba8ed03f201d3466f90c9", "rev": "32a4e87942101f1c9f9865e04dc3ddb175f5f32e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -294,11 +294,11 @@
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1753429684, "lastModified": 1752687322,
"narHash": "sha256-9h7+4/53cSfQ/uA3pSvCaBepmZaz/dLlLVJnbQ+SJjk=", "narHash": "sha256-RKwfXA4OZROjBTQAl9WOZQFm7L8Bo93FQwSJpAiSRvo=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "7fd36ee82c0275fb545775cc5e4d30542899511d", "rev": "6e987485eb2c77e5dcc5af4e3c70843711ef9251",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -126,8 +126,7 @@ in
"/data/todo" "/data/todo"
"/home/*/tmp" "/home/*/tmp"
"/home/*/todo" "/home/*/todo"
] ] ++ cfg.exclude;
++ cfg.exclude;
extraCreateArgs = [ extraCreateArgs = [
"--exclude-caches" "--exclude-caches"
@ -146,30 +145,31 @@ 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 '' ''
# iterate over all logged in users + lib.optionalString cfg.OnFailureNotification ''
for user in $(users); do # iterate over all logged in users
sway_pid=$(${pkgs.procps}/bin/pgrep -x "sway" -u "$user") for user in $(users); do
if [ -n "$sway_pid" ]; then sway_pid=$(${pkgs.procps}/bin/pgrep -x "sway" -u "$user")
# set environment variables if [ -n "$sway_pid" ]; then
export $(cat /proc/$sway_pid/environ | grep -z '^DBUS_SESSION_BUS_ADDRESS=' | tr -d '\0') # set environment variables
export DISPLAY=:0 export $(cat /proc/$sway_pid/environ | grep -z '^DBUS_SESSION_BUS_ADDRESS=' | tr -d '\0')
# send notification via dbus: https://wiki.archlinux.org/title/Desktop_notifications#Bash export DISPLAY=:0
${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." # send notification via dbus: https://wiki.archlinux.org/title/Desktop_notifications#Bash
echo "sent notification" ${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"
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/";

View file

@ -49,8 +49,7 @@ in
]; ];
}; };
prometheus.enable = config.services.prometheus.enable; prometheus.enable = config.services.prometheus.enable;
} } // cfg.settings;
// cfg.settings;
}; };
prometheus.scrapeConfigs = [ prometheus.scrapeConfigs = [

View file

@ -41,8 +41,7 @@ in
dialect = "sqlite"; dialect = "sqlite";
storage = "/var/lib/hedgedoc/hedgedoc.sqlite"; storage = "/var/lib/hedgedoc/hedgedoc.sqlite";
}; };
} } // cfg.settings;
// cfg.settings;
}; };
prometheus = { prometheus = {

View file

@ -108,8 +108,7 @@ in
"esphome" "esphome"
"shelly" "shelly"
"prometheus" "prometheus"
] ] ++ cfg.extraComponents;
++ cfg.extraComponents;
}; };
prometheus.scrapeConfigs = [ prometheus.scrapeConfigs = [

View file

@ -33,8 +33,7 @@ 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

View file

@ -43,8 +43,7 @@ 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);