diff --git a/home/home.nix b/home/home.nix index cd8ff47..2b3b7ad 100644 --- a/home/home.nix +++ b/home/home.nix @@ -1,6 +1,6 @@ { config, pkgs, ... }: let - home-manager = builtins.fetchTarball "https://github.com/nix-community/home-manager/archive/release-23.05.tar.gz"; + home-manager = builtins.fetchTarball "https://github.com/nix-community/home-manager/archive/release-23.11.tar.gz"; in { imports = [ @@ -10,7 +10,7 @@ in home-manager.users.gunalx = { /* The home.stateVersion option does not have a default and must be set */ - home.stateVersion = "23.05"; + home.stateVersion = "23.11"; /* Here goes the rest of your home-manager config, e.g. home.packages = [ pkgs.foo ]; */ diff --git a/machines/galadriel/configuration.nix b/machines/galadriel/configuration.nix index 84a0289..96b5f7a 100644 --- a/machines/galadriel/configuration.nix +++ b/machines/galadriel/configuration.nix @@ -7,11 +7,13 @@ { imports = [ # Include the results of the hardware scan. + ./hardware-configuration.nix ./vim.nix ./nvidia.nix ./openvpn.nix ../../profiles/base.nix ../../profiles/sops.nix + ./zfs.nix #../../services/torrent.nix ]; @@ -68,10 +70,8 @@ jellyfin-mpv-shim jftui sonixd - sonarr - bazarr unpackerr - freshrss + qbittorrent-nox ]; # Some programs need SUID wrappers, can be configured further or are @@ -105,24 +105,21 @@ services.calibre-web.enable = true; #services.calibre-server.enable = true; - services.freshrss.enable = true; #rss aggregator - services.freshrss.baseUrl = "http://127.0.0.1"; - services.freshrss.passwordFile = "/run/secrets/freshrss"; + # services.freshrss.enable = true; #rss aggregator + # services.freshrss.baseUrl = "http://127.0.0.1"; + # services.freshrss.passwordFile = "/run/secrets/freshrss"; ##downloading #autodownload - services.sonarr.enable = true; - services.radarr.enable = true; - services.lidarr.enable = true; - services.bazarr.enable = true; + # services.sonarr.enable = true; + # services.radarr.enable = true; + # services.lidarr.enable = true; + # services.bazarr.enable = true; #indexing - services.prowlarr.enable = true; + # services.prowlarr.enable = true; #services.jackett.enable = true; - #torrent managment - services.transmission.enable = true; - ##networking # Enable the OpenSSH daemon. services.openssh.enable = true; @@ -159,14 +156,14 @@ #mounts - fileSystems."/mnt/nas" = { - device = "192.168.1.137:/mnt/Main/Home"; - fsType = "nfs"; + # fileSystems."/mnt/nas" = { + # device = "192.168.1.137:/mnt/Main/Home"; + # fsType = "nfs"; - options = [ - #"nfsvers=4.2" - "x-systemd.automount" "noauto" - "x-systemd.idle-timeout=600" - ]; - }; + # options = [ + # #"nfsvers=4.2" + # "x-systemd.automount" "noauto" + # "x-systemd.idle-timeout=600" + # ]; + # }; } diff --git a/machines/galadriel/hardware-configuration.nix b/machines/galadriel/hardware-configuration.nix new file mode 100644 index 0000000..0963fff --- /dev/null +++ b/machines/galadriel/hardware-configuration.nix @@ -0,0 +1,46 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/1f5ecd69-80d4-454a-96bd-cdc23884470c"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/5AD3-F917"; + fsType = "vfat"; + }; + + fileSystems."/Data" = + { device = "/dev/disk/by-uuid/c3b47e0b-c4d1-4af8-8ab0-7fe53c76dc65"; + fsType = "ext4"; + }; + + boot.initrd.luks.devices."luks-028e05b0-f079-41f6-b244-eb7ceda4f315".device = "/dev/disk/by-uuid/028e05b0-f079-41f6-b244-eb7ceda4f315"; + + swapDevices = + [ { device = "/dev/disk/by-uuid/ba518273-20cb-44b0-a985-d53b4e4f1402"; } + ]; + + # 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 + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.eno1.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/machines/galadriel/nvidia.nix b/machines/galadriel/nvidia.nix index 07a530b..da229c5 100644 --- a/machines/galadriel/nvidia.nix +++ b/machines/galadriel/nvidia.nix @@ -1,6 +1,6 @@ { config, lib, pkgs, ... }: { - + imports = [ ./cachix.nix ]; # Import the cachix cache for cuda packages # Enable OpenGL hardware.opengl = { enable = true; @@ -14,7 +14,6 @@ #boot with nvidia kernel module boot.initrd.kernelModules = [ "nvidia" ]; hardware.nvidia = { - # Modesetting is required. modesetting.enable = true; @@ -40,4 +39,16 @@ # Optionally, you may need to select the appropriate driver version for your specific GPU. package = config.boot.kernelPackages.nvidiaPackages.stable; }; + + + # Enable the CUDA toolkit + #install packages + environment.systemPackages = with pkgs; [ + cudaPackages.cudnn + cudaPackages.cudatoolkit + cudaPackages.tensorrt + + ]; + + } diff --git a/machines/galadriel/zfs.nix b/machines/galadriel/zfs.nix new file mode 100644 index 0000000..e6cffd0 --- /dev/null +++ b/machines/galadriel/zfs.nix @@ -0,0 +1,19 @@ +{ config, pkgs, lib, ... }: +{ + boot.supportedFilesystems = [ "zfs" ]; + boot.zfs.forceImportRoot = false; + networking.hostId = "1ccccd3a"; + services.zfs.trim.enable = true; + services.zfs.autoScrub.enable = true; + services.zfs.autoSnapshot.enable = true; + services.zfs.autoSnapshot.flags = "-k -p --utc"; + + environment.packages = with pkgs; [ + zfs + zfsnap + zfstools + zfsbackup + lz4 + ]; + +} diff --git a/profiles/base.nix b/profiles/base.nix index 235d6dc..299c4d1 100644 --- a/profiles/base.nix +++ b/profiles/base.nix @@ -6,6 +6,33 @@ imports = ../services/ssh.nix ]; + #system vide bash aliases. + environment.shellAliases = { + gst="git status"; + gcm="git commit -m"; + gsw="git switch"; + gaa="git add -A"; + gb="git branch"; + dc="cd"; + la="ls -la"; + lls="ls"; + }; + + programs.bash.shellAliases = config.environment.shellAliases; + + + + environment.interactiveShellInit = '' + alias gst='git status' + alias gcm='git commit -m' + alias gsw='git switch' + alias gaa='git add -A' + alias gb='git branch' + alias dc='cd' + alias la='ls -la' + alias lls='ls' + ''; + #nix stuff nix.gc.automatic = true; system.autoUpgrade.enable = true; diff --git a/services/stableDiffusion.nix b/services/stableDiffusion.nix new file mode 100644 index 0000000..e69de29