NixOS ev sunucumun yedekleme sistemini değiştirdim ve basit bir günlük betik yerine saatlik yedeklemeye geçtim. Arkadaşımın yönettiği Mastodon örneğindeki kadar zarif değil – orada her 20 dakikada bir ZFS anlık görüntüsü (snapshot) alıyoruz – ama bu çözümden de memnunum. Ve şunu söylemeliyim ki NixOS giderek daha çok hoşuma gidiyor. Yapay zeka olmasaydı anlamam için çok karmaşık olurdu, ancak artık en azından hazır Nix dosyalarını okuyabiliyorum. Bir ara sunucuyu normal bir Linux dağıtımına geçirmeyi düşünmüştüm ama bu kadar iyi çalıştığı sürece...
-
/etc/nixos: Tüm NixOS yapılandırması (tüm .nix dosyaları). -
/opt/minecraft: Minecraft sunucusunun tüm dünyaları ve verileri. -
/opt/satisfactory: Satisfactory sunucusunun kayıtlı oyunları ve yapılandırması. -
/opt/Blog: Blogun kaynak kodu ve içerikleri. -
/opt/ui: Mastodon kullanıcı arayüzü (UI) dosyaları. -
/opt/audiobookshelf: Sesli kitaplar ve ilgili veritabanı.
Tüm bunlar, RClone aracılığıyla bağlanan (mount edilen) bir S3 depolama alanına aktarılıyor.
NixOS Yapılandırması
{ config, pkgs, ... }:
{
# BorgBackup yapılandırması
services.borgbackup.jobs.hourly = {
# S3 bağlama noktasındaki depo yolu
repo = "/opt/S3/Backup/NixOSHomeServer_Borg";
# Şifre gerekmiyor
encryption.mode = "none";
# Daha fazla alan tasarrufu için sıkıştırma
compression = "auto,zstd";
# Yedeklenecek yollar
paths = [
"/etc/nixos"
"/opt/minecraft"
"/opt/satisfactory"
"/opt/Blog"
"/opt/ui"
"/opt/audiobookshelf"
];
# Saatlik çalışma
startAt = "hourly";
# Eksikse depoyu otomatik olarak başlat
doInit = true;
# Saklama kuralları (Budama)
prune.keep = {
within = "1d"; # Son 24 saatteki tüm anlık görüntüler
daily = 7;
weekly = 4;
monthly = 12;
};
};
# Borg başlamadan önce S3 bağlamasının hazır olduğundan emin olun
systemd.services.borgbackup-job-hourly = {
requires = [ "rclone-s3-mount.service" ];
after = [ "rclone-s3-mount.service" ];
};
}