{ config, pkgs, lib, ... }:

{
  imports =
    [
        ./hardware-configuration.nix
        #./home-assistant.nix
    ];

  boot.loader = {
    systemd-boot.enable = true;
    efi.canTouchEfiVariables = true;
  };

  boot.kernelParams = [ "console=tty0" ];
  boot.binfmt.emulatedSystems = [ "aarch64-linux" ];

  boot.swraid = {
     enable = true;
     mdadmConf = ''
        ARRAY /dev/md/edi:DATA metadata=1.2 UUID=f0384881:84c12f70:3dcad802:653ccc30
        MAILADDR root
     '';
  };

  fileSystems = {
     "/home/aaronh/DATA" = {
        device = "/dev/md127";
     };
  };

  nix.settings.extra-platforms = [ "aarch64-linux" ];  
  nix.buildMachines = [{ 
     hostName = "localhost";
     systems = ["x86_64-linux"
                "aarch64-linux"];
     supportedFeatures = ["kvm" "nixos-test" "big-parallel" "benchmark"];
     maxJobs = 8;
  }];

  # Define user accounts
  users.users.aaronh = {
    description = "Aaron Honeycutt";
    home = "/home/aaronh";
    extraGroups = [ "wheel" "networkmanager" "adm"];
    isNormalUser = true;
    hashedPassword = "$6$aAcbLtqiqzySifls$jdKMOQjoWITHD/dWNNZVUH/qNc6aoJ7v4zYofi0U7IJSVTbmOfChS3mzaJbp57AodjdPNKPrnrip8Nlh2Qanx.";
  };

  networking.hostName = "EDI";
  networking.firewall = {
    enable = true;
    allowedTCPPorts = [ 80 443 3000 8096 8123 ];
  };

  nixpkgs.config.permittedInsecurePackages = [
    "openssl-1.1.1w"
  ];

  # Enable the OpenSSH daemon.
  services.openssh.enable = true;
  services.openssh.settings = {
    PermitRootLogin = "no";
  };

  services.hydra = {
    enable = true;
    hydraURL = "localhost:3000";
    notificationSender = "hydra@localhost";
    useSubstitutes = true;
  };

}