Jeg har nå lagt om backupen av min NixOS-hjemmeserver og gått fra et enkelt daglig skript til timesvise sikkerhetskopier. Ikke fullt så elegant som på Mastodon-instansen som vennen min administrerer – der har vi en ZFS-snapshot hvert 20. minutt – men jeg er fornøyd med denne løsningen også. Og jeg må si at jeg liker NixOS bedre og bedre. Uten KI ville det imidlertid vært altfor komplisert til at jeg kunne forstått det, men nå kan jeg i det minste lese de ferdige Nix-filene. Jeg vurderte på et tidspunkt å bytte serveren til en vanlig Linux-distribusjon, men så lenge dette fungerer så bra...
-
/etc/nixos: Hele NixOS-konfigurasjonen (alle .nix-filer). -
/opt/minecraft: Alle verdener og data for Minecraft-serveren. -
/opt/satisfactory: Lagrede spill og konfigurasjon for Satisfactory-serveren. -
/opt/Blog: Kildekoden og innholdet i bloggen. -
/opt/ui: Mastodon-UI-filene. -
/opt/audiobookshelf: Lydbøkene og den tilhørende databasen.
Det hele havner på en S3-lagring som er montert via RClone.
NixOS-konfigurasjonen
{ config, pkgs, ... }:
{
# BorgBackup-konfigurasjon
services.borgbackup.jobs.hourly = {
# Sti til repositoriet i S3-monteringen
repo = "/opt/S3/Backup/NixOSHomeServer_Borg";
# Ingen passord kreves
encryption.mode = "none";
# Komprimering for enda mer plassbesparelse
compression = "auto,zstd";
# Stiene som skal sikkerhetskopieres
paths = [
"/etc/nixos"
"/opt/minecraft"
"/opt/satisfactory"
"/opt/Blog"
"/opt/ui"
"/opt/audiobookshelf"
];
# Utførelse hver time
startAt = "hourly";
# Initialiser repositoriet automatisk hvis det mangler
doInit = true;
# Oppbevaringsregler (Pruning)
prune.keep = {
within = "1d"; # Alle snapshots fra de siste 24 timene
daily = 7;
weekly = 4;
monthly = 12;
};
};
# Sikre at S3-monteringen er klar før Borg starter
systemd.services.borgbackup-job-hourly = {
requires = [ "rclone-s3-mount.service" ];
after = [ "rclone-s3-mount.service" ];
};
}