diff --git a/hosts/genesis/home-assistant.nix b/hosts/genesis/home-assistant.nix index 6e71d1d..538ef0a 100755 --- a/hosts/genesis/home-assistant.nix +++ b/hosts/genesis/home-assistant.nix @@ -137,12 +137,10 @@ greg.backup.jobs.zwave = { src = "/var/lib/zwave"; dest = "zwave"; - id = "zwave-rsnap"; }; greg.backup.jobs.hass-backup = { src = "/var/lib/hass"; dest = "hass"; - id = "hass-rsnap"; }; } diff --git a/hosts/hosea/bitcoin.nix b/hosts/hosea/bitcoin.nix index 05915b9..6bda509 100644 --- a/hosts/hosea/bitcoin.nix +++ b/hosts/hosea/bitcoin.nix @@ -25,7 +25,6 @@ in clightning = { src = config.services.clightning.replication.local.directory; dest = "hosea-clightning"; - id = "clightning"; }; }; diff --git a/hosts/linode/nextcloud.nix b/hosts/linode/nextcloud.nix index a309538..cc737d0 100644 --- a/hosts/linode/nextcloud.nix +++ b/hosts/linode/nextcloud.nix @@ -1,4 +1,9 @@ -{ config, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: { age.secrets.nextcloudadmin.file = ../../secrets/nextcloudadmin.age; @@ -33,5 +38,19 @@ greg.backup.jobs.nextcloud-bkup = { src = "/var/lib/nextcloud"; dest = "nextcloud-backup"; + pre = lib.getExe ( + pkgs.writeShellApplication { + name = "nextcloud-backup-pre"; + runtimeInputs = [ config.services.nextcloud.occ ]; + text = "nextcloud-occ maintenance:mode --on"; + } + ); + post = lib.getExe ( + pkgs.writeShellApplication { + name = "nextcloud-backup-post"; + runtimeInputs = [ config.services.nextcloud.occ ]; + text = "nextcloud-occ maintenance:mode --off"; + } + ); }; } diff --git a/modules/nixos/backup.nix b/modules/nixos/backup.nix index 6f33806..98a78c3 100644 --- a/modules/nixos/backup.nix +++ b/modules/nixos/backup.nix @@ -9,7 +9,14 @@ let makeSyncFolders = _: job: { inherit (job) user; + backupCleanupCommand = lib.optionalString (job.post != "") job.post; + backupPrepareCommand = lib.optionalString (job.pre != "") job.pre; + extraOptions = [ + "--insecure-tls" + "--insecure-no-password" + ]; initialize = true; + environmentFile = config.age.secrets.restic-env.path; passwordFile = config.age.secrets.restic-pw.path; paths = [ job.src ]; pruneOpts = [ @@ -17,7 +24,7 @@ let "--keep-weekly 5" "--keep-monthly 12" ]; - repository = "rest:nas1.shire-zebra.ts.net:30248/${job.dest}"; + repository = "rest:https://nas1.shire-zebra.ts.net:30248/${job.dest}"; }; in with lib; @@ -46,6 +53,16 @@ with lib; default = "root"; description = "User to run backup as - defaults to root"; }; + + pre = mkOption { + type = types.str; + default = ""; + }; + + post = mkOption { + type = types.str; + default = ""; + }; }; } ) diff --git a/secrets/restic-env.age b/secrets/restic-env.age index d3a1d2d..39778f5 100644 --- a/secrets/restic-env.age +++ b/secrets/restic-env.age @@ -1,39 +1,39 @@ age-encryption.org/v1 --> ssh-ed25519 64uajw Ewg5eQIXzG1qM7mNbhEIUIs+OLZD7+i/IRkKyStDNC0 -yYfXIZKW4pyU3STsjZbKWG5XCQjpiOg9SYXDH/PoQEc --> ssh-ed25519 oyEmTw lDC3PWUfz7ejnZdjEEod2HkPj4L6qJ0A3c9tBGOjMzo -aiGSnwcDeJqDHhte+DO3aUDpFDtZX9JhRVMIc/rvKI0 --> ssh-ed25519 mOmPfg CV4w75sfNgoaVEOfHtfdUE//pRK90N6Fe6P+psqM12E -opufb+AidJt2+zRIlxM9FDsHFlvDaC1MUEQYOFQ/03g --> ssh-ed25519 YJiRbw UN4pZVqUPRKILbDQvXbl2NS+PfQhbz16VenR7ZqODg0 -fFuJo2ruH5+JyLkcSrlbsQyoRHz7I2qV2JtV2a0BNBI --> ssh-ed25519 aY2AXA GOPXUrd+z6aGnYaB8Yy+torLm6/Cl8Oc464UMO3PxAg -s/3dZm12hV/sCfV+PYQE6NcLbhj9WxuTZDMjGs3NUVU --> ssh-ed25519 xNtnoA mmo3c8KukkPPuAs8ivBXWTl/YjGci2dSYDjwPHF1dFU -zxoRSVtlrA1wxsZSqMe/g5l614q/46aS6efCe0tXiCE --> ssh-ed25519 AQhf1g hclpuHQVYUDRg3dJV5hDDIN34MhoZYkntKeXKQFbFm8 -ZiTJ4BG5+JLcCEc7rlc5yceIJAO/WQQHp10NKqzmfB4 --> ssh-ed25519 B8wa7Q T/H2CRjsHWI6msKS02gUIZr0vqa/w0AP0lI4tEXUbVY -MO6A+ifsqnfpd9Dt7WUlFRbyXGi/M1nHiTn1p5+fqso --> ssh-ed25519 8UnW5Q IjtkN3m/G4PcFWR5Mli3h9rTdjukRfvGZX203Cb45FI -SBABmggmxTh0IJ36rxitTMz7hylWMrmKwCVMXiU20Wk --> ssh-ed25519 0/WsKg +LrsikPKc4Jgd9pV+43TT2FDeG6QeGT1RGLhhsd0KxQ -LyW1q6pXCDf25dghnmvTrYZl5zVyJoxw+ZSLPjE/LQs --> ssh-ed25519 Nl/5yA J1fk01LgEQdtLqsmKvlUk5f1dQGPBsMv0N7/QsbQYA4 -91l7hzj0v8w2UC8gbyyKjpkTPk+4ZcQJy7ZRkk5vXsY --> ssh-ed25519 GdLgCQ cjOoJLTsSaiqov21M2iBSys++aQGfMzswmeJxl0dtg8 -dSTAbAzuNXtdFyN6T/YWEwT0asrG9uayFMESPpY10Do --> ssh-ed25519 tOH/HQ 1DPUq9Ef6ENEvWX4cSFkXq8KoXhprK7gLc1HORDEcys -RWDaxcbXnvXwqntWEv9WJ/fmw8A9WlChGLd/0EFRBSc --> ssh-ed25519 FpzvfQ zJsqgeZSk61DPoJL0du/m2XppDKvmTw9c8h+RXQGg30 -T7z2B/LREWRbebArcZrfgACyZjlLATdodF6c2XBC/uc --> ssh-ed25519 kdPvzQ CBVyfDzdq4WSg+2a6tKsK7IXN5oyPbsH4ObB1daLRGA -W/D33JgAphkQtkkF/6jAKPYOialqVHT7w+5Aly3v+ME --> ssh-ed25519 onmXpg nuCsyliwCeUWG9FIxltmf0YPqmKinQ9q04TLYyQIkQI -CeHPwXmbsAUAoejyRg2yDgbJZLIMwwXtlX1KJzmnSHs --> ssh-ed25519 CnhD0g RET0yPo/uOqifqTjYjFpYhuSrgRRgc00oywq1AkZSUI -Z+FNTt7KoWk/qQGqcqSJO//+Pa6+L/quGn0a2/EUmFA --> ssh-ed25519 4ep2UA V+3GuIC9vXloW0FB7TOvKKmKsbGD6ROL3z84vrH6DwU -j0DeGO3jXGLLDGck3kEPeCu8SE2oGcFaRQnLdHanFEc ---- +kvw9Qfn56wQsY30bZ5CfE2/FvEKfph0S2148IglJt4 -JKŁX Dp=Y_7SJ`1c/4׎5=𻻲P[cLs.^OI@BDQE$Dؙ]`>B*Ha2a *7LJd \ No newline at end of file +-> ssh-ed25519 64uajw xMCV1uHiwk2s83vNDmNRQtszWxG0elyWmFpJyKF7dyE +pWwLY7pOkx+SbunNzpNVkGWNvThUY9Kd7iCNsf8DFxo +-> ssh-ed25519 oyEmTw NFreBngEA4Hs5RGSXJA9eWyC+k4nYzax51m9uQDGxRs +n8/QT7nheKFK0FVEefaUjmc2YQsUwJwRWRCMrF/Of48 +-> ssh-ed25519 mOmPfg MEMstFCiUrYvfuSl7O3DbSsZ/TH7LGlvI3VEBhliJn0 +JiAllPT8Vrrk3VvzpWIISh1LBx6CaEEICaGHbP5J1eg +-> ssh-ed25519 YJiRbw fOv0GutPkOTG4JSUrFoFrDRy3KEaGbmyLSJi3Qo/uVQ +dDY4eOArLCdfzx3H8xSCRcxHfw8PHc1iMsrgyiUexM4 +-> ssh-ed25519 aY2AXA iKmeIX4giuXtyu+H2elcdpLcf5fbQVEOjTzuGkIX8V0 +W8liPVNdgrgOdFr1D/jI3pFrxA+vzEPYlY1hnjHq1Q8 +-> ssh-ed25519 xNtnoA 0Scb7978OxwSh3Oc0s1wkX3GgDHT5iIp46Lb2wNggRc +oixJJfjMnztzntmFNOJsa0iJ+USuITKMYzbsmzVe8Aw +-> ssh-ed25519 AQhf1g x4tuPyM+aMU52YE9IgKKwCa6iN1rzuAUWON9kbDSNDE +CLiT/7bQE44JWrgJpRi9rp+ZxhRP/34cVU0mA8OVS4k +-> ssh-ed25519 B8wa7Q 8ZR3idfNM6X74gK4LZLm5VblQ/ceBG3eDCrnKRk1MzQ +OkYDODBQ8/nY80qu4CMgNL6DrvpCMgLe3foxTTZbGl8 +-> ssh-ed25519 8UnW5Q ro+1M6W5gzZMJRI38VQhiwvUonSBiYvW1+Pe3KHifHU +tVHVC+xcgYG9yqFvY853VXAu913+2G80oYdJHc8vTyQ +-> ssh-ed25519 0/WsKg UpHvP87FdyLX2grLl3aLwUoK3T9ohsMN7HgyAkEp/zA +xzTtsQfEYh3F+DqO76tNZNWupF8TwwsuiqRb5FlbCF8 +-> ssh-ed25519 Nl/5yA F1e6LCghJTL6w2LR60cXOuXx7TslubVkhNTjILT9NxM +D2wt5laJV575v7iW1MlQgNRrJNVmf89w+FJiCqfgHb8 +-> ssh-ed25519 GdLgCQ gap9KcQwvkt3QMMuQY5ant6SSHEQyfwRTLcuoFxh4gk +V7M97uT4NIDL5cZDkGDQXnlQC+BjPC/ibF8w9IMOPno +-> ssh-ed25519 tOH/HQ 0t/AK80wx9bvGdNlZ8BUUwA0vAB27ajwi22snpcZKDo +0cFKSEAsQoCAVedOFZjNsxHZvLQKF53n4ltn3WlY2WE +-> ssh-ed25519 FpzvfQ iUMGpA4zfdodvKZsKmUiG4UB0dBaLtDEUoEghCF5SD8 +FDp9+CN035AN0QelGGiKfpvtqg9TZe75z3Clm+Acx+s +-> ssh-ed25519 kdPvzQ pI2kKHVuVhCv3fvJX064PFO7mKGeZOR9ur0GcAD+byg +X7FlMLyHzcwnb1NqP3XJEM36x4UWzRyim/J43O0Xz6s +-> ssh-ed25519 onmXpg mje9jM5JkVkaflDUvAs/TLpE1c4QDdQpz3AuOFiJoSc +YZ/jyd/5VPLaj4SYtcDivOq78okQtfIpydVQ8JZjkWM +-> ssh-ed25519 CnhD0g vQiUwGRgTmr9iqR9J0BpivLm/sHy7CDK9ho8iVFoXzA +nvSuNyiyC2MuD24UOElUbacM/DudgXA/hXZbrT3hbp8 +-> ssh-ed25519 4ep2UA UnqHhlPHdqtnLIy/WTxDALUIXVuyvoaKue1dBr8rwXM +nIlLZYRq8FxOBaUMBvCh/20RuzLTy/66xTcay8PnrVQ +--- mxVIwN+chR3Laf2ALk3gjAhOTjxC8TrfhTy7VAaUTNI +eaWSV> t/_ז B{g(wmRe\\ E&NR7)hf@M;n"D+hUQ'Í౻VTUiԵ$3ZJT8 \ No newline at end of file