# Main configuration entrypoint file
{
  pkgs,
  inputs,
  ...
}: {
  imports = [
    ./services/nginx.nix
    ./services/openssh.nix
    ./services/forgejo.nix
    # ./services/nextcloud.nix
    # ./services/seafile.nix
    ./services/vaultwarden.nix
    ./services/jellyfin.nix
    ./services/website.nix
    ./services/mailserver.nix
    ./services/fail2ban.nix

    ./services/zed.nix # IMPORTANTE

    ./services/auto-torrent.nix

    ./services/misc.nix

    ./modules/age.nix
    ./modules/git.nix
    ./modules/nix-settings.nix
    ./modules/zfs.nix

    (import ./modules/microvm.nix {routed = true;})
    (import ./modules/networking-shared.nix {hostname = "server";})
    (import ./modules/users.nix {main-user = "baritone";})
  ];

  boot.loader = {
    systemd-boot.enable = true;
    efi.canTouchEfiVariables = true;
    timeout = 0;
  };
  boot.kernel.sysctl = {"vm.swappiness" = 85;};

  # Enable microcode updates
  hardware.enableRedistributableFirmware = true;

  # programs.zsh = {
  #   enable = true;
  #   enableGlobalCompInit = true;
  #   shellAliases = {
  #     "nrb" = "sudo nixos-rebuild switch --flake /etc/nixos";
  #   };
  # };

  environment.systemPackages = with pkgs; [
    wget
    curl
    git
    vim

    inputs.agenix.packages."${system}".default
  ];

  programs.nano.enable = false;
  environment.variables = {
    EDITOR = "vim"; # FUCK NANO
  };

  time.timeZone = "Europe/Copenhagen";

  security.sudo = {
    enable = true;
    # I know what im doing
    extraConfig = ''
      Defaults  lecture = never
    '';
  };

  system.stateVersion = "24.11";
}