{ config, pkgs, ... }:

{
  imports =
    [
      ./hardware-configuration.nix
      ./blog.nix
      ./bula22.nix
      ./chaosevents.nix
      ./clerie.nix
      ./drop.nix
      ./etebase.nix
      ./feeds.nix
      ./fieldpoc.nix
      ./gitea.nix
      ./ip.nix
      ./legal.nix
      ./meow.nix
      ./milchinsel.nix
      ./mitel-ommclient2.nix
      ./nix-install.nix
      ./nurausstieg.nix
      ./ping.nix
      ./public.nix
      ./radicale.nix
      ./reichartstrasse.nix
      ./uptimestatus.nix
      ./wetter.nix
    ];

  boot.loader.grub.enable = true;
  boot.loader.grub.device = "/dev/sda";

  networking.useDHCP = false;
  # Network
  networking.interfaces.ens3.ipv4.addresses = [ { address = "88.99.187.135"; prefixLength = 32; } ];
  networking.interfaces.ens3.ipv6.addresses = [ { address = "2a01:4f8:c0c:c580::1"; prefixLength = 64; } ];
  networking.defaultGateway = { address = "172.31.1.1"; interface = "ens3"; };
  networking.defaultGateway6 = { address = "fe80::1"; interface = "ens3"; };
  networking.nameservers = [ "213.133.98.98" "213.133.99.99" "213.133.100.100" ];

  services.nginx = {
    enable = true;
    enableReload = true;
    recommendedGzipSettings = true;
    recommendedOptimisation = true;
    recommendedProxySettings = true;
    recommendedTlsSettings = true;
  };

  networking.firewall.allowedTCPPorts = [ 80 443 ];

  services.postgresql = {
    enable = true;
    package = pkgs.postgresql_16;
  };

  clerie.backup = {
    enable = true;
    jobs.main = {
      paths = [ "/var/lib" ];
    };
  };

  clerie.monitoring = {
    enable = true;
    id = "203";
    pubkey = "CCEDSGy7e7oJxnW+NLOJc4TamG4ft7cS/zzvtoLQmx8=";
  };

  system.stateVersion = "21.03";
}