diff --git a/flake.nix b/flake.nix index 9b6f461..639e223 100644 --- a/flake.nix +++ b/flake.nix @@ -12,6 +12,7 @@ inputs.nixpkgs.follows = "nixpkgs"; }; ghostty.url = "github:ghostty-org/ghostty"; + quadlet-nix.url = "github:SEIAROTg/quadlet-nix"; }; outputs = inputs @ { @@ -21,6 +22,7 @@ darwin, home-manager, ghostty, + quadlet-nix, ... }: let userName = "wyatt"; @@ -110,24 +112,21 @@ hostname = "ixion"; role = "server"; }; - # modules = [ - # nix-flatpak.nixosModules.nix-flatpak - # nix-ld.nixosModules.nix-ld - # ./modules/nixos/hardware-configuration.nix - # ./modules/nix-core.nix - # ./modules/nixos/configuration.nix - # ./modules/host-users.nix - # - # home-manager.nixosModules.home-manager - # { - # home-manager.useGlobalPkgs = true; - # home-manager.useUserPackages = true; - # home-manager.extraSpecialArgs = extraSpecialArgs; - # home-manager.users.${userName}.imports = [ - # ./home - # ]; - # } - # ]; + modules = [ + nix-flatpak.nixosModules.nix-flatpak + ./modules/common + ./modules/machine/ixion + + home-manager.nixosModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.extraSpecialArgs = extraSpecialArgs; + home-manager.users.${userName}.imports = [ + ./home + ]; + } + ]; }; }; } diff --git a/modules/machine/ixion/configuration.nix b/modules/machine/ixion/configuration.nix new file mode 100644 index 0000000..50e9b07 --- /dev/null +++ b/modules/machine/ixion/configuration.nix @@ -0,0 +1,16 @@ +{ + lib, + pkgs, + userName, + ... +}: { + imports = [ ]; + + # Enable flakes for NixOS + nix.settings.experimental-features = ["nix-command" "flakes"]; + + # Custom kernel/boot stuff + boot.kernelPackages = pkgs.linuxPackages_latest; + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; +} diff --git a/modules/machine/ixion/default.nix b/modules/machine/ixion/default.nix new file mode 100644 index 0000000..187a110 --- /dev/null +++ b/modules/machine/ixion/default.nix @@ -0,0 +1,6 @@ +{...}: { + imports = [ + ./configuration.nix + ./hardware-configuration.nix + ]; +} diff --git a/modules/machine/ixion/hardware-configuration.nix b/modules/machine/ixion/hardware-configuration.nix new file mode 100644 index 0000000..b771ef4 --- /dev/null +++ b/modules/machine/ixion/hardware-configuration.nix @@ -0,0 +1,46 @@ +# --- DO NOT USE --- +# +# this is copied from ../valefor/hardware-configuration.nix +# generate a new hardware-configuration.nix before using this! +# +# ------------------ +# +# 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" "usb_storage" "usbhid" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/ff89bde1-4b33-4277-b649-b92700b2406c"; + fsType = "xfs"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/3A4B-6866"; + fsType = "vfat"; + options = [ "fmask=0022" "dmask=0022" ]; + }; + + swapDevices = [ ]; + + # 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; + # networking.interfaces.wlp1s0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/modules/virtualization/README.md b/modules/virtualization/README.md index 807ab08..2cd14d4 100644 --- a/modules/virtualization/README.md +++ b/modules/virtualization/README.md @@ -40,7 +40,13 @@ Example: }; ``` -To get a full, comprehensive list of what you can do with the podman module, please check out (podman.nix)[./podman.nix]! +To get a full, comprehensive list of what you can do with the podman module, please check out [podman.nix](./podman.nix)! + +### Podman Quadlets + +This is a wrapper around a project called [`quadlet-nix`](https://github.com/SEIAROTg/quadlet-nix), a way of defining systemd services as containers with Nix! Since I have existing services running inside of containers and don't want to risk breaking _everything_ that I have running, I figured this would be a safe, transitionary approach to handle this. + +This is still a work-in-progress, check back soon on progress on this. ## Kubernetes diff --git a/modules/virtualization/quadlet.nix b/modules/virtualization/quadlet.nix new file mode 100644 index 0000000..484f9da --- /dev/null +++ b/modules/virtualization/quadlet.nix @@ -0,0 +1,5 @@ +# ---------------------- +# Wrapper for defining Quadlets in Nix via quadlet-nix +# +# Still WIP +# ----------------------