57 lines
1,005 B
Nix
57 lines
1,005 B
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
|
|
{
|
|
options = {
|
|
domain = lib.mkOption {
|
|
default = "example.com";
|
|
description = "set domain name";
|
|
};
|
|
email = lib.mkOption {
|
|
default = "${config.main-user.userName}.${config.domain}";
|
|
description = "set email";
|
|
};
|
|
nginx = {
|
|
|
|
};
|
|
};
|
|
|
|
config = {
|
|
users = {
|
|
users = {
|
|
nginx = {
|
|
group = "nginx";
|
|
extraGroups = [
|
|
"acme"
|
|
"users"
|
|
];
|
|
isSystemUser = true;
|
|
};
|
|
};
|
|
groups = {
|
|
nginx = { };
|
|
};
|
|
};
|
|
services = {
|
|
nginx = {
|
|
enable = true;
|
|
recommendedTlsSettings = true;
|
|
recommendedOptimisation = true;
|
|
recommendedGzipSettings = true;
|
|
recommendedProxySettings = true;
|
|
clientMaxBodySize = "10G";
|
|
statusPage = true;
|
|
};
|
|
};
|
|
security = {
|
|
acme = {
|
|
acceptTerms = true;
|
|
defaults.email = config.email;
|
|
};
|
|
};
|
|
};
|
|
}
|