Esmu nomainījis sava NixOS mājas servera dublēšanas sistēmu un vienkārša ikdienas skripta vietā pārgājis uz stundas dublējumiem. Nav gluži tik eleganti kā Mastodon instancē, kuru pārvalda mans draugs – tur mums ir ZFS momentuzņēmumi ik pēc 20 minūtēm – bet ar šo risinājumu esmu apmierināts. Un jāsaka, ka NixOS man patīk arvien labāk. Bez mākslīgā intelekta tas gan būtu pārāk sarežģīti, lai es to saprastu, bet tagad es vismaz spēju izlasīt gatavos Nix failus. Biju domājis pārcelt serveri uz parastu Linux, bet, kamēr tas tik labi darbojas...
-
/etc/nixos: Visa NixOS konfigurācija (visi .nix faili). -
/opt/minecraft: Visas Minecraft servera pasaules un dati. -
/opt/satisfactory: Satisfactory servera saglabātie dati un konfigurācija. -
/opt/Blog: Bloga pirmkods un saturs. -
/opt/ui: Mastodon UI faili. -
/opt/audiobookshelf: Audiogrāmatas un saistītā datubāze.
Tas viss nonāk S3 krātuvē, kas ir piemontēta, izmantojot RClone.
Die NixOS Konfiguration
{ config, pkgs, ... }:
{
# BorgBackup konfigurācija
services.borgbackup.jobs.hourly = {
# Ceļš uz repozitoriju S3 montējumā
repo = "/opt/S3/Backup/NixOSHomeServer_Borg";
# Parole nav nepieciešama
encryption.mode = "none";
# Saspiešana vēl lielākai vietas taupīšanai
compression = "auto,zstd";
# Dublējamie ceļi
paths = [
"/etc/nixos"
"/opt/minecraft"
"/opt/satisfactory"
"/opt/Blog"
"/opt/ui"
"/opt/audiobookshelf"
];
# Izpilde reizi stundā
startAt = "hourly";
# Automātiski inicializēt repozitoriju, ja tā trūkst
doInit = true;
# Saglabāšanas noteikumi (Pruning)
prune.keep = {
within = "1d"; # Visi momentuzņēmumi pēdējo 24h laikā
daily = 7;
weekly = 4;
monthly = 12;
};
};
# Pārliecināties, ka S3 montējums ir gatavs, pirms Borg sāk darbu
systemd.services.borgbackup-job-hourly = {
requires = [ "rclone-s3-mount.service" ];
after = [ "rclone-s3-mount.service" ];
};
}