{ pkgs, config, ... }: let vars = import ../../vars.nix; arionPath = "/home/${vars.user}/.setup/hosts/franz/arion"; in { systemd.timers."restic-cron" = { wantedBy = ["timers.target"]; timerConfig = { OnBootSec = "5m"; OnUnitActiveSec = "5m"; Unit = "restic-cron.service"; }; }; systemd.services."restic-cron" = { script = '' set -eu ${pkgs.autorestic}/bin/autorestic -c /home/ghoscht/.autorestic.yml --restic-bin ${pkgs.restic}/bin/restic --ci cron > /tmp/autorestic.log 2>&1 ''; serviceConfig = { Type = "oneshot"; User = "root"; }; }; environment.systemPackages = with pkgs; [autorestic restic]; sops.secrets."autorestic/zfs_key" = { owner = vars.user; }; sops.secrets."autorestic/ssd_key" = { owner = vars.user; }; sops.templates.".autorestic.yml" = { path = "/home/${vars.user}/.autorestic.yml"; owner = vars.user; mode = "0775"; content = '' version: 2 global: forget: keep-weekly: 7 keep-monthly: 12 locations: dashboard: from: /storage/dataset/docker/dashboard to: - zfs - ssd cron: '0 3 * * 0' # Every Sunday at 3:00 hooks: before: - sudo arion -f ${arionPath}/dashboard/arion-compose.nix -p ${arionPath}/dashboard/arion-pkgs.nix stop after: - sudo arion -f ${arionPath}/dashboard/arion-compose.nix -p ${arionPath}/dashboard/arion-pkgs.nix start dns: from: /storage/dataset/docker/dns to: - zfs - ssd cron: '0 3 * * 0' # Every Sunday at 3:00 hooks: before: - sudo arion -f ${arionPath}/dns/arion-compose.nix -p ${arionPath}/dns/arion-pkgs.nix stop after: - sudo arion -f ${arionPath}/dns/arion-compose.nix -p ${arionPath}/dns/arion-pkgs.nix start feed: from: /storage/dataset/docker/feed to: - zfs - ssd cron: '0 3 * * 0' # Every Sunday at 3:00 hooks: before: - sudo arion -f ${arionPath}/feed/arion-compose.nix -p ${arionPath}/feed/arion-pkgs.nix stop after: - sudo arion -f ${arionPath}/feed/arion-compose.nix -p ${arionPath}/feed/arion-pkgs.nix start git: from: /storage/dataset/docker/git to: - zfs - ssd cron: '0 3 * * *' # Every Day at 3:00 hooks: before: - sudo arion -f ${arionPath}/git/arion-compose.nix -p ${arionPath}/git/arion-pkgs.nix stop after: - sudo arion -f ${arionPath}/git/arion-compose.nix -p ${arionPath}/git/arion-pkgs.nix start media: from: /storage/dataset/docker/media to: - zfs - ssd cron: '0 3 * * 0' # Every Sunday at 3:00 hooks: before: - sudo arion -f ${arionPath}/media/arion-compose.nix -p ${arionPath}/media/arion-pkgs.nix stop after: - sudo arion -f ${arionPath}/media/arion-compose.nix -p ${arionPath}/media/arion-pkgs.nix start nextcloud: from: /storage/dataset/docker/nextcloud to: - zfs - ssd cron: '0 3 * * *' # Every Day at 3:00 hooks: before: - sudo arion -f ${arionPath}/nextcloud/arion-compose.nix -p ${arionPath}/nextcloud/arion-pkgs.nix stop after: - sudo arion -f ${arionPath}/nextcloud/arion-compose.nix -p ${arionPath}/nextcloud/arion-pkgs.nix start smarthome: from: /storage/dataset/docker/smarthome to: - zfs - ssd cron: '0 3 * * 0' # Every Sunday at 3:00 hooks: before: - sudo arion -f ${arionPath}/smarthome/arion-compose.nix -p ${arionPath}/smarthome/arion-pkgs.nix stop after: - sudo arion -f ${arionPath}/smarthome/arion-compose.nix -p ${arionPath}/smarthome/arion-pkgs.nix start passwords: from: /storage/dataset/docker/passwords to: - zfs - ssd cron: '0 3 * * *' # Every Day at 3:00 hooks: before: - sudo arion -f ${arionPath}/passwords/arion-compose.nix -p ${arionPath}/passwords/arion-pkgs.nix stop after: - sudo arion -f ${arionPath}/passwords/arion-compose.nix -p ${arionPath}/passwords/arion-pkgs.nix start backends: zfs: type: local path: /storage/dataset/backups key: '${config.sops.placeholder."autorestic/zfs_key"}' ssd: type: local path: /home/ghoscht/Backups key: '${config.sops.placeholder."autorestic/ssd_key"}' ''; }; }