configurations for my servers and desktops
nix
nixos
flake
dots
dotfiles
1{config, ...}: {
2 age.secrets.restic = {
3 file = ../../../secrets/restic.age;
4 owner = "root";
5 group = "root";
6 };
7 age.secrets.rclone-onedrive = {
8 file = ../../../secrets/rclone-onedrive.age;
9 owner = "root";
10 group = "root";
11 };
12
13 services.restic = {
14 server = {
15 enable = true;
16 dataDir = "/mnt/backup/restic";
17 extraFlags = ["--no-auth"];
18 };
19 backups = {
20 "bluepill" = {
21 repository = "/mnt/backup/restic/devin";
22 passwordFile = config.age.secrets.restic.path;
23 initialize = true;
24 timerConfig = {
25 OnCalendar = "hourly";
26 Persistent = true;
27 };
28 paths = [
29 "/etc/secrets"
30 "/etc/age.key"
31 "/home"
32 "/srv"
33 "/var/lib"
34 ];
35 exclude = [
36 "/var/lib/transmission"
37 ];
38 extraBackupArgs = ["--skip-if-unchanged" "--no-scan" "--one-file-system" "--exclude-caches" "--tag scheduled"];
39 pruneOpts = ["--keep-last 4" "--keep-hourly 24" "--keep-daily 14" "--keep-weekly 4" "--keep-monthly 6"];
40 };
41 "bluepill-offsite" = {
42 repository = "rclone:onedrive:/backup/restic/devin";
43 passwordFile = config.age.secrets.restic.path;
44 rcloneConfigFile = config.age.secrets.rclone-onedrive.path;
45 initialize = true;
46 timerConfig = {
47 OnCalendar = "daily";
48 Persistent = true;
49 };
50 paths = [
51 "/etc/secrets"
52 "/etc/age.key"
53 "/home"
54 "/srv"
55 "/var/lib"
56 ];
57 exclude = [
58 "/var/lib/transmission"
59 ];
60 extraBackupArgs = ["--skip-if-unchanged" "--no-scan" "--one-file-system" "--exclude-caches" "--tag scheduled"];
61 pruneOpts = ["--keep-last 4" "--keep-hourly 24" "--keep-daily 14" "--keep-weekly 4" "--keep-monthly 6"];
62 };
63 };
64 };
65}