aboutsummaryrefslogtreecommitdiff
path: root/nix/hosts
diff options
context:
space:
mode:
authorFranck Cuny <franck@fcuny.net>2024-08-05 09:37:18 -0700
committerFranck Cuny <franck@fcuny.net>2024-08-05 09:37:18 -0700
commit11de044811d357b4b34e87bccfaf5302d0eb6c93 (patch)
tree050312e0a00e6467fda72095c49d2f2ae0ae567e /nix/hosts
parentadd a linux VM as a new host (diff)
downloadinfra-11de044811d357b4b34e87bccfaf5302d0eb6c93.tar.gz
add a new host: wildcat
This is a VPS on hetzner.
Diffstat (limited to 'nix/hosts')
-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
6 files changed, 107 insertions, 0 deletions
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"
+
+ '';
+}