79 lines
2.6 KiB
Nix
79 lines
2.6 KiB
Nix
{ inputs, config, pkgs, ... }:
|
|
let
|
|
scripts = {
|
|
disk_check = {
|
|
when = "*-*-* *:00:00";
|
|
script = toString (pkgs.writeShellScript "script" ''
|
|
REPORT_EMAIL=email@thomasave.be
|
|
ZPOOL_STATUS=$(zpool status -x)
|
|
if [ "$ZPOOL_STATUS" = "all pools are healthy" ] || [ "$ZPOOL_STATUS" = "no pools available" ]
|
|
then
|
|
printf 0 > /var/db/zpool.status
|
|
else
|
|
if [ "$(cat /var/db/zpool.status)" -eq 0 ]
|
|
then
|
|
zpool status | mail -s "ZPOOL NOT HEALTHY" $REPORT_EMAIL
|
|
printf 1 > /var/db/zpool.status
|
|
fi
|
|
fi
|
|
'');
|
|
};
|
|
restic_etienne = {
|
|
when = "*-*-* 01:00:00";
|
|
script = toString (pkgs.writeShellScript "script" ''
|
|
/Backup/Restic/Etienne/run.sh
|
|
${pkgs.curl}/bin/curl https://uptime.thomasave.be/api/push/zGPrOi0NsJ
|
|
'');
|
|
};
|
|
restic_magda_and_etienne = {
|
|
when = "*-*-* 03:00:00";
|
|
script = toString (pkgs.writeShellScript "script" ''
|
|
/Backup/Restic/Magda\ and\ Etienne/run.sh
|
|
${pkgs.curl}/bin/curl https://uptime.thomasave.be/api/push/yvBuDgduDd
|
|
'');
|
|
};
|
|
restic_backblaze = {
|
|
when = "*-*-* 02:00:00";
|
|
script = toString (pkgs.writeShellScript "script" ''
|
|
/Backup/Restic/BackBlaze/run.sh
|
|
${pkgs.curl}/bin/curl https://uptime.thomasave.be/api/push/LVruVYTwTn
|
|
'');
|
|
};
|
|
mail_sync = {
|
|
when = "*-*-* 04:00:00";
|
|
script = toString (pkgs.writeShellScript "script" ''
|
|
cd /home/server/Containers/Mails && docker compose up sync-etienne sync-magda
|
|
${pkgs.curl}/bin/curl https://uptime.thomasave.be/api/push/eEIPVGyrAx
|
|
'');
|
|
};
|
|
};
|
|
in
|
|
{
|
|
home.username = "server";
|
|
home.homeDirectory = "/home/server";
|
|
nix = {
|
|
package = pkgs.nix;
|
|
settings.use-xdg-base-directories = true;
|
|
};
|
|
|
|
xdg.enable = true;
|
|
imports = [
|
|
(import ./utils/common.nix { inherit inputs config pkgs; })
|
|
(import ./utils/services.nix { inherit pkgs; scripts = scripts; })
|
|
./ssh
|
|
];
|
|
|
|
programs.ssh.matchBlocks."*".identityFile = "/home/server/.secrets/SSH/Vault/id_ed25519";
|
|
|
|
home.sessionVariables = {
|
|
NIX_PATH = "${config.xdg.stateHome}/nix/profiles/channels/";
|
|
LANG = "en_US.UTF-8";
|
|
XDG_RUNTIME_DIR = "/run/user/$(id -u)";
|
|
};
|
|
|
|
programs.zsh.initExtra = pkgs.lib.mkForce ''
|
|
LOCAL_SEARCH_DIRS=(~/.dotfiles/ ~/Storage/Thomas/ ~/Storage/Etienne/ ~/Storage/Magda\ and\ Etienne/ ~/Containers/)
|
|
REMOTE_SEARCH_DIRS=()
|
|
'';
|
|
}
|