Spremenil sem način varnostnega kopiranja svojega domačega strežnika NixOS in namesto preprostega dnevnega skripta prešel na urno kopiranje. Ni tako elegantno kot na instanci Mastodon, ki jo upravlja moj prijatelj – tam imamo posnetke ZFS vsakih 20 minut – vendar sem s to rešitvijo prav tako zadovoljan. In moram reči, da mi je NixOS vedno bolj všeč. Brez umetne inteligence bi bilo vse skupaj preveč zapleteno, da bi razumel, zdaj pa lahko končane datoteke Nix vsaj preberem. Razmišljal sem o tem, da bi strežnik prestavil na običajen Linux, a dokler to deluje tako dobro...
-
/etc/nixos: Celotna konfiguracija NixOS (vse datoteke .nix). -
/opt/minecraft: Vsi svetovi in podatki strežnika Minecraft. -
/opt/satisfactory: Shranitve iger in konfiguracija strežnika Satisfactory. -
/opt/Blog: Izvorna koda in vsebina bloga. -
/opt/ui: Datoteke uporabniškega vmesnika Mastodon. -
/opt/audiobookshelf: Zvočne knjige in pripadajoča zbirka podatkov.
Vse skupaj se shrani v shrambo S3, ki je bila priklopljena prek RClone.
Die NixOS Konfiguration
{ config, pkgs, ... }:
{
# Konfiguracija BorgBackup
services.borgbackup.jobs.hourly = {
# Pot do repozitorija v priklopu S3
repo = "/opt/S3/Backup/NixOSHomeServer_Borg";
# Geslo ni potrebno
encryption.mode = "none";
# Stiskanje za še večji prihranek prostora
compression = "auto,zstd";
# Poti za varnostno kopiranje
paths = [
"/etc/nixos"
"/opt/minecraft"
"/opt/satisfactory"
"/opt/Blog"
"/opt/ui"
"/opt/audiobookshelf"
];
# Urno izvajanje
startAt = "hourly";
# Samodejna inicializacija repozitorija, če manjka
doInit = true;
# Pravila hrambe (čiščenje)
prune.keep = {
within = "1d"; # Vsi posnetki zadnjih 24 ur
daily = 7;
weekly = 4;
monthly = 12;
};
};
# Zagotavljanje, da je priklop S3 pripravljen, preden se zažene Borg
systemd.services.borgbackup-job-hourly = {
requires = [ "rclone-s3-mount.service" ];
after = [ "rclone-s3-mount.service" ];
};
}