feat: add btrfs + btrbk module for Poup_16T data disk #74

Open
Hermes wants to merge 2 commits from feat/temp-16tb-btrbk into master
4 changed files with 131 additions and 1 deletions
Showing only changes of commit 7a3885a036 - Show all commits

View File

@@ -65,7 +65,7 @@
./hosts/lazyworkhorse/configuration.nix
./hosts/lazyworkhorse/hardware-configuration.nix
./modules/nixos/filesystem/hoardingcow-mount.nix
./modules/nixos/filesystem/temp-16tb-disk.nix
./modules/nixos/filesystem/poup-16t-disk.nix
./modules/nixos/services/docker_manager.nix
./modules/nixos/services/open_code_server.nix
./modules/nixos/services/ollama_init_custom_models.nix

View File

@@ -8,10 +8,10 @@
# NAS Mounting
hoardingcow-mount.enable = true;
# 16TB btrfs storage disk (WD Red Pro — LUKS2 + btrfs + btrbk snapshots)
# 16TB btrfs storage disk (WD Red Pro — Poup_16T — LUKS2 + btrfs + btrbk snapshots)
# ⚠ SETUP REQUIRED: Connect the disk, get the LUKS UUID with 'blkid /dev/sdb',
# then set gortium.temp16tb.luksUuid here and deploy.
# gortium.temp16tb = {
# then set gortium.poup16t.luksUuid here and deploy.
# gortium.poup16t = {
# enable = true;
# luksUuid = "REPLACE_ME_WITH_REAL_UUID";
# };

View File

@@ -1,19 +1,19 @@
{ config, lib, pkgs, ... }:
let
cfg = config.gortium.temp16tb;
cfg = config.gortium.poup16t;
luksName = cfg.luksName;
in
with lib;
{
options.gortium.temp16tb = {
enable = mkEnableOption "16TB temp storage disk (btrfs + LUKS + btrbk snapshots)";
options.gortium.poup16t = {
enable = mkEnableOption "Poup_16T storage disk (btrfs + LUKS + btrbk snapshots)";
luksUuid = mkOption {
type = types.str;
description = ''
UUID of the LUKS partition on the 16TB disk.
UUID of the LUKS partition on the 16TB disk (WD Red Pro).
Find this by running as root when the disk is connected:
blkid /dev/sdb # or wherever the disk appears
@@ -27,14 +27,14 @@ with lib;
luksName = mkOption {
type = types.str;
default = "temp_16tb";
default = "poup_16t";
description = "Name for the LUKS /dev/mapper/ mapping";
};
mountPoint = mkOption {
type = types.str;
default = "/mnt/temp_16tb";
description = "Mount point for the 16TB disk";
default = "/mnt/Poup_16T";
description = "Mount point for the 16TB data disk";
};
btrfsOptions = mkOption {
@@ -103,7 +103,7 @@ with lib;
# btrbk — automated snapshot creation and rotation
services.btrbk = mkIf cfg.btrbk.enable {
instances.temp16tb = {
instances.poup16t = {
onCalendar = cfg.btrbk.schedule;
settings = {
snapshot_preserve_min = cfg.btrbk.preserveMin;