configurations for my servers and desktops
nix nixos flake dots dotfiles
at main 65 lines 1.9 kB view raw
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}