aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nix/flake/devshell.nix2
-rw-r--r--nix/flake/hosts.nix2
-rw-r--r--nix/flake/packages.nix2
-rw-r--r--nix/hosts/nixos/default.nix6
-rw-r--r--nix/hosts/nixos/packages.nix9
-rw-r--r--nix/hosts/nixos/user.nix12
-rw-r--r--nix/hosts/wildcat/default.nix15
-rw-r--r--nix/hosts/wildcat/hardware.nix29
-rw-r--r--nix/hosts/wildcat/networking.nix36
9 files changed, 111 insertions, 2 deletions
diff --git a/nix/flake/devshell.nix b/nix/flake/devshell.nix
index ff56ca6..6a3d678 100644
--- a/nix/flake/devshell.nix
+++ b/nix/flake/devshell.nix
@@ -29,7 +29,7 @@
gofmt.enable = true;
gofumpt.enable = true;
nixpkgs-fmt.enable = true;
- shellcheck.enable = true;
+ # shellcheck.enable = true;
shfmt.enable = true;
taplo.enable = true;
ruff.enable = true;
diff --git a/nix/flake/hosts.nix b/nix/flake/hosts.nix
index c02fe6c..836a26b 100644
--- a/nix/flake/hosts.nix
+++ b/nix/flake/hosts.nix
@@ -34,6 +34,7 @@ let
mkNixosConfig = system: path: nixpkgs.lib.nixosSystem {
inherit system;
modules = [
+ "${self}/nix/hosts/nixos"
path
];
specialArgs = { inherit inputs self; };
@@ -49,6 +50,7 @@ in
nixosConfigurations = {
vm = mkNixosConfig "aarch64-linux" "${self}/nix/hosts/vm";
+ wildcat = mkNixosConfig "x86_64-linux" "${self}/nix/hosts/wildcat";
};
}
];
diff --git a/nix/flake/packages.nix b/nix/flake/packages.nix
index ae4caba..16c5ec4 100644
--- a/nix/flake/packages.nix
+++ b/nix/flake/packages.nix
@@ -3,7 +3,7 @@
inputs.flake-parts.flakeModules.easyOverlay
];
- perSystem = { config, pkgs, ... }: {
+ perSystem = { pkgs, ... }: {
packages = {
git-blame-stats = pkgs.callPackage "${self}/packages/git-blame-stats" { };
git-broom = pkgs.callPackage "${self}/packages/git-broom" { };
diff --git a/nix/hosts/nixos/default.nix b/nix/hosts/nixos/default.nix
new file mode 100644
index 0000000..abfb3a7
--- /dev/null
+++ b/nix/hosts/nixos/default.nix
@@ -0,0 +1,6 @@
+{ ... }: {
+ imports = [
+ ./packages.nix
+ ./user.nix
+ ];
+}
diff --git a/nix/hosts/nixos/packages.nix b/nix/hosts/nixos/packages.nix
new file mode 100644
index 0000000..8e807c6
--- /dev/null
+++ b/nix/hosts/nixos/packages.nix
@@ -0,0 +1,9 @@
+{ pkgs, ... }: {
+ environment = {
+ systemPackages = with pkgs; [
+ git
+ jq
+ vim
+ ];
+ };
+}
diff --git a/nix/hosts/nixos/user.nix b/nix/hosts/nixos/user.nix
new file mode 100644
index 0000000..b358d3e
--- /dev/null
+++ b/nix/hosts/nixos/user.nix
@@ -0,0 +1,12 @@
+{ ... }:
+{
+ users.users.fcuny = {
+ uid = 1000;
+ isNormalUser = true;
+ extraGroups =
+ [
+ "wheel"
+ "dialout" # Enable access to serial devices
+ ];
+ };
+}
diff --git a/nix/hosts/wildcat/default.nix b/nix/hosts/wildcat/default.nix
new file mode 100644
index 0000000..f62df7d
--- /dev/null
+++ b/nix/hosts/wildcat/default.nix
@@ -0,0 +1,15 @@
+{ ... }: {
+
+ imports = [
+ ./hardware.nix
+ ./networking.nix
+ ];
+
+ boot.tmp.cleanOnBoot = true;
+ zramSwap.enable = true;
+ networking.hostName = "fcuny";
+ networking.domain = "net";
+ services.openssh.enable = true;
+ users.users.root.openssh.authorizedKeys.keys = [ ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINBkozy+X96u5ciX766bJ/AyQ3xm1tXZTIr5+4PVFZFi'' ];
+ system.stateVersion = "23.11";
+}
diff --git a/nix/hosts/wildcat/hardware.nix b/nix/hosts/wildcat/hardware.nix
new file mode 100644
index 0000000..cc14f5a
--- /dev/null
+++ b/nix/hosts/wildcat/hardware.nix
@@ -0,0 +1,29 @@
+{ modulesPath, ... }:
+{
+ imports = [ (modulesPath + "/profiles/qemu-guest.nix") ];
+
+ boot.initrd.availableKernelModules = [
+ "ata_piix"
+ "uhci_hcd"
+ "xen_blkfront"
+ "vmw_pvscsi"
+ ];
+
+ boot.loader.grub = {
+ enable = true;
+ device = "/dev/sda";
+ };
+
+ boot.initrd.kernelModules = [ "nvme" ];
+
+ fileSystems = {
+ "/" = {
+ device = "/dev/sda1";
+ fsType = "ext4";
+ };
+ "/data" = {
+ device = "/dev/disk/by-id/scsi-0HC_Volume_101115314";
+ fsType = "ext4";
+ };
+ };
+}
diff --git a/nix/hosts/wildcat/networking.nix b/nix/hosts/wildcat/networking.nix
new file mode 100644
index 0000000..1199113
--- /dev/null
+++ b/nix/hosts/wildcat/networking.nix
@@ -0,0 +1,36 @@
+{ lib, ... }: {
+ # This file was populated at runtime with the networking
+ # details gathered from the active system.
+ networking = {
+ nameservers = [
+ "2a01:4ff:ff00::add:2"
+ "2a01:4ff:ff00::add:1"
+ "185.12.64.1"
+ ];
+ defaultGateway = "172.31.1.1";
+ defaultGateway6 = {
+ address = "fe80::1";
+ interface = "eth0";
+ };
+ dhcpcd.enable = false;
+ usePredictableInterfaceNames = lib.mkForce false;
+ interfaces = {
+ eth0 = {
+ ipv4.addresses = [
+ { address = "5.78.87.68"; prefixLength = 32; }
+ ];
+ ipv6.addresses = [
+ { address = "2a01:4ff:1f0:d1a3::1"; prefixLength = 64; }
+ { address = "fe80::9400:3ff:fe98:d6dc"; prefixLength = 64; }
+ ];
+ ipv4.routes = [{ address = "172.31.1.1"; prefixLength = 32; }];
+ ipv6.routes = [{ address = "fe80::1"; prefixLength = 128; }];
+ };
+
+ };
+ };
+ services.udev.extraRules = ''
+ ATTR{address}=="96:00:03:98:d6:dc", NAME="eth0"
+
+ '';
+}