aboutsummaryrefslogtreecommitdiff
path: root/hosts/odin
diff options
context:
space:
mode:
Diffstat (limited to 'hosts/odin')
-rw-r--r--hosts/odin/default.nix61
-rw-r--r--hosts/odin/hardware.nix38
2 files changed, 99 insertions, 0 deletions
diff --git a/hosts/odin/default.nix b/hosts/odin/default.nix
new file mode 100644
index 0000000..47515e8
--- /dev/null
+++ b/hosts/odin/default.nix
@@ -0,0 +1,61 @@
+{ lib, inputs, ... }:
+{
+ system.stateVersion = "24.05";
+
+ imports = [ ./hardware.nix ];
+
+ home-manager = {
+ useGlobalPkgs = true;
+ useUserPackages = true;
+ users = import "${inputs.self}/users";
+ extraSpecialArgs = {
+ inherit inputs;
+ headless = true;
+ };
+ };
+
+ networking = {
+ hostName = "odin";
+ hostId = "bd03847d"; # Required for ZFS support.
+ nameservers = [ "10.44.0.1" ];
+ defaultGateway.address = "10.44.0.1";
+ interfaces.eno1 = {
+ useDHCP = false;
+ ipv4.addresses = [{
+ address = "10.44.4.101";
+ prefixLength = 16;
+ }];
+ };
+ };
+
+ time.timeZone = "America/Detroit";
+
+ boot = {
+ loader = {
+ systemd-boot.enable = true;
+ efi.canTouchEfiVariables = true;
+ };
+ zfs.extraPools = [ "tank" ];
+ };
+
+ services.zquota = {
+ enable = true;
+ quotas = {
+ "tank/backups" = 512;
+ "tank/media" = 1536;
+ };
+ };
+
+ programs.motd = {
+ enable = true;
+ networkInterfaces = lib.lists.singleton "eno1";
+ servicesToCheck = [
+ "caddy"
+ "immich-machine-learning"
+ "immich-server"
+ "postgresql"
+ "redis-immich"
+ "zfs-zed"
+ ];
+ };
+}
diff --git a/hosts/odin/hardware.nix b/hosts/odin/hardware.nix
new file mode 100644
index 0000000..00210c4
--- /dev/null
+++ b/hosts/odin/hardware.nix
@@ -0,0 +1,38 @@
+# 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" "ehci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" "sr_mod" ];
+ boot.initrd.kernelModules = [ ];
+ boot.kernelModules = [ "kvm-intel" ];
+ boot.extraModulePackages = [ ];
+
+ fileSystems."/" =
+ { device = "/dev/disk/by-uuid/f3bedccb-3f2b-49ae-9be4-5ec9fe683027";
+ fsType = "ext4";
+ };
+
+ fileSystems."/boot" =
+ { device = "/dev/disk/by-uuid/78C3-E7F8";
+ 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;
+
+ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+ hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+}