Jeg har nu omlagt backuppen af min NixOS-hjemmeserver og er skiftet fra et simpelt dagligt script til backup hver time. Ikke helt så elegant som på den Mastodon-instans, som min ven administrerer – her har vi et ZFS-snapshot hvert 20. minut – men jeg er også tilfreds med denne løsning. Og jeg må sige, at jeg synes bedre og bedre om NixOS. Uden AI ville det dog være alt for kompliceret til, at jeg kunne forstå det, men efterhånden kan jeg i det mindste læse de færdige Nix-filer. Jeg har overvejet at skifte serveren til en almindelig Linux, men så længe det fungerer så godt...
-
/etc/nixos: Hele NixOS-konfigurationen (alle .nix-filer). -
/opt/minecraft: Alle verdener og data fra Minecraft-serveren. -
/opt/satisfactory: Gemte spil og konfiguration af Satisfactory-serveren. -
/opt/Blog: Kildekoden og indholdet af bloggen. -
/opt/ui: Mastodon-UI-filerne. -
/opt/audiobookshelf: Lydbøgerne og den tilhørende database.
Det hele ender på et S3-lager, der er monteret via RClone.
NixOS-konfigurationen
{ config, pkgs, ... }:
{
# BorgBackup-konfiguration
services.borgbackup.jobs.hourly = {
# Sti til repository i S3-mountet
repo = "/opt/S3/Backup/NixOSHomeServer_Borg";
# Intet kodeord påkrævet
encryption.mode = "none";
# Komprimering for endnu mere pladsbesparelse
compression = "auto,zstd";
# Stierne der skal sikkerhedskopieres
paths = [
"/etc/nixos"
"/opt/minecraft"
"/opt/satisfactory"
"/opt/Blog"
"/opt/ui"
"/opt/audiobookshelf"
];
# Udførelse hver time
startAt = "hourly";
# Initialiser automatisk repository, hvis det mangler
doInit = true;
# Opbevaringsregler (Pruning)
prune.keep = {
within = "1d"; # Alle snapshots fra de sidste 24 timer
daily = 7;
weekly = 4;
monthly = 12;
};
};
# Sørg for, at S3-mountet er klar, før Borg starter
systemd.services.borgbackup-job-hourly = {
requires = [ "rclone-s3-mount.service" ];
after = [ "rclone-s3-mount.service" ];
};
}