Mi ĵus ŝanĝis la sekurkopian sistemon de mia NixOS hejma servilo kaj anstataŭigis simplan ĉiutagan skripton per hora sekurkopio. Ne tute tiel eleganta kiel ĉe la Mastodon-instanco, kiun mia amiko administras – tie ni havas ZFS-momentkopion ĉiun 20-an minuton – sed mi estas kontenta ankaŭ pri ĉi tiu solvo. Kaj mi devas diri, ke NixOS plaĉas al mi pli kaj pli. Sen AI ĝi tamen estus tro komplika por ke mi povu kompreni ĝin, sed intertempe mi almenaŭ povas legi la finitajn Nix-dosierojn. Mi iam pripensis reŝanĝi la servilon al kutima Linukso, sed tiel longe kiel tio tiel bone funkcias...
-
/etc/nixos: La tuta NixOS-agordo (ĉiuj .nix-dosieroj). -
/opt/minecraft: Ĉiuj mondoj kaj datumoj de la Minecraft-servilo. -
/opt/satisfactory: Ludostatoj kaj agordo de la Satisfactory-servilo. -
/opt/Blog: La fontkodo kaj la enhavoj de la blogo. -
/opt/ui: La Mastodon-UI-dosieroj. -
/opt/audiobookshelf: La aŭdlibroj kaj la rilata datumbazo.
La tuto finiĝas en S3-stokrejo, kiu estis muntita per RClone.
La NixOS-agordo
{ config, pkgs, ... }:
{
# BorgBackup-agordo
services.borgbackup.jobs.hourly = {
# Vojo al la deponejo en la S3-munto
repo = "/opt/S3/Backup/NixOSHomeServer_Borg";
# Neniu pasvorto necesa
encryption.mode = "none";
# Kunpremo por eĉ pli da spacŝparo
compression = "auto,zstd";
# La sekurkopiotaj vojoj
paths = [
"/etc/nixos"
"/opt/minecraft"
"/opt/satisfactory"
"/opt/Blog"
"/opt/ui"
"/opt/audiobookshelf"
];
# Hora plenumo
startAt = "hourly";
# Aŭtomate pravalorizi la deponejon, se ĝi mankas
doInit = true;
# Konservreguloj (Pruning)
prune.keep = {
within = "1d"; # Ĉiuj momentkopioj de la lastaj 24h
daily = 7;
weekly = 4;
monthly = 12;
};
};
# Certigi, ke la S3-munto estas preta antaŭ ol Borg startas
systemd.services.borgbackup-job-hourly = {
requires = [ "rclone-s3-mount.service" ];
after = [ "rclone-s3-mount.service" ];
};
}