diff --git a/hosts/challenger/backup.nix b/hosts/challenger/backup.nix index ce532ea..8315706 100644 --- a/hosts/challenger/backup.nix +++ b/hosts/challenger/backup.nix @@ -26,30 +26,43 @@ ]; }; in { - postgres = (localJob "postgres" [ "/var/backup/postgres" ]) // { - timerConfig.OnCalendar = "05:15"; # 2h after postgresqlBackup - }; - # Transmission _metadata_ - transmission = localJob "transmission" [ "/var/lib/transmission" ]; - - # Calibre metadata and books + # Calibre metadata and config calibre = localJob "calibre" [ "/var/lib/calibre-web" "/var/lib/calibre-server" + ]; + + media = localJob "media" [ + "/tank/media/music" + "/tank/media/books" + ]; + media-remote = cloudJob "media" [ + "/tank/media/music" "/tank/media/books" ] // { - pruneOpts = [ "--keep-daily 1" ]; + pruneOpts = [ "--keep-monthly 12" ]; }; - # Nextcloud data + # Nextcloud config and data nextcloud = localJob "nextcloud" [ "/tank/nextcloud" ]; nextcloud-remote = cloudJob "nextcloud" [ "/tank/nextcloud" ]; + postgres = (localJob "postgres" [ "/var/backup/postgres" ]) // { + timerConfig.OnCalendar = "05:15"; # 2h after postgresqlBackup + }; + postgres-remote = (cloudJob "postgres" [ "/var/backup/postgres" ]) // { + timerConfig.OnCalendar = "05:15"; # 2h after postgresqlBackup + }; + + # Transmission metadata/config + transmission = localJob "transmission" [ "/var/lib/transmission" ]; + # TODO: timemachine, komga }; sops.secrets."restic/calibre" = { }; + sops.secrets."restic/media" = { }; sops.secrets."restic/nextcloud" = { }; sops.secrets."restic/postgres" = { }; sops.secrets."restic/transmission" = { }; diff --git a/secrets/challenger/challenger.yaml b/secrets/challenger/challenger.yaml index dc3ed7b..e5a18c4 100644 --- a/secrets/challenger/challenger.yaml +++ b/secrets/challenger/challenger.yaml @@ -8,11 +8,8 @@ restic: postgres: ENC[AES256_GCM,data:AZv28LIbGC2oAKjbU1H4gaCZF28utJJFXlKNO/BkL0U=,iv:xOJCIoFGtnEqV80rmiBBMa3dMZnPjaDIce+MAZkGZdo=,tag:dLTwE004KGfP3z9EoMVCCw==,type:str] nextcloud: ENC[AES256_GCM,data:O7qT07ns9FodnZu63cPwBqHGslfMIafFvyPPrTrYEdk=,iv:fJ7A5gLThuVumnteL1P82Gq1EtiSAPGXoCZgzJKqVQs=,tag:Hp/kI3TeZQCaM+gP1W1i7w==,type:str] calibre: ENC[AES256_GCM,data:wAvhB303cUm0rJKwQ31pd8lYHJSlOzBW8BiCygF3JC8=,iv:kUFEiP8sTcaiAIW4QZ7ZfA4aqjJsIIA5mq+gVzgryaU=,tag:STHLWF+T4XeQIDSt4F63Lw==,type:str] + media: ENC[AES256_GCM,data:JwIX2r/ebE+LMS49s1xqbRjA8yfMRDEAnln5eN57L4o=,iv:zqxeEv7ogujMqBPZnRF7STDjVlKqMa1rGLjMY5iusgU=,tag:O9PofkyovSYH7qlX6r97DQ==,type:str] sops: - kms: [] - gcp_kms: [] - azure_kv: [] - hc_vault: [] age: - recipient: age1j43eqpnq5hy6zt3gmdtzdnne2yfvccd832kpt69qavst44leec6sj2l773 enc: | @@ -41,8 +38,7 @@ sops: QUFVam5VSkxLVmhsdU02eWtoWmdoeG8KXnixIU8SaD1DCe9Z1doBdwGs1sqv5k8W WLNGcfKXW4sMU712nYSz05SVl99sCJSzUMJFEQWjdVAaR9TRO6Qz8w== -----END AGE ENCRYPTED FILE----- - lastmodified: "2024-10-04T22:55:35Z" - mac: ENC[AES256_GCM,data:KQHfywMQ3WkmIW7UaLjAKkM5v4+1yagJik+63G2pSKCtbsCq1uFWSheeRIPObVfnsu3qUHoxq943jVR17krjnsIZIzXjr6f5SNMyNo0RCcnhvlWy/cKzVU0/7ut0TMd6ZJsCZyOBgJOSxc8i0G/wgRreMEGicwifI5m8KWSpBU0=,iv:1+98COoItw2PAlJtGBA4Qx7TmNRB++FqeKJnsF1/j6w=,tag:iHzWy5AnXBXxtGnqiTfNnA==,type:str] - pgp: [] + lastmodified: "2025-07-30T21:51:23Z" + mac: ENC[AES256_GCM,data:oVHx7fjXjqBVVPSP6Ei7BnOuRieaIpJNjTKbeP2tU7PDB7quhngEgb7K07dJvpAz7MB7dIkLx5e5oL408zy4xMHBHdTst4Qbzpieh0FmJ9LfueQs37IO2OaVL7HcWf4cTF1sV4o2CldGQoL/724s9kOB1wDGVz9/KDGCR/X2gSI=,iv:UP1k9GJ3oRqzNZxwEosaeIrncpE0Om4tI1YqLvLvweI=,tag:Ys/nMJ28Y3IbySiKj/qqHw==,type:str] unencrypted_suffix: _unencrypted - version: 3.8.1 + version: 3.10.2