presets(certificates): init

Changed files
+35
global
gensokyo
+33
global/gensokyo/presets/certificates.nix
···
···
+
{
+
_utils,
+
config,
+
lib,
+
...
+
}: let
+
secrets = _utils.setupSecrets config {
+
namespace = "lego";
+
secrets = ["cf_token"];
+
};
+
in {
+
config = lib.mkIf config.gensokyo.presets.certificates (lib.mkMerge [
+
{
+
security.acme = {
+
acceptTerms = true;
+
+
defaults = {
+
# == lego Configuration ==
+
# In an ideal world we would have an ed/cv25519 algo here but oh well
+
keyType = "ec256"; # Ensure we use ec keys
+
credentialFiles.CLOUDFLARE_DNS_API_TOKEN_FILE = secrets.get "cf_token";
+
dnsProvider = "cloudflare";
+
+
# == LE Configuration ==
+
email = "me@soopy.moe";
+
# server = "https://acme-staging-v02.api.letsencrypt.org/directory";
+
server = "https://acme-v02.api.letsencrypt.org/directory";
+
};
+
};
+
}
+
secrets.generate
+
]);
+
}
+2
global/gensokyo/presets/default.nix
···
imports = [
./vmetrics.nix
./nginx.nix
];
options.gensokyo.presets = {
vmetrics = lib.mkEnableOption "vmetrics presets";
nginx = lib.mkEnableOption "nginx presets";
};
}
···
imports = [
./vmetrics.nix
./nginx.nix
+
./certificates.nix
];
options.gensokyo.presets = {
vmetrics = lib.mkEnableOption "vmetrics presets";
nginx = lib.mkEnableOption "nginx presets";
+
certificates = lib.mkEnableOption "boilerplate certificate issuing presets";
};
}