From c14a0689bc1313c958d19c532de426e178cd2c35 Mon Sep 17 00:00:00 2001 From: Qubasa Date: Mon, 19 Aug 2024 12:53:15 +0200 Subject: [PATCH] clanModules: Add acme secret prompt for nginx --- checks/matrix-synapse/default.nix | 3 ++- clanModules/nginx/default.nix | 20 ++++++++++++++++++++ docs/mkdocs.yml | 2 ++ 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/checks/matrix-synapse/default.nix b/checks/matrix-synapse/default.nix index 9bd39e84d..d470963bb 100644 --- a/checks/matrix-synapse/default.nix +++ b/checks/matrix-synapse/default.nix @@ -22,8 +22,9 @@ enableACME = lib.mkForce false; forceSSL = lib.mkForce false; }; + security.acme.defaults.email = "admin@clan.test"; clan.matrix-synapse.domain = { - server = "clan.test"; + server = "matrix.clan.test"; client = "element.clan.test"; }; clan.matrix-synapse.users.admin.admin = true; diff --git a/clanModules/nginx/default.nix b/clanModules/nginx/default.nix index 615ea89cc..e0bb685cb 100644 --- a/clanModules/nginx/default.nix +++ b/clanModules/nginx/default.nix @@ -1,4 +1,7 @@ { config, lib, ... }: +let + nginx_acme_email = "nginx-acme"; +in { imports = [ @@ -10,6 +13,23 @@ ]; config = { + + clan.core.facts.services."${nginx_acme_email}" = { + public."${nginx_acme_email}" = { }; + generator.prompt = "Please enter your email address for Let's Encrypt certificate generation"; + + generator.script = '' + echo -n $prompt_value | tr -d "\n" > "$facts"/${nginx_acme_email} + ''; + }; + security.acme.acceptTerms = true; + security.acme.defaults.email = lib.mkDefault ( + let + path = config.clan.core.facts.services."${nginx_acme_email}".public."${nginx_acme_email}".path; + in + if builtins.pathExists path then builtins.readFile path else null + ); + networking.firewall.allowedTCPPorts = [ 443 80 diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 647e880e0..2fab52d1e 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -59,6 +59,8 @@ nav: - reference/clanModules/borgbackup.md - reference/clanModules/deltachat.md - reference/clanModules/dyndns.md + - reference/clanModules/nginx.md + - reference/clanModules/vaultwarden.md - reference/clanModules/ergochat.md - reference/clanModules/garage.md - reference/clanModules/golem-provider.md