# SPDX-FileCopyrightText: 2020 Luke Granger-Brown <depot@lukegb.com>
#
# SPDX-License-Identifier: Apache-2.0

{ lib, ... }:
{
  imports = [
    ../../../third_party/nixpkgs/nixos/modules/profiles/qemu-guest.nix
    ../lib/low-space.nix
  ];

  config = {
    boot.initrd.availableKernelModules = [
      "uhci_hcd"
      "ehci_pci"
      "ahci"
      "virtio_pci"
      "sr_mod"
      "virtio_blk"
    ];

    boot.kernelParams = [
      "console=tty1"
      "console=ttyS0,115200"  # <-- /dev/console

      "mitigations=off"
    ];

    powerManagement.cpuFreqGovernor = lib.mkDefault "performance";
  
    fileSystems = {
      "/" = {
        device = "/dev/vda1";
        fsType = "ext4";
      };
      "/boot" = {
        device = "/dev/vda2";
        fsType = "vfat";
      };
    };
  
    # Use the systemd-boot EFI boot loader.
    boot.loader.systemd-boot.enable = true;
    boot.loader.efi.canTouchEfiVariables = true;

    nix.maxJobs = lib.mkDefault 2;
  
    # Networking!
    networking = {
      domain = "blade.as205479.net";
      nameservers = ["8.8.8.8" "8.8.4.4"];
      search = lib.mkBefore [
        "blade.as205479.net"
      ];

      useDHCP = false;
      defaultGateway = {
        address = "10.100.0.1";
        interface = "enp1s0";
      };
  
      firewall.allowedUDPPorts = [
        41641 # Tailscale
      ];
    };
  
    services.qemuGuest.enable = true;
  };
}