Issa biddilt il-backup tal-homeserver NixOS tiegħi u minflok script sempliċi ta' kuljum, biddiltu għal kull siegħa. Mhux eleganti daqs l-istanza ta' Mastodon li jamministra ħabib tiegħi – hemmhekk għandna snapshot ta' ZFS kull 20 minuta – imma b'din is-soluzzjoni ninsab sodisfatt ukoll. U rrid ngħid li NixOS qed jogħġobni dejjem aktar. Mingħajr l-IA, madankollu, ikun ikkumplikat wisq biex nifhmu, imma issa nista' tal-inqas naqra l-fajls Nix lesti. Kont ikkunsidrajt li nbiddel is-server għal Linux normali, imma sakemm jaħdem daqshekk tajjeb...
-
/etc/nixos: Il-konfigurazzjoni kollha ta' NixOS (il-fajls .nix kollha). -
/opt/minecraft: Id-dinjiet u d-dejta kollha tas-server tal-Minecraft. -
/opt/satisfactory: Is-saves u l-konfigurazzjoni tas-server ta' Satisfactory. -
/opt/Blog: Il-kodiċi sors u l-kontenut tal-blog. -
/opt/ui: Il-fajls tal-UI ta' Mastodon. -
/opt/audiobookshelf: L-awdjolibri u d-database relatata.
Dan kollu jispiċċa fuq storage S3 li ġie mmuntat permezz ta' RClone.
Il-Konfigurazzjoni ta' NixOS
{ config, pkgs, ... }:
{
# Konfigurazzjoni ta' BorgBackup
services.borgbackup.jobs.hourly = {
# Mogħdija għar-repożitorju fl-S3 mount
repo = "/opt/S3/Backup/NixOSHomeServer_Borg";
# L-ebda password meħtieġa
encryption.mode = "none";
# Kompressjoni għal aktar iffrankar ta' spazju
compression = "auto,zstd";
# Il-mogħdijiet li għandhom jiġu ssejvjati
paths = [
"/etc/nixos"
"/opt/minecraft"
"/opt/satisfactory"
"/opt/Blog"
"/opt/ui"
"/opt/audiobookshelf"
];
# Eżekuzzjoni kull siegħa
startAt = "hourly";
# Inizjalizza r-repożitorju awtomatikament jekk ikun nieqes
doInit = true;
# Regoli ta' żamma (Pruning)
prune.keep = {
within = "1d"; # Is-snapshots kollha tal-aħħar 24 siegħa
daily = 7;
weekly = 4;
monthly = 12;
};
};
# Niżguraw li l-S3 mount ikun lest qabel ma jibda Borg
systemd.services.borgbackup-job-hourly = {
requires = [ "rclone-s3-mount.service" ];
after = [ "rclone-s3-mount.service" ];
};
}