{ config, lib, ... }: with lib; let cfg = config.local.web.sites.home; inherit (config.local) domains; in { options.local.web.sites.home = { enable = mkEnableOption "home site"; proxyUrl = mkOption { type = types.str; }; }; config = mkIf cfg.enable { local.web = { enable = mkDefault true; ownedCerts = [ "home" ]; }; services.nginx.virtualHosts.${domains.home.main} = { forceSSL = true; useACMEHost = domains.home.main; extraConfig = '' ssl_verify_depth 2; ssl_verify_client on; ssl_client_certificate ${config.local.pki.ca.home.fullchain}; if ($ssl_client_verify != "SUCCESS") { return 403; } ''; locations."/".extraConfig = '' proxy_pass ${cfg.proxyUrl}; ''; }; }; }