mirror of
https://github.com/Stunkymonkey/nixos.git
synced 2025-09-13 22:12:03 +02:00
Compare commits
2 commits
c49a17ad88
...
7e5d13ac3d
Author | SHA1 | Date | |
---|---|---|---|
![]() |
7e5d13ac3d | ||
![]() |
1a890597ff |
7 changed files with 50 additions and 45 deletions
30
flake.lock
generated
30
flake.lock
generated
|
@ -7,11 +7,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1752718651,
|
"lastModified": 1753140376,
|
||||||
"narHash": "sha256-PkaR0qmyP9q/MDN3uYa+RLeBA0PjvEQiM0rTDDBXkL8=",
|
"narHash": "sha256-7lrVrE0jSvZHrxEzvnfHFE/Wkk9DDqb+mYCodI5uuB8=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "d5ad4485e6f2edcc06751df65c5e16572877db88",
|
"rev": "545aba02960caa78a31bd9a8709a0ad4b6320a5c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -41,11 +41,11 @@
|
||||||
"nixpkgs-lib": "nixpkgs-lib"
|
"nixpkgs-lib": "nixpkgs-lib"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751413152,
|
"lastModified": 1753121425,
|
||||||
"narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=",
|
"narHash": "sha256-TVcTNvOeWWk1DXljFxVRp+E0tzG1LhrVjOGGoMHuXio=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "77826244401ea9de6e3bac47c2db46005e1f30b5",
|
"rev": "644e0fc48951a860279da645ba77fe4a6e814c5e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -222,11 +222,11 @@
|
||||||
},
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1752666637,
|
"lastModified": 1753122741,
|
||||||
"narHash": "sha256-P8J72psdc/rWliIvp8jUpoQ6qRDlVzgSDDlgkaXQ0Fw=",
|
"narHash": "sha256-nFxE8lk9JvGelxClCmwuJYftbHqwnc01dRN4DVLUroM=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "d1bfa8f6ccfb5c383e1eba609c1eb67ca24ed153",
|
"rev": "cc66fddc6cb04ab479a1bb062f4d4da27c936a22",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -237,11 +237,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1752620740,
|
"lastModified": 1753345091,
|
||||||
"narHash": "sha256-f3pO+9lg66mV7IMmmIqG4PL3223TYMlnlw+pnpelbss=",
|
"narHash": "sha256-CdX2Rtvp5I8HGu9swBmYuq+ILwRxpXdJwlpg8jvN4tU=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "32a4e87942101f1c9f9865e04dc3ddb175f5f32e",
|
"rev": "3ff0e34b1383648053bba8ed03f201d3466f90c9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -294,11 +294,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1752687322,
|
"lastModified": 1753429684,
|
||||||
"narHash": "sha256-RKwfXA4OZROjBTQAl9WOZQFm7L8Bo93FQwSJpAiSRvo=",
|
"narHash": "sha256-9h7+4/53cSfQ/uA3pSvCaBepmZaz/dLlLVJnbQ+SJjk=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "6e987485eb2c77e5dcc5af4e3c70843711ef9251",
|
"rev": "7fd36ee82c0275fb545775cc5e4d30542899511d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
@ -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