summaryrefslogtreecommitdiff
path: root/config/storage.nix
blob: 433e88e4cb28c6fb9ede0dc634a513feff16a8fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
{ pkgs, ... }:
{
  boot.supportedFilesystems = [ "nfs" ];
  fileSystems."/backups" = {
    device = "ds411.aristote.mesh:/volume2/hephaistos";
    fsType = "nfs";
    options = [
      # lazy mounting
      "x-systemd.automount"
      "noauto"
      # sleeping
      "x-systemd.idle-timeout=600"
    ];
  };

  services.borgbackup.jobs.srv = {
    paths = "/srv";
    exclude = [ ];
    repo = "/backups/srv";
    doInit = false;
    encryption = {
      mode = "repokey";
      passCommand = "cat /etc/borg/passphrase";
    };
    compression = "auto,lzma";
    startAt = "daily";
    prune.keep.daily = 7;
  };
  systemd.services.borgbackup-job-srv = {
    personal.monitor = true;
    # Check network connectivity
    path = [ pkgs.unixtools.ping ];
    preStart = "ping -c 1 ds411.aristote.mesh || kill -s SIGUSR1 $$";
    unitConfig = {
      StartLimitIntervalSec = 300;
      StartLimitBurst = 5;
    };
  };
}