52 lines
1.1 KiB
Nix
52 lines
1.1 KiB
Nix
{
|
|
pkgs,
|
|
lib,
|
|
...
|
|
}: let
|
|
inherit (lib.options) mkOption;
|
|
inherit (lib.modules) mkDefault;
|
|
inherit (lib.types) submodule attrsOf;
|
|
in {
|
|
options = {
|
|
services.nginx.virtualHosts = mkOption {
|
|
type = attrsOf (submodule {
|
|
config.http3 = mkDefault true;
|
|
});
|
|
};
|
|
};
|
|
|
|
config = {
|
|
security.acme = {
|
|
defaults = {
|
|
email = "chaoticryptidz@owo.monster";
|
|
};
|
|
acceptTerms = true;
|
|
};
|
|
|
|
services.nginx = {
|
|
enable = true;
|
|
package = pkgs.nginxQuic;
|
|
recommendedGzipSettings = true;
|
|
recommendedBrotliSettings = true;
|
|
recommendedZstdSettings = true;
|
|
recommendedOptimisation = true;
|
|
recommendedProxySettings = true;
|
|
recommendedTlsSettings = true;
|
|
clientMaxBodySize = mkDefault "512m";
|
|
serverNamesHashBucketSize = 1024;
|
|
appendHttpConfig = ''
|
|
proxy_headers_hash_max_size 1024;
|
|
proxy_headers_hash_bucket_size 256;
|
|
'';
|
|
};
|
|
|
|
services.logrotate.settings.nginx = {
|
|
minsize = "50M";
|
|
rotate = "4"; # 4 files of 50mb each
|
|
compress = "";
|
|
};
|
|
|
|
services.logrotate.settings.nginx.enable = true;
|
|
};
|
|
}
|