{
  config,
  pkgs,
  lib,
  ...
}: let
  choose = paths: builtins.head (builtins.filter (p: builtins.pathExists p) paths);
  dummyFileSystems = {
    fileSystems."/" = {
      device = "/dev/disk/by-label/nixos";
      fsType = "ext4";
    };
  };
in {
  options.local = {
    hostname = lib.mkOption {
      type = lib.types.str;
      default = "nixos-default";
      description = "System hostname";
    };
    username = lib.mkOption {
      type = lib.types.str;
      default = "user";
      description = "Primary user username";
    };
    userDescription = lib.mkOption {
      type = lib.types.str;
      default = "NixOS User";
      description = "Primary user description";
    };
    address = lib.mkOption {
      type = lib.types.str;
      default = "10.1.1.100";
      description = "Static IP address";
    };
  };

  imports =
    [
      (choose [./modules/desktop-manager/gnome.nix ../desktop-manager/gnome.nix])
      (choose [./modules/local/hostname_username.nix ../local/hostname_username.nix])
      (choose [./modules/local/networking_local.nix ../local/networking_local.nix])
      # (choose [./modules/bootloader/seabios-assigned-iso-at-birth.nix ../bootloader/seabios-assigned-iso-at-birth.nix])
      (choose [./modules/lix-default.nix ../lix-default.nix])
      (choose [./modules/toolsets/grafana_metric.nix ../toolsets/grafana_metric.nix])
      (choose [./modules/secrets-config/sops-database.nix ../secrets-config/sops-database.nix])
      (choose [./modules/system_scripts/gcloud_backup.nix ../system_scripts/gcloud_backup.nix])
      ## TODO: Make this more elegant and less risky for unexpected errors happening.
    ]
    ++ lib.optional (builtins.pathExists ./hardware-configuration.nix) ./hardware-configuration.nix
    ++ lib.optional (!builtins.pathExists ./hardware-configuration.nix) dummyFileSystems;

  config = {
    local.hostname = "nixosdd";
    local.username = "nixosdd";
    local.userDescription = "NixOS Dedicated Database";
    local.address = "10.1.1.251";

    networking.firewall.allowedTCPPorts = [
      5432 # PostgreSQL
      3306 # MariaDB/MySQL
    ];
    networking.firewall.allowedUDPPorts = [
      5432 # PostgreSQL
      3306 # MariaDB/MySQL
    ];

    # Bootloader.
    boot.loader.systemd-boot.enable = true;
    boot.loader.efi.canTouchEfiVariables = true;

    # Enable PostgreSQL
    services.postgresql = {
      enable = true;
      enableTCPIP = true;
      ensureDatabases = ["forgejo" "part_db_database"];
      settings = {
        listen_addresses = "*";
      };
      authentication = pkgs.lib.mkOverride 10 ''
        local   all             all                                 trust
        host    all             all             10.1.1.4/32         scram-sha-256
        host    all             all             10.1.1.249/32       scram-sha-256
        host    all             all             127.0.0.1/32        trust
        host    all             all             ::1/128             trust
      '';
    };

    # Enable MariaDB
    services.mysql = {
      enable = true;
      package = pkgs.mariadb;
    };

    # Enable Tailscale
    services.tailscale.enable = true;

    # List packages installed in system profile. To search, run:
    # $ nix search wget
    environment.systemPackages = with pkgs; [
      #  vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
      wget
      helix
      fastfetch
      hyfetch
      pgadmin4
      python3
      python3Packages.pip
      python3Packages.setuptools
      python3Packages.wheel
      python3Packages.cryptography
      google-cloud-sdk
    ];

    system.stateVersion = "25.11";
  };
}
