Files
nix/modules/homelab/services/nginx-proxy/default.nix

56 lines
1.3 KiB
Nix

{ pkgs, config, lib, ... }:
let
cfg = config.modules.homelab.nginx-proxy;
sec = config.sops.secrets;
homelab = config.modules.homelab;
in
{
options.modules.homelab.nginx-proxy = {
enable = lib.mkEnableOption "enables nginx-proxy";
};
config = lib.mkIf cfg.enable {
# enable nginx proxy manager
services.nginx = {
enable = true;
recommendedProxySettings = true;
recommendedTlsSettings = true;
};
# enable acme for auto ssl certs with lets encrypt
security.acme = {
acceptTerms = true;
defaults.email = "me@blakedheld.xyz";
};
# static entries
# services.nginx.virtualHosts."key.${homelab.public_domain}" = {
# forceSSL = true;
# sslCertificate = sec."ssl_blakedheld_crt".path;
# sslCertificateKey = sec."ssl_blakedheld_key".path;
# root = "/etc/webroot_keys";
# locations."/klefki_pub.asc" = {
# index = "klefki_pub.asc";
# };
# };
# nginx secrets
sops.secrets = {
"ssl_blakedheld_crt" = {
restartUnits = [ "nginx.service" ];
owner = "nginx";
group = "nginx";
};
"ssl_blakedheld_key" = {
owner = "nginx";
group = "nginx";
};
"klefki_pub.asc" = {
owner = "nginx";
group = "nginx";
path = "/etc/webroot_keys/klefki_pub.asc";
};
};
};
}