universe/hosts/Infini-OPTIPLEX/default.nix

77 lines
1.3 KiB
Nix

{ config, pkgs, lib, private, ... }: {
imports = [
./hardware-configuration.nix
./filesystems.nix
./factorio.nix
./freshrss.nix
./thelounge.nix
./vaultwarden.nix
./jellyfin.nix
./web.nix
];
system.stateVersion = "23.05";
info.loc.purdue = true;
modules = {
boot = {
grub.enable = true;
timeout = 1;
};
hardware = {
form.server = true;
};
};
networking = {
firewall = {
allowedUDPPorts = [ 80 443 ];
allowedTCPPorts = [ 80 443 ];
};
};
persist = {
directories = [
"/home"
"/etc/nixos"
"/etc/nixos-private"
# /var directories
"/var/log"
"/var/lib/systemd/coredump"
"/var/lib/tailscale"
"/srv"
];
files = [
"/etc/machine-id"
"/root/.local/share/nix/trusted-settings.json"
"/root/.ssh/known_hosts"
"/root/.ssh/id_ed25519"
"/root/.ssh/id_ed25519.pub"
"/root/.ssh/immutable_files.txt"
];
};
services.fail2ban.enable = true;
services.nginx.enable = true;
security.acme.certs."inx.moe" = {
group = "nginx";
extraDomainNames = [ "*.inx.moe" ];
};
services.nginx.virtualHosts."*.inx.moe" = {
useACMEHost = "inx.moe";
addSSL = true;
default = true;
globalRedirect = "inx.moe";
redirectCode = 302;
};
}