DaH NixOS juH De'wI'wIj polmeH ghu' vIchoHpu'. jaj script vIlo'be', 'ach rep polmeH ghu' vIlo'. jupwI' Mastodon De'wI' 'IHqu' law' ghu'wIj 'IH puS – pa' 20 tupmey ZFS snapshotmey lu'agh – 'ach ghu'vam vImuSHa'. NixOS vImuSHa'choH. AI (De'wI' 'ong) vIlo'be'chugh, ghu'vam vIyajlaHbe', 'ach DaH Nix-De'ghunmey vIlaDlaH. Linux motlh vIlo' vInabpu', 'ach DaH majQa' ghu'vam...

  1. /etc/nixos: NixOS ghu' (hoch .nix De'ghunmey).

  2. /opt/minecraft: Minecraft qo'mey De' je.

  3. /opt/satisfactory: Satisfactory quv De' ghu' je.

  4. /opt/Blog: Blog mu'ghun De' je.

  5. /opt/ui: Mastodon-UI 'ay'mey.

  6. /opt/audiobookshelf: paq chu'wI' De'ghun je.

S3 De' lulDaq RClone lo'taHvIS hoch De' vIlan.

NixOS ghu'


{ config, pkgs, ... }:

{
  # BorgBackup ghu'
  services.borgbackup.jobs.hourly = {
    # S3-mountDaq repository He
    repo = "/opt/S3/Backup/NixOSHomeServer_Borg";

    # peghmu' nIteb
    encryption.mode = "none";

    # De' tIn choHmeH
    compression = "auto,zstd";

    # He polmeH
    paths = [
      "/etc/nixos"
      "/opt/minecraft"
      "/opt/satisfactory"
      "/opt/Blog"
      "/opt/ui"
      "/opt/audiobookshelf"
    ];

    # hoch rep
    startAt = "hourly";

    # repository tagh
    doInit = true;

    # polmeH chot
    prune.keep = {
      within = "1d"; # hoch snapshotmey 24 rep ret
      daily = 7;
      weekly = 4;
      monthly = 12;
    };
  };

  # S3-mount ghu' lugh 'e' yInID, Borg taghpa'
  systemd.services.borgbackup-job-hourly = {
    requires = [ "rclone-s3-mount.service" ];
    after = [ "rclone-s3-mount.service" ];
  };
}