From 5ef0c6610b4a02beb3b1a8c6f10d975b8771b842 Mon Sep 17 00:00:00 2001 From: Aly Raffauf Date: Wed, 6 Mar 2024 22:14:16 -0500 Subject: [PATCH 1/5] added hardware config for mauville and volumes for homelab containers --- flake.nix | 3 ++- hosts/mauville/hardware-configuration.nix | 19 ++++++++++++------- modules/homelab/default.nix | 12 +++++++++--- 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/flake.nix b/flake.nix index eafd3388..36eedeaf 100644 --- a/flake.nix +++ b/flake.nix @@ -104,6 +104,7 @@ ./users/aly ./desktop/gnome ./modules/virtualization + ./modules/homelab ./modules/steam ./modules/via-qmk ./modules/logitech @@ -160,4 +161,4 @@ ]; }; }; -} \ No newline at end of file +} diff --git a/hosts/mauville/hardware-configuration.nix b/hosts/mauville/hardware-configuration.nix index a2498ee9..b2a585d1 100644 --- a/hosts/mauville/hardware-configuration.nix +++ b/hosts/mauville/hardware-configuration.nix @@ -8,23 +8,28 @@ [ (modulesPath + "/installer/scan/not-detected.nix") ]; - boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ]; + boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "sd_mod" ]; boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-intel" ]; + boot.kernelModules = [ "kvm-amd" ]; boot.extraModulePackages = [ ]; fileSystems."/" = - { device = "/dev/disk/by-uuid/ed744c02-8854-4f1a-8e75-ed15f02775e3"; + { device = "/dev/disk/by-uuid/c4217c88-3101-434b-8321-58e2ac89527c"; fsType = "ext4"; }; fileSystems."/boot" = - { device = "/dev/disk/by-uuid/37BB-86B6"; + { device = "/dev/disk/by-uuid/3445-B2A0"; fsType = "vfat"; }; + fileSystems."/mnt/Media" = + { device = "/dev/disk/by-uuid/f7e9e6d6-2bf6-429a-aaf0-49b55d53fc83"; + fsType = "ext4"; + }; + swapDevices = - [ { device = "/dev/disk/by-uuid/7a33dbc2-73f7-490b-9aa6-382e119a997e"; } + [ { device = "/dev/disk/by-uuid/26094ada-7ba4-4437-bacb-b3cdf6c3397b"; } ]; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking @@ -32,8 +37,8 @@ # 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.wlp0s20f3.useDHCP = lib.mkDefault true; + # networking.interfaces.enp4s0.useDHCP = lib.mkDefault true; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; } diff --git a/modules/homelab/default.nix b/modules/homelab/default.nix index 0730ab8d..e0b5acde 100644 --- a/modules/homelab/default.nix +++ b/modules/homelab/default.nix @@ -20,17 +20,23 @@ audiobookshelf = { ports = ["0.0.0.0:13378:80"]; image = "ghcr.io/advplyr/audiobookshelf:latest"; + volumes = [ + "/mnt/Media:/Media" + ]; }; plex-server = { ports = ["0.0.0.0:32400:32400"]; image = "plexinc/pms-docker:public"; + volumes = [ + "/mnt/Media:/Media" + ]; }; transmission-server = { ports = ["0.0.0.0:9091:9091"]; image = "linuxserver/transmission:latest"; - # volumes = [ - # "/home/aly/transmission:/config" - # ]; + volumes = [ + "/mnt/Media:/Media" + ]; }; }; }; From 1c3ee04906b5bd442535cd9caecb133bc89ec404 Mon Sep 17 00:00:00 2001 From: Aly Raffauf Date: Wed, 6 Mar 2024 22:28:48 -0500 Subject: [PATCH 2/5] updated open ports for transmission --- modules/homelab/default.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/homelab/default.nix b/modules/homelab/default.nix index e0b5acde..4c907824 100644 --- a/modules/homelab/default.nix +++ b/modules/homelab/default.nix @@ -1,7 +1,9 @@ { config, pkgs, ... }: { # Open TCP ports for audiobookshelf, plex-server, and transmission-server. - networking.firewall.allowedTCPPorts = [ 13378 32400 9091 ]; + networking.firewall.allowedTCPPorts = [ 51413 13378 32400 9091 ]; + networking.firewall.allowedUDPPorts = [ 51413 ]; + virtualisation = { podman = { enable = true; @@ -32,7 +34,7 @@ ]; }; transmission-server = { - ports = ["0.0.0.0:9091:9091"]; + ports = ["0.0.0.0:9091:9091" "0.0.0.0:51413:51413"]; image = "linuxserver/transmission:latest"; volumes = [ "/mnt/Media:/Media" From d14da7c82c19b56700f38d90e605e02510a32b90 Mon Sep 17 00:00:00 2001 From: Aly Raffauf Date: Wed, 6 Mar 2024 23:49:20 -0500 Subject: [PATCH 3/5] made homelab import virtualization in order to share code between hosts --- flake.nix | 1 - modules/homelab/default.nix | 18 +++++------------- modules/virtualization/default.nix | 3 +++ 3 files changed, 8 insertions(+), 14 deletions(-) diff --git a/flake.nix b/flake.nix index 36eedeaf..9fde06ac 100644 --- a/flake.nix +++ b/flake.nix @@ -103,7 +103,6 @@ ./system ./users/aly ./desktop/gnome - ./modules/virtualization ./modules/homelab ./modules/steam ./modules/via-qmk diff --git a/modules/homelab/default.nix b/modules/homelab/default.nix index 4c907824..fc3b5a62 100644 --- a/modules/homelab/default.nix +++ b/modules/homelab/default.nix @@ -1,23 +1,15 @@ { config, pkgs, ... }: + { + imports = [ + ../virtualization + ]; + # Open TCP ports for audiobookshelf, plex-server, and transmission-server. networking.firewall.allowedTCPPorts = [ 51413 13378 32400 9091 ]; networking.firewall.allowedUDPPorts = [ 51413 ]; virtualisation = { - podman = { - enable = true; - - # Create a `docker` alias for podman, to use it as a drop-in replacement - dockerCompat = true; - - # Required for containers under podman-compose to be able to talk to each other. - defaultNetwork.settings.dns_enabled = true; - }; - oci-containers = { - backend = "podman"; - }; - oci-containers.containers = { audiobookshelf = { ports = ["0.0.0.0:13378:80"]; diff --git a/modules/virtualization/default.nix b/modules/virtualization/default.nix index d7fb2ac2..6feaea6b 100644 --- a/modules/virtualization/default.nix +++ b/modules/virtualization/default.nix @@ -18,5 +18,8 @@ # Required for containers under podman-compose to be able to talk to each other. defaultNetwork.settings.dns_enabled = true; }; + oci-containers = { + backend = "podman"; + }; }; } \ No newline at end of file From 56ebb9007799481a0d8b724273964bf4d76f5330 Mon Sep 17 00:00:00 2001 From: Aly Raffauf Date: Wed, 6 Mar 2024 23:56:27 -0500 Subject: [PATCH 4/5] added custom autoupgrade and nix.gc settings for mauville --- hosts/mauville/default.nix | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/hosts/mauville/default.nix b/hosts/mauville/default.nix index 899399df..dfe88a7f 100644 --- a/hosts/mauville/default.nix +++ b/hosts/mauville/default.nix @@ -2,7 +2,7 @@ # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). -{ config, pkgs, ... }: +{ config, pkgs, lib, ... }: { imports = @@ -10,12 +10,22 @@ ./hardware-configuration.nix ]; - # Bootloader. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; networking.hostName = "mauville"; # Define your hostname. + + system.autoUpgrade = { + allowReboot = lib.mkForce true; + dates = lib.mkForce "weekly"; + operation = lib.mkForce "boot"; + }; + + # Delete generations older than 14 days. + nix.gc = { + options = lib.mkForce "--delete-older-than 14d"; + }; # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions From 39a00389ddfdaf20fd8f96d3fea797c4bbc86df2 Mon Sep 17 00:00:00 2001 From: Flake Bot Date: Thu, 7 Mar 2024 06:15:53 +0000 Subject: [PATCH 5/5] Bump flake.lock Signed-off-by: Flake Bot <41898282+github-actions[bot]@users.noreply.github.com> --- flake.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/flake.lock b/flake.lock index a5d85aeb..1714f058 100644 --- a/flake.lock +++ b/flake.lock @@ -26,11 +26,11 @@ ] }, "locked": { - "lastModified": 1709677162, - "narHash": "sha256-nIXa0KM3FOVjD3XDDigW12qktQvLG+uKuPg00rjIX/8=", + "lastModified": 1709764752, + "narHash": "sha256-+lM4J4JoJeiN8V+3WSWndPHj1pJ9Jc1UMikGbXLqCTk=", "owner": "nix-community", "repo": "home-manager", - "rev": "bdea159ffab9865f808b8d92fd2bef33521867b2", + "rev": "cf111d1a849ddfc38e9155be029519b0e2329615", "type": "github" }, "original": { @@ -88,11 +88,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1709479366, - "narHash": "sha256-n6F0n8UV6lnTZbYPl1A9q1BS0p4hduAv1mGAP17CVd0=", + "lastModified": 1709703039, + "narHash": "sha256-6hqgQ8OK6gsMu1VtcGKBxKQInRLHtzulDo9Z5jxHEFY=", "owner": "nixos", "repo": "nixpkgs", - "rev": "b8697e57f10292a6165a20f03d2f42920dfaf973", + "rev": "9df3e30ce24fd28c7b3e2de0d986769db5d6225d", "type": "github" }, "original": {