{pkgs, ...}: {
  imports = [
    ../../users
  ];

  nix = {
    settings = {
      experimental-features = ["nix-command" "flakes"];
      trusted-users = ["leyla"];
    };
    gc = {
      automatic = true;
      dates = "weekly";
      options = "--delete-older-than 7d";
    };
    optimise = {
      automatic = true;
      dates = ["weekly"];
    };
  };

  # Enable networking
  networking.networkmanager.enable = true;

  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";
  };

  users = {
    users = {
      leyla = {
        uid = 1000;
        description = "Leyla";
        group = "leyla";
      };

      ester = {
        uid = 1001;
        description = "Ester";
        group = "ester";
      };

      eve = {
        uid = 1002;
        description = "Eve";
        group = "eve";
      };

      jellyfin = {
        uid = 2000;
        group = "jellyfin";
        isSystemUser = true;
      };

      forgejo = {
        uid = 2002;
        group = "forgejo";
        isSystemUser = true;
      };

      pihole = {
        uid = 2003;
        group = "pihole";
        isSystemUser = true;
      };
    };

    groups = {
      leyla = {
        gid = 1000;
        members = ["lelya"];
      };

      ester = {
        gid = 1001;
        members = ["ester"];
      };

      eve = {
        gid = 1002;
        members = ["eve"];
      };

      users = {
        gid = 100;
        members = ["leyla" "ester" "eve"];
      };

      jellyfin = {
        gid = 2000;
        members = ["jellyfin" "leyla"];
      };

      jellyfin_media = {
        gid = 2001;
        members = ["jellyfin" "leyla" "ester" "eve"];
      };

      forgejo = {
        gid = 2002;
        members = ["forgejo" "leyla"];
      };

      pihole = {
        gid = 2003;
        members = ["pihole" "leyla"];
      };
    };
  };

  services = {
    automatic-timezoned = {
      enable = true;
    };

    openssh = {
      enable = true;
      ports = [22];
      settings = {
        PasswordAuthentication = false;
        AllowUsers = ["leyla"]; # Allows all users by default. Can be [ "user1" "user2" ]
        UseDns = true;
        X11Forwarding = false;
      };
    };
  };

  environment = {
    # List packages installed in system profile.
    systemPackages = with pkgs; [
      qemu
      (pkgs.writeShellScriptBin "qemu-system-x86_64-uefi" ''
        qemu-system-x86_64 \
          -bios ${OVMF.fd}/FV/OVMF.fd \
          "$@"
      '')

      wget

      # version control
      git

      # system debuging tools
      iputils
      dnsutils
    ];

    sessionVariables = rec {
      SOPS_AGE_KEY_DIRECTORY = "/var/lib/sops-nix";
      SOPS_AGE_KEY_FILE = "${SOPS_AGE_KEY_DIRECTORY}/key.txt";
    };
  };

  sops = {
    defaultSopsFormat = "yaml";
    gnupg.sshKeyPaths = [];

    age = {
      keyFile = "/var/lib/sops-nix/key.txt";
      sshKeyPaths = [];
      # generateKey = true;
    };
  };
}