{ pkgs, inputs, ... }:
{
  imports = [
    ./hardware-configuration.nix

    "${inputs.self}/modules/nixos/base"
    "${inputs.self}/modules/nixos/features/boot.nix"
    "${inputs.self}/modules/nixos/features/fonts.nix"
    "${inputs.self}/modules/nixos/features/packages.nix"
    "${inputs.self}/modules/nixos/features/plasma.nix"
    "${inputs.self}/modules/nixos/features/sound.nix"
    "${inputs.self}/modules/nixos/features/catppuccin.nix"
    "${inputs.self}/modules/nixos/features/ssh.nix"
    "${inputs.self}/modules/nixos/features/steam.nix"
    "${inputs.self}/modules/nixos/features/sunshine.nix"
  ];

  networking = {
    hostName = "mafuyu";
    networkmanager.enable = true;
    firewall.enable = false;
  };

  services.caddy = {
    enable = true;
    virtualHosts."http://broadcast.epc.mizuki.arpa".extraConfig = ''
      @preflight method OPTIONS

      header {
        Access-Control-Allow-Origin *
        Access-Control-Allow-Methods "GET, POST, PUT, PATCH, DELETE, OPTIONS"
        Access-Control-Allow-Headers *
      }

      respond @preflight "" 204

      reverse_proxy 127.0.0.1:6769
    '';
    virtualHosts."http://broadcast.epc.mizuki.arpa:8027".extraConfig = ''
      @preflight method OPTIONS

      header {
        Access-Control-Allow-Origin *
        Access-Control-Allow-Methods "GET, POST, PUT, PATCH, DELETE, OPTIONS"
        Access-Control-Allow-Headers *
      }

      respond @preflight "" 204

      reverse_proxy 127.0.0.1:1108
    '';
  };

  services.displayManager = {
    plasma-login-manager.enable = true;
    autoLogin.user = "imnyang";
  };

  users.users.imnyang.openssh.authorizedKeys.keys = [
    "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOHP3Z+AYrRh9f8TYyqChKfeyNm3lOe0F75AwRHTTaxD imnyang@mizuki"
  ];

  system.stateVersion = "26.05";
}
