added quadlet-nix input, created initial ixion config, created wrapper around quadlets

also wrote some doucumentation about quadlets, nothing too comprehesive
though as the wrapper might get removed later
This commit is contained in:
Wyatt J. Miller 2025-06-01 19:04:38 -04:00
parent 4afb47e881
commit 831fce71b8
6 changed files with 97 additions and 19 deletions

View File

@ -12,6 +12,7 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
ghostty.url = "github:ghostty-org/ghostty"; ghostty.url = "github:ghostty-org/ghostty";
quadlet-nix.url = "github:SEIAROTg/quadlet-nix";
}; };
outputs = inputs @ { outputs = inputs @ {
@ -21,6 +22,7 @@
darwin, darwin,
home-manager, home-manager,
ghostty, ghostty,
quadlet-nix,
... ...
}: let }: let
userName = "wyatt"; userName = "wyatt";
@ -110,24 +112,21 @@
hostname = "ixion"; hostname = "ixion";
role = "server"; role = "server";
}; };
# modules = [ modules = [
# nix-flatpak.nixosModules.nix-flatpak nix-flatpak.nixosModules.nix-flatpak
# nix-ld.nixosModules.nix-ld ./modules/common
# ./modules/nixos/hardware-configuration.nix ./modules/machine/ixion
# ./modules/nix-core.nix
# ./modules/nixos/configuration.nix home-manager.nixosModules.home-manager
# ./modules/host-users.nix {
# home-manager.useGlobalPkgs = true;
# home-manager.nixosModules.home-manager home-manager.useUserPackages = true;
# { home-manager.extraSpecialArgs = extraSpecialArgs;
# home-manager.useGlobalPkgs = true; home-manager.users.${userName}.imports = [
# home-manager.useUserPackages = true; ./home
# home-manager.extraSpecialArgs = extraSpecialArgs; ];
# home-manager.users.${userName}.imports = [ }
# ./home ];
# ];
# }
# ];
}; };
}; };
} }

View File

@ -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;
}

View File

@ -0,0 +1,6 @@
{...}: {
imports = [
./configuration.nix
./hardware-configuration.nix
];
}

View File

@ -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.<interface>.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;
}

View File

@ -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 ## Kubernetes

View File

@ -0,0 +1,5 @@
# ----------------------
# Wrapper for defining Quadlets in Nix via quadlet-nix
#
# Still WIP
# ----------------------