{ lib, config, pkgs, hostname, stateVersion, username, desktop, gpu, inputs, platform, theme, ... }: {
  imports = [ 
      # Modules
      inputs.disko.nixosModules.disko
      
      # Services
      ./common/services/openssh.nix
      ./common/services/fail2ban.nix
      ./common/services/tailscale.nix
      ./common/services/promtail.nix
      ./common/services/telegraf.nix

      # NixOS Modules
      ./common/modules/networking.nix      # Initial Networking configs
      ./common/modules/nixos.nix           # Common NixOS Configurations
      ./common/modules/remote-builders.nix # Add remote builders

      ./users/root
      ./users/${username}
      ./hosts/${hostname}
    ];

  # List packages installed in system profile
  environment.systemPackages = with pkgs; [
    git
    bat
    eza
    duf
    gnupg
    screen
    btop
  ];

  # Select internationalisation properties.
  i18n.defaultLocale = "en_US.UTF-8";
  i18n.extraLocaleSettings = {
    LC_ADDRESS = "en_US.UTF-8";
    LC_IDENTIFICATION = "en_US.UTF-8";
    LC_MEASUREMENT = "en_US.UTF-8";
    LC_MONETARY = "en_US.UTF-8";
    LC_NAME = "en_US.UTF-8";
    LC_NUMERIC = "en_US.UTF-8";
    LC_PAPER = "en_US.UTF-8";
    LC_TELEPHONE = "en_US.UTF-8";
    LC_TIME = "en_US.UTF-8";
  };

  system.stateVersion = stateVersion;
}