# Edit this configuration file to define what should be installed on
# your system.  Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running ‘nixos-help’).

{ inputs, config, pkgs, ... }:

{
  imports =
    [ # Include the results of the hardware scan.
      ./hardware-configuration.nix
      ../../common.nix
      ./proxy.nix
      ./vaultwarden.nix
      ./nextcloud.nix
      ./mumble.nix
      ./microbin.nix
      ../../modules/neovim.nix
      ../../modules/zsh.nix
      ../../modules/firewall.nix
      #./synapse.nix
      ./penpot.nix
    ];

  #systemd.services.wordsofgod-bot.enable = true;

  systemd.services.wordsofgod-bot = {
    wantedBy = [ "multi-user.target" ];
    serviceConfig.ExecStart = "${inputs.wordsofgod.packages."x86_64-linux".default}/bin/wordsofgod";
    serviceConfig.EnvironmentFile = "/etc/wordsofgod-bot/wordsofgod.env";
  };

  services = {
    openssh.permitRootLogin = "no";
    fail2ban = {
      enable = true;
      bantime-increment.enable = true;
    };
  };

  jade = {
    neovim.enable = true;
    zsh.enable = true;
  };

  # Use the GRUB 2 boot loader.
  boot.loader.grub.enable = true;
  boot.loader.grub.version = 2;
  boot.loader.grub.device = "/dev/sda"; # or "nodev" for efi only

  environment.systemPackages = [ inputs.wordsofgod ];

  networking.hostName = "schrottserver"; # Define your hostname.
  networking.networkmanager.enable = true;  # Easiest to use and most distros use this by default.

  # default settings for stateful data; don't change unless reinstall with newer version
  system.stateVersion = "22.11"; # Did you read the comment?

}

