{ config, pkgs, ... }:

{
  imports =
    [
      /etc/nixos/hardware-configuration.nix
      ../basic-tools.nix
      ./backup.nix
      ./duplicity.nix

      ./mail.nix
      ./www.nix
      ./gitea.nix
      ./letsencrypt.nix
      ./website.nix
      ./wstunnel.nix
      ./radicale.nix
      # ./ttrss.nix
      ./dns.nix
    ];

  boot.loader.grub.enable = true;
  boot.loader.grub.version = 2;
  boot.loader.grub.device = "/dev/vda";

  networking.hostName = "mastus"; # Define your hostname.
  networking.domain = "gebner.org";
  networking.enableIPv6 = true;

  # Select internationalisation properties.
  # i18n = {
  #   consoleFont = "Lat2-Terminus16";
  #   consoleKeyMap = "us";
  #   defaultLocale = "en_US.UTF-8";
  # };

  time.timeZone = "Europe/Amsterdam";

  # Enable the OpenSSH daemon.
  services.openssh = {
    enable = true;
    passwordAuthentication = false;
  };

  users.extraUsers.gebner = {
    isNormalUser = true;
    # shell = "${pkgs.zsh}/bin/zsh";
  };

  # The NixOS release to be compatible with for stateful data such as databases.
  system.stateVersion = "15.09";

  networking.firewall = {
    allowedTCPPorts = [
      # http
      80 443

      # mail
      25 587 993
    ];
  };

}