nixos-config/hosts/nuc/modules/nginx/default.nix

42 lines
1.1 KiB
Nix
Raw Normal View History

2024-04-03 00:01:40 +02:00
{ pkgs, lib, config, ... }:
2023-01-24 11:58:36 +01:00
{
2023-11-16 01:27:01 +01:00
# set default options for virtualHosts
options = with lib; {
services.nginx.virtualHosts = mkOption {
type = types.attrsOf (types.submodule
({ name, ... }: {
# split up nginx access logs per vhost
2024-03-25 19:06:38 +01:00
enableACME = true;
forceSSL = true;
2024-04-03 00:01:40 +02:00
# enable http3 for all hosts
quic = true;
http3 = true;
2023-11-16 01:27:01 +01:00
extraConfig = ''
access_log /var/log/nginx/${name}_access.log;
error_log /var/log/nginx/${name}_error.log;
2024-04-03 00:01:40 +02:00
add_header Alt-Svc 'h3=":443"; ma=86400';
2023-11-16 01:27:01 +01:00
'';
})
);
};
2023-05-05 23:43:40 +02:00
};
2023-11-16 01:27:01 +01:00
config = {
networking.firewall.allowedTCPPorts = [ 80 443 ];
2024-04-03 00:01:40 +02:00
networking.firewall.allowedUDPPorts = [ 443 ];
2023-11-16 01:27:01 +01:00
services.nginx = {
enable = true;
2024-04-03 00:01:40 +02:00
package = pkgs.nginxQuic;
2023-11-16 01:27:01 +01:00
recommendedTlsSettings = true;
recommendedProxySettings = true;
recommendedGzipSettings = true;
recommendedOptimisation = true;
};
security.acme = {
acceptTerms = true;
defaults = {
email = "rouven@${config.networking.domain}";
};
2023-01-24 11:58:36 +01:00
};
};
}