Muutsin nüüd oma NixOS koduserveri varundust ja asendasin lihtsa igapäevase skripti tunnise varundusega. Mitte küll nii elegantne kui Mastodoni instantsis, mida mu sõber haldab – seal teeme iga 20 minuti järel ZFS snapshot'i – aga olen ka selle lahendusega rahul. Ja pean ütlema, et NixOS meeldib mulle üha enam. Ilma tehisintellektita oleks see aga liiga keeruline, et ma sellest aru saaksin, kuid nüüdseks suudan valmis Nix-faile vähemalt lugeda. Kaalusid korraks serveri üleviimist tavalisele Linuxile, aga seni kuni see nii hästi töötab...
-
/etc/nixos: Kogu NixOS-i konfiguratsioon (kõik .nix failid). -
/opt/minecraft: Kõik Minecrafti serveri maailmad ja andmed. -
/opt/satisfactory: Satisfactory serveri salvestused ja konfiguratsioon. -
/opt/Blog: Blogi lähtekood ja sisu. -
/opt/ui: Mastodoni kasutajaliidese (UI) failid. -
/opt/audiobookshelf: Audioraamatud ja nendega seotud andmebaas.
Kõik see maandub S3-salvestusruumis, mis on ühendatud RClone'i kaudu.
NixOS-i konfiguratsioon
{ config, pkgs, ... }:
{
# BorgBackupi konfiguratsioon
services.borgbackup.jobs.hourly = {
# Tee repositooriumini S3-mountis
repo = "/opt/S3/Backup/NixOSHomeServer_Borg";
# Parooli pole vaja
encryption.mode = "none";
# Pakkimine veelgi suurema ruumisäästu saavutamiseks
compression = "auto,zstd";
# Varundatavad asukohad
paths = [
"/etc/nixos"
"/opt/minecraft"
"/opt/satisfactory"
"/opt/Blog"
"/opt/ui"
"/opt/audiobookshelf"
];
# Käivitamine kord tunnis
startAt = "hourly";
# Repositooriumi automaatne lähtestamine, kui see puudub
doInit = true;
# Säilitamisreeglid (Pruning)
prune.keep = {
within = "1d"; # Kõik viimase 24 tunni snapshotid
daily = 7;
weekly = 4;
monthly = 12;
};
};
# Veendumine, et S3-mount on valmis enne Borgi käivitamist
systemd.services.borgbackup-job-hourly = {
requires = [ "rclone-s3-mount.service" ];
after = [ "rclone-s3-mount.service" ];
};
}