2020-11-30 02:03:58 +01:00
|
|
|
{ config, lib, pkgs, ... }:
|
|
|
|
|
|
|
|
let
|
|
|
|
stateDir = "/var/lib/dnsmasq";
|
|
|
|
blocklist = "${stateDir}/dnsmasq.blacklist.txt";
|
|
|
|
|
|
|
|
in {
|
2020-12-31 04:29:38 +01:00
|
|
|
# PostgreSQL daily backups
|
|
|
|
services.postgresqlBackup = {
|
|
|
|
enable = true;
|
|
|
|
backupAll = true;
|
|
|
|
location = "/vault/backups/zion/databases";
|
|
|
|
startAt = "*-*-* 05:15:00";
|
|
|
|
};
|
|
|
|
|
2020-11-30 02:03:58 +01:00
|
|
|
# Fetch hosts-blocklists daily
|
|
|
|
systemd.services.download-dns-blocklist = {
|
|
|
|
description = "Download hosts-blocklists";
|
|
|
|
wantedBy = [ "default.target" ];
|
|
|
|
path = with pkgs; [ curl ];
|
|
|
|
script =
|
|
|
|
"curl -L https://github.com/notracking/hosts-blocklists/raw/master/dnsmasq/dnsmasq.blacklist.txt -o ${blocklist}";
|
2021-04-15 12:34:38 +02:00
|
|
|
serviceConfig.Type = "oneshot";
|
2020-11-30 02:03:58 +01:00
|
|
|
postStop = ''
|
|
|
|
chown -R dnsmasq ${stateDir}
|
|
|
|
systemctl restart dnsmasq
|
|
|
|
'';
|
2022-03-21 16:25:41 +01:00
|
|
|
after = [ "wireguard-wg0.service" ];
|
2021-04-29 16:47:47 +02:00
|
|
|
startAt = "02:00:00";
|
2020-11-30 02:03:58 +01:00
|
|
|
};
|
|
|
|
|
2021-05-15 16:51:46 +02:00
|
|
|
# Enable SATA HAT
|
|
|
|
systemd.services.sata-hat = {
|
|
|
|
description = "Enable software support for SATA Hat";
|
|
|
|
wantedBy = [ "zfs-import.target" ];
|
|
|
|
script = ''
|
|
|
|
${pkgs.bash}/bin/bash -c "/etc/nixos/scripts/SATA-hat.sh on"
|
|
|
|
'';
|
|
|
|
serviceConfig = {
|
|
|
|
Type = "oneshot";
|
|
|
|
RemainAfterExit = "yes";
|
|
|
|
ExecStop = ''
|
|
|
|
${pkgs.bash}/bin/bash -c "/etc/nixos/scripts/SATA-hat.sh off"
|
|
|
|
'';
|
2020-11-30 02:03:58 +01:00
|
|
|
};
|
2021-07-28 12:47:21 +02:00
|
|
|
before = [ "zfs-import.target" "zfs-import-vault.service" "umount.target" ];
|
2021-05-15 16:51:46 +02:00
|
|
|
requires = [ "systemd-udev-settle.service" ];
|
|
|
|
after = [ "systemd-udev-settle.service" ];
|
2021-07-28 12:47:21 +02:00
|
|
|
conflicts = [ "umount.target" ];
|
2020-11-30 02:03:58 +01:00
|
|
|
};
|
2021-05-21 01:27:27 +02:00
|
|
|
|
|
|
|
# HACK: restart services dependent on ZFS afer mount
|
|
|
|
systemd.services.restart-services-mount = {
|
|
|
|
description = "Restart services after the ZFS dataset is mounted";
|
|
|
|
wantedBy = [ "default.target" ];
|
|
|
|
script = ''
|
|
|
|
sleep 5
|
|
|
|
systemctl restart syncthing
|
|
|
|
systemctl restart radicale
|
|
|
|
systemctl restart gitea
|
|
|
|
'';
|
|
|
|
serviceConfig.Type = "oneshot";
|
|
|
|
requires = [ "sata-hat.service" ];
|
|
|
|
after = [ "vault.mount" ];
|
|
|
|
};
|
2021-05-24 21:44:00 +02:00
|
|
|
|
|
|
|
# Idle HDDs when not used
|
|
|
|
systemd.services.hd-idle = {
|
|
|
|
description = "Idle HDDs when not in use";
|
|
|
|
wantedBy = [ "default.target" ];
|
|
|
|
path = with pkgs; [ hd-idle ];
|
|
|
|
script = "${pkgs.hd-idle}/bin/hd-idle";
|
|
|
|
serviceConfig.Type = "simple";
|
|
|
|
requires = [ "sata-hat.service" ];
|
|
|
|
after = [ "vault.mount" ];
|
|
|
|
};
|
2020-11-30 02:03:58 +01:00
|
|
|
}
|