From 93ab323d0ea01eb1188cd1f36d7ea17c2508af53 Mon Sep 17 00:00:00 2001 From: "RingOfStorms (Joshua Bell)" Date: Sun, 28 Dec 2025 17:31:14 -0600 Subject: [PATCH] add nfs storage h002 --- hosts/h002/flake.lock | 283 +++++++++++++++++++++----- hosts/h002/flake.nix | 36 ++-- hosts/h002/hardware-configuration.nix | 16 ++ hosts/h002/nfs-data.nix | 13 ++ 4 files changed, 276 insertions(+), 72 deletions(-) create mode 100644 hosts/h002/nfs-data.nix diff --git a/hosts/h002/flake.lock b/hosts/h002/flake.lock index e82a2bc2..c90d1881 100644 --- a/hosts/h002/flake.lock +++ b/hosts/h002/flake.lock @@ -1,5 +1,66 @@ { "nodes": { + "agenix": { + "inputs": { + "darwin": "darwin", + "home-manager": "home-manager_2", + "nixpkgs": [ + "secrets", + "ragenix", + "nixpkgs" + ], + "systems": "systems" + }, + "locked": { + "lastModified": 1761656077, + "narHash": "sha256-lsNWuj4Z+pE7s0bd2OKicOFq9bK86JE0ZGeKJbNqb94=", + "owner": "ryantm", + "repo": "agenix", + "rev": "9ba0d85de3eaa7afeab493fed622008b6e4924f5", + "type": "github" + }, + "original": { + "owner": "ryantm", + "repo": "agenix", + "type": "github" + } + }, + "beszel": { + "inputs": { + "beszel-nixpkgs": "beszel-nixpkgs" + }, + "locked": { + "dir": "flakes/beszel", + "lastModified": 1766960535, + "narHash": "sha256-t9xcmWlc2kB1wcKH4V9OMQoQYoMS4pDK/TLOGmmohf8=", + "ref": "refs/heads/master", + "rev": "a76b100f6eae86dbcb9327fece4ee03bebe5410a", + "revCount": 974, + "type": "git", + "url": "https://git.joshuabell.xyz/ringofstorms/dotfiles" + }, + "original": { + "dir": "flakes/beszel", + "type": "git", + "url": "https://git.joshuabell.xyz/ringofstorms/dotfiles" + } + }, + "beszel-nixpkgs": { + "locked": { + "lastModified": 1765472234, + "narHash": "sha256-9VvC20PJPsleGMewwcWYKGzDIyjckEz8uWmT0vCDYK0=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "2fbfb1d73d239d2402a8fe03963e37aab15abe8b", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "common": { "locked": { "dir": "flakes/common", @@ -17,51 +78,66 @@ "url": "https://git.joshuabell.xyz/ringofstorms/dotfiles" } }, - "de_plasma": { - "inputs": { - "plasma-manager": "plasma-manager" - }, + "crane": { "locked": { - "dir": "flakes/de_plasma", - "lastModified": 1766101096, - "narHash": "sha256-fOPGpgrgt4pNKzdpA+Xc/c3lev6Af2gM2ge2Gh4H9pk=", - "ref": "refs/heads/master", - "rev": "acfec76a791abf5bcef22240a1e559e8e5e49004", - "revCount": 957, - "type": "git", - "url": "https://git.joshuabell.xyz/ringofstorms/dotfiles" + "lastModified": 1760924934, + "narHash": "sha256-tuuqY5aU7cUkR71sO2TraVKK2boYrdW3gCSXUkF4i44=", + "owner": "ipetkov", + "repo": "crane", + "rev": "c6b4d5308293d0d04fcfeee92705017537cad02f", + "type": "github" }, "original": { - "dir": "flakes/de_plasma", - "type": "git", - "url": "https://git.joshuabell.xyz/ringofstorms/dotfiles" + "owner": "ipetkov", + "repo": "crane", + "type": "github" } }, - "home-manager": { + "darwin": { "inputs": { "nixpkgs": [ - "de_plasma", - "plasma-manager", + "secrets", + "ragenix", + "agenix", "nixpkgs" ] }, "locked": { - "lastModified": 1756579987, - "narHash": "sha256-duCce8zGsaMsrqqOmLOsuaV1PVIw/vXWnKuLKZClsGg=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "99a69bdf8a3c6bf038c4121e9c4b6e99706a187a", + "lastModified": 1744478979, + "narHash": "sha256-dyN+teG9G82G+m+PX/aSAagkC+vUv0SgUw3XkPhQodQ=", + "owner": "lnl7", + "repo": "nix-darwin", + "rev": "43975d782b418ebf4969e9ccba82466728c2851b", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "home-manager", + "owner": "lnl7", + "ref": "master", + "repo": "nix-darwin", "type": "github" } }, - "home-manager_2": { + "flake-utils": { "inputs": { - "nixpkgs": "nixpkgs_2" + "systems": "systems_2" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": "nixpkgs" }, "locked": { "lastModified": 1765979862, @@ -78,23 +154,30 @@ "type": "github" } }, - "nixpkgs": { + "home-manager_2": { + "inputs": { + "nixpkgs": [ + "secrets", + "ragenix", + "agenix", + "nixpkgs" + ] + }, "locked": { - "lastModified": 1756542300, - "narHash": "sha256-tlOn88coG5fzdyqz6R93SQL5Gpq+m/DsWpekNFhqPQk=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "d7600c775f877cd87b4f5a831c28aa94137377aa", + "lastModified": 1745494811, + "narHash": "sha256-YZCh2o9Ua1n9uCvrvi5pRxtuVNml8X2a03qIFfRKpFs=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "abfad3d2958c9e6300a883bd443512c55dfeb1be", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", + "owner": "nix-community", + "repo": "home-manager", "type": "github" } }, - "nixpkgs_2": { + "nixpkgs": { "locked": { "lastModified": 1765762245, "narHash": "sha256-3iXM/zTqEskWtmZs3gqNiVtRTsEjYAedIaLL0mSBsrk=", @@ -110,7 +193,7 @@ "type": "github" } }, - "nixpkgs_3": { + "nixpkgs_2": { "locked": { "lastModified": 1765838191, "narHash": "sha256-m5KWt1nOm76ILk/JSCxBM4MfK3rYY7Wq9/TZIIeGnT8=", @@ -126,7 +209,7 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_3": { "locked": { "lastModified": 1764776358, "narHash": "sha256-MxXSCRiV7DI5U3Ra1UxVJTTUyKsONAE8+8QdSXsGIhA=", @@ -141,6 +224,22 @@ "type": "github" } }, + "nixpkgs_4": { + "locked": { + "lastModified": 1761672384, + "narHash": "sha256-o9KF3DJL7g7iYMZq9SWgfS1BFlNbsm6xplRjVlOCkXI=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "08dacfca559e1d7da38f3cf05f1f45ee9bfd213c", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nvim_plugin-Almo7aya/openingh.nvim": { "flake": false, "locked": { @@ -1005,37 +1104,41 @@ "type": "github" } }, - "plasma-manager": { + "ragenix": { "inputs": { - "home-manager": "home-manager", - "nixpkgs": "nixpkgs" + "agenix": "agenix", + "crane": "crane", + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs_4", + "rust-overlay": "rust-overlay_2" }, "locked": { - "lastModified": 1763909441, - "narHash": "sha256-56LwV51TX/FhgX+5LCG6akQ5KrOWuKgcJa+eUsRMxsc=", - "owner": "nix-community", - "repo": "plasma-manager", - "rev": "b24ed4b272256dfc1cc2291f89a9821d5f9e14b4", + "lastModified": 1761832913, + "narHash": "sha256-VCNVjjuRvrKPiYYwqhE3BAKIaReiKXGpxGp27lZ0MFM=", + "owner": "yaxitech", + "repo": "ragenix", + "rev": "83bccfdea758241999f32869fb6b36f7ac72f1ac", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "plasma-manager", + "owner": "yaxitech", + "repo": "ragenix", "type": "github" } }, "root": { "inputs": { + "beszel": "beszel", "common": "common", - "de_plasma": "de_plasma", - "home-manager": "home-manager_2", - "nixpkgs": "nixpkgs_3", - "ros_neovim": "ros_neovim" + "home-manager": "home-manager", + "nixpkgs": "nixpkgs_2", + "ros_neovim": "ros_neovim", + "secrets": "secrets" } }, "ros_neovim": { "inputs": { - "nixpkgs": "nixpkgs_4", + "nixpkgs": "nixpkgs_3", "nvim_plugin-Almo7aya/openingh.nvim": "nvim_plugin-Almo7aya/openingh.nvim", "nvim_plugin-CopilotC-Nvim/CopilotChat.nvim": "nvim_plugin-CopilotC-Nvim/CopilotChat.nvim", "nvim_plugin-JoosepAlviste/nvim-ts-context-commentstring": "nvim_plugin-JoosepAlviste/nvim-ts-context-commentstring", @@ -1126,6 +1229,78 @@ "repo": "rust-overlay", "type": "github" } + }, + "rust-overlay_2": { + "inputs": { + "nixpkgs": [ + "secrets", + "ragenix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1761791894, + "narHash": "sha256-myRIDh+PxaREz+z9LzbqBJF+SnTFJwkthKDX9zMyddY=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "59c45eb69d9222a4362673141e00ff77842cd219", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "secrets": { + "inputs": { + "ragenix": "ragenix" + }, + "locked": { + "dir": "flakes/secrets", + "lastModified": 1766960535, + "narHash": "sha256-t9xcmWlc2kB1wcKH4V9OMQoQYoMS4pDK/TLOGmmohf8=", + "ref": "refs/heads/master", + "rev": "a76b100f6eae86dbcb9327fece4ee03bebe5410a", + "revCount": 974, + "type": "git", + "url": "https://git.joshuabell.xyz/ringofstorms/dotfiles" + }, + "original": { + "dir": "flakes/secrets", + "type": "git", + "url": "https://git.joshuabell.xyz/ringofstorms/dotfiles" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } } }, "root": "root", diff --git a/hosts/h002/flake.nix b/hosts/h002/flake.nix index 0a3664d8..b43a5170 100644 --- a/hosts/h002/flake.nix +++ b/hosts/h002/flake.nix @@ -4,8 +4,10 @@ home-manager.url = "github:rycee/home-manager/release-25.11"; common.url = "git+https://git.joshuabell.xyz/ringofstorms/dotfiles?dir=flakes/common"; - # de_plasma.url = "path:../../../../flakes/de_plasma"; - de_plasma.url = "git+https://git.joshuabell.xyz/ringofstorms/dotfiles?dir=flakes/de_plasma"; + # secrets.url = "path:../../flakes/secrets"; + secrets.url = "git+https://git.joshuabell.xyz/ringofstorms/dotfiles?dir=flakes/secrets"; + # beszel.url = "path:../../flakes/beszel"; + beszel.url = "git+https://git.joshuabell.xyz/ringofstorms/dotfiles?dir=flakes/beszel"; ros_neovim.url = "git+https://git.joshuabell.xyz/ringofstorms/nvim"; }; @@ -13,7 +15,6 @@ outputs = { nixpkgs, - common, ros_neovim, ... }@inputs: @@ -22,7 +23,7 @@ primaryUser = "luser"; configLocation = "/home/${primaryUser}/.config/nixos-config/hosts/${configurationName}"; stateAndHomeVersion = "25.11"; - # overlayIp = "100.64.0.14"; + overlayIp = "100.64.0.3"; lib = inputs.nixpkgs.lib; in { @@ -35,8 +36,7 @@ modules = [ inputs.home-manager.nixosModules.default - # TODO - # secrets.nixosModules.default + inputs.secrets.nixosModules.default inputs.ros_neovim.nixosModules.default ({ ringofstorms-nvim.includeAllRuntimeDependencies = true; @@ -58,20 +58,20 @@ inputs.common.nixosModules.timezone_auto inputs.common.nixosModules.tty_caps_esc inputs.common.nixosModules.zsh - # TODO - # common.nixosModules.tailnet - # beszel.nixosModules.agent - # ( - # { ... }: - # { - # beszelAgent = { - # listen = "${overlayIp}:45876"; - # token = "f8a54c41-486b-487a-a78d-a087385c317b"; - # }; - # } - # ) + inputs.common.nixosModules.tailnet + inputs.beszel.nixosModules.agent + ({ + beszelAgent = { + listen = "${overlayIp}:45876"; + token = "11714da6-fd2e-436a-8b83-e0e07ba33a95"; + }; + services.beszel.agent.environment = { + EXTRA_FILESYSTEMS = "sdb__Data"; + }; + }) ./hardware-configuration.nix + ./nfs-data.nix ( { config, diff --git a/hosts/h002/hardware-configuration.nix b/hosts/h002/hardware-configuration.nix index 4efef851..cb8dfd17 100644 --- a/hosts/h002/hardware-configuration.nix +++ b/hosts/h002/hardware-configuration.nix @@ -36,6 +36,22 @@ { device = "/dev/disk/by-uuid/f043c171-5d20-4c6c-bc82-6e72139d7cb1"; } ]; + fileSystems."/data" = { + device = + # root@h002:/home/luser/ > bcachefs format --compression=zstd --replicas=2 /dev/sda /dev/sdb /dev/sdc /dev/sde /dev/sdf + # External UUID: 53a26b95-941b-4f41-b049-c166905ed8c2 + # Internal UUID: 9d63b280-7b25-46a7-8437-4c6d92e63790 + # Magic number: c68573f6-66ce-90a9-d96a-60cf803df7ef + "UUID=53a26b95-941b-4f41-b049-c166905ed8c2"; + fsType = "bcachefs"; + options = [ + "defaults" + "compression=zstd" + "fsck" + "fix_errors" + ]; + }; + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking # (the default) this is the recommended approach. When using systemd-networkd it's # still possible to use this option, but it's recommended to use it in conjunction diff --git a/hosts/h002/nfs-data.nix b/hosts/h002/nfs-data.nix new file mode 100644 index 00000000..ceda8a40 --- /dev/null +++ b/hosts/h002/nfs-data.nix @@ -0,0 +1,13 @@ +{ pkgs, ... }: +{ + services.nfs.server = { + enable = true; + exports = '' + /mnt/storage 100.64.0.0/10(rw,sync,no_subtree_check,fsid=0,crossmnt) + ''; + }; + + environment.systemPackages = [ + pkgs.nfs-utils + ]; +}