{ ip, stateVersion, hostname, ... }: {
  imports = [
    ./${hostname}
    # Modules
    ../common/modules/nixos.nix
    ../common/modules/networking.nix
    # Services
    ../common/services/promtail.nix
    ../common/services/telegraf.nix
    ../common/services/openssh.nix
    ../common/services/gnupg-agent.nix
    ../common/services/tailscale.nix   
  ];

  networking = {
    defaultGateway = {
      address = "192.168.2.1";
      interface = "eth0";
    };
    interfaces = {
      eth0.ipv4.addresses = [{
        address = "192.168.2.${ip}";
        prefixLength = 24;
      }];
    };
  };

  time.timeZone = "Europe/Warsaw";
  boot.isContainer = true;
  system.stateVersion = stateVersion;
  networking.hostName = hostname;
  programs.fish.enable = true;

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

}