From 887e7c2b970e561a3984560b718a09ca0df11346 Mon Sep 17 00:00:00 2001 From: blake Date: Sat, 4 Oct 2025 11:26:42 -0500 Subject: [PATCH] restructured & first test of toggleable config --- modules/homelab/homelab.nix | 14 ++++++++++++++ modules/system/docker.nix | 10 ++++++++++ modules/system/nvidia.nix | 20 ++++++++++++++++++++ modules/system/ssh.nix | 15 +++++++++++++++ modules/system/syncthing.nix | 16 ++++++++++++++++ modules/system/tailscale.nix | 10 ++++++++++ 6 files changed, 85 insertions(+) create mode 100644 modules/homelab/homelab.nix create mode 100644 modules/system/docker.nix create mode 100644 modules/system/nvidia.nix create mode 100644 modules/system/ssh.nix create mode 100644 modules/system/syncthing.nix create mode 100644 modules/system/tailscale.nix diff --git a/modules/homelab/homelab.nix b/modules/homelab/homelab.nix new file mode 100644 index 0000000..fe40e08 --- /dev/null +++ b/modules/homelab/homelab.nix @@ -0,0 +1,14 @@ +{ config, lib, pkgs, ... }: + +{ + imports = [ + ./zfs.nix + ./smb.nix + ./nfs.nix + ]; + + homelab.zfs.enable = lib.mkDefault true; + homelab.smb.enable = lib.mkDefault true; + homelab.nfs.enable = lib.mkDefault true; + +} diff --git a/modules/system/docker.nix b/modules/system/docker.nix new file mode 100644 index 0000000..d0698bc --- /dev/null +++ b/modules/system/docker.nix @@ -0,0 +1,10 @@ +{ config, pkgs, ... }: + +{ + virtualisation.docker = { + enable = true; + daemon.settings = { + experimental = true; + }; + }; +} diff --git a/modules/system/nvidia.nix b/modules/system/nvidia.nix new file mode 100644 index 0000000..6a6dd65 --- /dev/null +++ b/modules/system/nvidia.nix @@ -0,0 +1,20 @@ +{ config, pkgs, lib, ... }: + +{ + # enable nvidia proprietary driver + hardware.nvidia = { + modesetting.enable = true; # required + open = false; # use proprietary driver + nvidiaSettings = true; # no shit + powerManagement.enable = false; # can cause sleep issues + package = config.boot.kernelPackages.nvidiaPackages.stable; + }; + + # install nvidia-smi + environment.systemPackages = with pkgs; [ + nvidia-smi + ]; + + # enable docker gpu passthrough + virtualisation.docker.enableNvidia = true; +} diff --git a/modules/system/ssh.nix b/modules/system/ssh.nix new file mode 100644 index 0000000..c3327fa --- /dev/null +++ b/modules/system/ssh.nix @@ -0,0 +1,15 @@ +{ config, lib, pkgs, ... }: + +{ + # enable and configure openssh + services.openssh = { + enable = true; + settings = { + PasswordAuthentication = true; + PermitRootLogin = "no"; + X11Forwarding = false; + }; + }; + + +} diff --git a/modules/system/syncthing.nix b/modules/system/syncthing.nix new file mode 100644 index 0000000..4db4f65 --- /dev/null +++ b/modules/system/syncthing.nix @@ -0,0 +1,16 @@ +{ config, pkgs, ... }: + +{ + services.syncthing = { + enable = true; + user = "blake"; + group = "blake"; + + dataDir = "/home/blake/.local/state/syncthing"; + configDir = "/home/blake/.config/syncthing"; + + # webui + guiAddress = "0.0.0.0:2222"; + openDefaultPorts = true; + }; +} diff --git a/modules/system/tailscale.nix b/modules/system/tailscale.nix new file mode 100644 index 0000000..f0d85da --- /dev/null +++ b/modules/system/tailscale.nix @@ -0,0 +1,10 @@ +{ config, pkgs, ... }: + +{ + services.tailscale = { + enable = true; + + useRoutingFeatures = "both"; + authKeyFile = "/home/blake/.nix/.keyring/tailscale/authkey"; + }; +}